PANDOGO (82 pts)

DEN IVANOV (260 pts)

DAUTON JANOTA (255 pts)

LUI FERNANDO (151 pts)

MARCOS JOSÉ PINTO (44 pts)

MARCELO SIQUEIRA (96 pts)

AMAURY BENTES (123 pts)

ZECA BALA (45 pts)

EDUARDO WALMOTT (226 pts)

EDUARDO PERROUD (52 pts)

MARLOS ALVES CARMO (90 pts)

LEANDRO AMANO (83 pts)
Treinamento PontoFlash de Flash e ActionScript

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

É possível criar uma variável de outra variável?

Como fazer links dentro do bloco de texto em flash tal como no html?

Galera ávida por colocar vídeo nas aplicações em Flash.

Quero mudar uma ação de acordo com a hora do dia.

Começando a entender o evento onResize do objeto Stage.

Como eu faço para eliminar as barras de rolagem do navegado IE.

Não conseguir determinar corretamente sua localização (hierarquia ou posição) de uma variável.

Como mando um formulário sem usar banco de dados?

Quero chamar um determinado frame na timeline do flash a partir de outro frame Html?

Estou com dificuldades de usar fontes true type sem anti-aliasing.

Como controlar play e stop de um movimento feito em Actionscript por um botão?

Como fazer um autoRun para um executável do Flash?

Como eu faço para checar quantas pessoas estão online no meu site?
Looping.

Flash Studio Pro: Dando poderes ao Flash

Unindo e separando traçados - Fireworks

Introdução ao Droptarget

Botão dinâmico via Action Script.

Movimentar MC com barra de rolagem e setas

Níveis dentro do Flash - Load Movie e Load Variables (terceira parte)

Objeto array.

Sub-Menus entre frames, com o Dreamweaver

RIA, Macromedia Flex e Laszlo Presentation Server

Como arredondar os cantos de uma foto no Fireworks.

A história do Flash.
3d rotation1

Barra deslizante

Triangulos

Cursor customizado relativo

Radio button 2

Triangulos2

ComboBox com load movie

Menu deslizante

3D cube

Scroll dinâmico

Array intro

Fract
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