JONAS GALVEZ (521 pts)

MAURO ROCHA TAVARES (40 pts)

JOTA LAGO (40 pts)

SYDNEY GANHO (60 pts)

PEDRO CLAUDIO (50 pts)

RICARDO TEIXEIRA (40 pts)

STICKMAN (155 pts)

MUZAK (45 pts)

NETO LEAL (116 pts)

DENIS CARAVALHO (85 pts)

GUILHERME G.G. (137 pts)

GÉRIO (93 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um fade em um movieclip, do 100 a 0%?

Queria fazer um movie clip aparecer em posições aleatórias.

Com load movie into target, tem como carregar um SWF dentro de outro SWF?

Qual o significado de um Array para a programação no Flash?

Quero que a tela trema no roll over de um botão do Flash.

Como fazer com que a rotação de um ponteiro demore 10 segundos?

Como verificar a resolução do usuário e abrir um filme compatível?

Como eu faço pra quando publicar não ficar um quadrado preto ao redor?

Porque as fotos de meu site ficam horríveis quando abertas em fullscreen?

Como configurar um fadeIn e um fadeOut em um arquivo de som?

Quero que o usuário determine o tempo que um arquivo de som fique tocando.

Como alterar dinamicamente o tipo e o background de um campo de texto?

Como mostrar apenas 50 caracteres de um texto que tem 300?

Preciso de um preloader, mas tem que ser o mais simples que existir.
Exibir páginas em html com o componente TextArea do FlashMX2004

Line Draw

Entendendo como funciona um preloader - Segunda parte

Conceitos de Programação e ActionScript.

Primeiros passos - desenhando e animando

Como criar objetos 3D no Fireworks.

Salvando alterações feitas no layout (shared Objects).

Desenvolvendo um Controle de Volume Customizado em Flash

Code Animation - Parte 2

Nikefootball, uso e abuso do flash - Avaliação de sites

Sub-Menus entre frames, com o Dreamweaver

Macromedia Flash - Tendências
Sashacircle 1

Motion color

Trilha

Bola quicando e sombra

Rotação

Motionguidemask1

Supermascara

Menu com abas

Dincurtrail

F5scrolltext

Luz

Shared Object
HOME | TUTORIAIS
Flash MX 2004 - class e prototype
por Pedro Claudio

Este tutorial vem para esclarecer alguns embates.

Em versões anteriores a do Flash MX 2004 o uso do protótipo era muito mais freqüente que nesta versão, isto não quer significar que o uso deste artifício está descartado nesta versão, como podemos observar no artigo da Developer Center Macromedia com o titulo Skinning the Flash MX 2004 Components.

Como vou descrever agora ficará parecendo que o assunto é curto, e quero deixar claro que isso é uma breve introdução, para um conteúdo que é tão amplo e por este fato nerece ser e é tema de mestrado. E aconselho que leiam sobre isto que é muito útil, eficaz e interessante.

Classe é um conjunto de dados e métodos que operam sobre esses dados, um conjunto de classes defini um software como Orientado a Objeto (o famoso Software OO).
Você quando cria uma variável do tipo array, o que na verdade está fazendo é instanciando aquela variável com a classe Array, com o operador 'new'. E para curiosidade, apenas os métodos dessa classe podem ser lidos no arquivo 'Array.as', basta das um localizar em seu computador (se Flash MX 2004 instalado nele). E você perguntaria porque só os métodos, porque sua implementação está no compilador e no caso dos componentes eles podem estar implementados também em arquivos compilados (.swc).

Já o protótipo determina ao compilador que verifique, em tempo de compilação, todos os tipos de dados, argumentos de funções e funções. Então quando você atribui um novo método a uma classe, que já existe, utilizando-se do protótipo, você está avisando ao compilador que as chamadas daquela função existem e estarão relacionadas à classe que recebeu o protótipo.

Para definições mais detalhadas de classes, protótipo e seus tipos, verificarem o manual Macromedia.

Em versões anteriores para tirar espaços no final e no começo de qualquer texto o mais visto era a criação de uma função, caso fosse necessário fazer uso da mesma em outro projeto seria preciso reescreve-lo.

function trim(str){
  var strlen = str.length;
  var j = 0;
  while (str.charAt(j) == " ") {
    j++;
  }
  str=(j)?str.substring(j, strlen):str;
  strlen = str.length-1;
  if(strlen>0){
    while (str.charAt(strlen) == " ") {
      strlen--;
    }
    str=str.substring(0, strlen+1);
  }
  return str;
}
var txtInicial="Ponto Flash      ";
trace(txtInicial.length);
var textoFinal=trim(txtInicial);
trace(textoFinal.length);

O protótipo começou a ser mais divulgado no mundo Flash através de sua versão MX, então houve uma mudança relevante na utilização do ActionScript, e trabalhos com MovieClip, String e muitos outros. Mas ainda sim seria obrigado a reedita-lo em novo projeto.

String.prototype.trim = function(){
  var strlen = this.length;
  var j = 0;
  while (this.charAt(j) == " ") {
    j++;
  }
  this=(j)?this.substring(j, strlen):this;
  strlen = this.length-1;
  if(strlen>0){
    while (this.charAt(strlen) == " ") {
      strlen--;
    }
    this=this.substring(0, strlen+1);
  }
  return this;
}
var txtInicial="Ponto Flash      ";
trace(txtInicial.length);
var textoFinal=txtInicial.trim();
trace(textoFinal.length);


Com a chegada do Flash MX 2004 a função só será reescrita mais uma vez e não será mais preciso faze-lo em novo projeto.

Preparando a utilização das classes:

Todas as classes criadas por nós devem estar no diretório padrão do Flash, pois no momento da chamada da classe é lá que o compilador vai buscar todas as informações sobre classes.
O diretório padrão é em C:\Documents and Settings\<username >\Configurações locais\Dados de aplicativos\Macromedia\Flash MX 2004\en\Configuration\Classes.
A maioria programadores que lidam com classes no MX 2004 criam uma pasta (com) abaixo da pasta Classes e nessa pasta com organizam suas classes por tipo, e nosso path fica assim C:\Documents and Settings\<username >\Configurações locais\Dados de aplicativos\Macromedia\Flash MX 2004\en\Configuration\Classes\com\hello.

Todas nossas classes, criadas com o documento do tipo ActionScript, serão salvas na pasta hello que criamos.

helloWord.as

//declarando uma nova classe que deve
// conter o caminho a partir do diretório padrão
class com.hello.helloWord {
  //declarando variável
  var hello:String;
  //criando o construtor
  public function helloWord(texto:String) {
    this.hello = texto;
  }
  //método
  public function get(){
    return this.hello;
  }
}


Como utilizar a classe

import com.hello.helloWord;
var obj:helloWord = new helloWord("hello world");
var string = obj.get();
trace(string);

Esta classe apenas atribui e devolve a string fornecida, para aprendermos mais iremos escrever uma outra classe que herdará (herança) todos os atributos desta classe.

helloWordChild.as

class com.hello.helloWordChild extends com.hello.helloWord {
   public function helloWordChild(texto:String) {
      super(texto);
   }
   public function set(texto:String){
      //observe que helloWordChild não tem variável declarada
      this.hello=texto;
   }
   public function duplicate(separator:String){
      return this.hello+separator+this.hello;
   }
}


Como utilizar a classe

import com.hello.helloWordChild;
var obj2:helloWordChild = new helloWordChild("hello world");
trace(obj2.get());
trace(obj2.duplicate(" - "));
obj2.set("new hello Word");
trace(obj2.get());
trace(obj2.duplicate(" - "));

Na prática o uso de classes e heranças no Flash MX 2004.
Voltaremos a nossa velha
function trim que foi promovida a protótipo, agora transformaremos em classe, esta classe herdará todos os atributos da classe String.
E com esta classe criada e salva e na pasta hello os únicos códigos que precisará reescrever é o 'import com.hello.palavra;' e 'new palavra('');', para todos os novos projetos que compilar no pc em que a classe se encontra.

palavra.as

class com.hello.palavra extends String {
   public function palavra(texto:String) {
      super(texto);
   }
   function trim() {
      var str=this;
      var strlen = str.length;
      var j = 0;
      while (str.charAt(j) == " ") {
         j++;
      }
      if(j>0){
         str= str.substring(j, strlen);
      }
      strlen = str.length-1;
      if (strlen>0) {
         while (str.charAt(strlen) == " ") {
            strlen--;
         }
         str = str.substring(0, strlen+1);
      }
      return str;
   }
}


Como utilizar a classe

import com.hello.palavra;
var string= new palavra("hello world      ");
trace(string+"("+string.length+" caracteres)");
string= string.trim();
trace(string+"("+string.length+" caracteres)");

Como podem verificar a classe é um acréscimo poderoso que o ActionScript 2.0 nos trouxe. Porém não quer dizer que você não possa utilizar o protótipo, como no código de criação de String.prototype.trim, ou como no artigo mencionado no início, ou ainda como neste artigo Ponto Flash.

Baixe aqui os arquivos relacionados a esse tutorial



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
0 comentário