PEDRO CLAUDIO (50 pts)

GABRIEL SPORCH (53 pts)

RODRIGO AMARAL (56 pts)

MARCOS JOSÉ PINTO (44 pts)

STICKMAN (155 pts)

DEMIS BUCCI (50 pts)

EDUARDO WALMOTT (226 pts)

ILVA RUDEV (90 pts)

MANGOOST (80 pts)

GÉRIO (93 pts)

ZEBEDIAH (35 pts)

KEN AWAMURA (130 pts)
Treinamento PontoFlash de Flash e ActionScript

Como eu uso o setInterval?

Como colocar uma ação no clique de um movieclip, sem aparecer a mãozinha?

Preciso de um script para ver quantos usuários estão online.

Desenhar polígonos no Flash dinamicamente.

Por Favor alguém poderia me ajudar com um combobox?

Qual é o melhor formato para importação de sons no Flash?

Alguém sabe algum comando para impressão de uma página?

Como manipular as propriedades de um objeto dinamicamente?

Como fazemos um objeto andar para frente e para trás por meio de um botão (roll over e roll out).

Tem como abrir um PDF (acrobat reader) entro do Flash? Pode ser com Delphi?

Como eu faço para retornar um número inteiro?

Para que serva a função eval?

Para que serve e como usar o LoadVars? Substitui o LoadVariables?

Quero que a tela trema no roll over de um botão do Flash.
Interseções com objetos planos

O "X" do MacOS no PhotoShop

Macromedia Flex

Exibir páginas em ASP com o componente TexArea do FlashMX2004

Objeto Sound.

Sub-Menus entre frames, com o Dreamweaver

Sistema de busca utilizando Flash + ASP .

Movimento por meio de actionscript

Betinhocarreiro e Dysney.

Colisão (hitTest)

Linha que segue o mouse.

Botão Radio.
Drag Square

Message Board Flash+ASP

Marquee

Farois

Mascara de cor

Drag box

Transição

Mulher

Curva elastica

Scrolling image

Focus

3d rotation1
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