MARLOS ALVES CARMO (90 pts)

NETO LEAL (116 pts)

BÁRBARA TOSTES (64 pts)

HELEN TRIOLO (444 pts)

EDUARDO WALMOTT (226 pts)

RICARDO TEIXEIRA (40 pts)

PANDOGO (82 pts)

DAUTON JANOTA (255 pts)

DENIS CARAVALHO (85 pts)

MARCOS JOSÉ PINTO (44 pts)

EDUARDO PERROUD (52 pts)

ILVA RUDEV (90 pts)
Treinamento PontoFlash de Flash e ActionScript

Estou com um problema de variável e condicionais no Flash.

Máscara e textos importados de um TXT.

Existe um comando que deixe a movimentação de um objeto mais suave?

Muitas vezes carrego um arquivo externo com LoadVariables e ele não funciona.

Como fazer o usuário abrir sempre um filme num _level acima do anterior?

Como enviar uma ação de um movieclip para a timeline principal?

Tô tentado abrir uma janela popup com um comando dentro de um arquivo de texto chamado via loadVariables.

Como faço pra chamar uma página HTML dentro de um quadro no flash?

Quero um mouse trail que tenha vários objetos que juntam no final.

Haveria um código javascript para fazer esse resize automático num HTML?

Objeto flutuante e gravidade.

Queria enviar um formulário via ASP usando a classe LoadVars e o método sendAndLoad.

Porque a extensão PHP3 não está funcionando no meu servidor Apache?

Como faço para dar um fade-out em um determinado momento de um som no Flash?
Alterando Artistic Media no Corel Draw

Primeiros passos - desenhando e animando

Motion Blur.

Texto difuso

Usando XML com Fireworks MX.

Formulário simples.

Load Múltiplos.

Ação Include.

Usando Define Patern para criar texturas contínuas no PhotoShop.

Programando objetos 3D em Plataformas 2D como a do Flash

Uso da tecla tab num formulário Flash.

Objeto Sound.
Cromatograma

Hexa 3d

Twang

SomnoFlash5

Triangulos2

Plasma2D

Bola reflexo

Micróbios

3d panels1

Preloader simples

Liquidimage

F5 loading scene
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