MUZAK (45 pts)

NILTON BICALHO (61 pts)

GUILHERME SCHEIBE (49 pts)

MARLOS ALVES CARMO (90 pts)

ZEBEDIAH (35 pts)

GUILHERME G.G. (137 pts)

LUIZ AVANCI (51 pts)

EDUARDO CARREGA (150 pts)

PANDOGO (82 pts)

RÔMULO NUNES (32 pts)

ÉMERSON ROCHA (85 pts)

JONAS GALVEZ (521 pts)
Treinamento PontoFlash de Flash e ActionScript

Tem como posicionar uma imagem aberta com Load Movie (jpg)?

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

Será possível agora fazer um sistema web de acesso a banco de dados todinho em Flash MX?

Desabilitei o Ctrl + K do Flash 5. Tá fazendo a maior falta. Como faço para voltar com ele?

Como acessar o valor de um campo de texto input via teclado?

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

Treinamento PontoFlash de Flash e ActionScript - AS2 e AS3

Como posso fazer com que um objeto do flash possa ser movido pela pessoa que esta vendo a página?

Gostaria de saber pra que servem os levels quando a gente faz um load variables?

Um movie clip, em uma cena, pode continuar, em outra cena, de onde parou?

Quero abrir uma janela popup do Flash.

Como carregar um bitmap randomicamente, escolhido entre várias?

Como se faz esse tipo de menu do site http://www.halolounge.com?

Quero montar uma eleição com fotos dos candidatos e armazenando os votos.
Action Script 2.0 (Primeira Parte)

A história do Flash.

Inserir dados no ASP via formulário no Flash.

Cadastro de usuários, com Flash+ASP

Grandene - Avaliação e sites

Load Múltiplos.

Colisão

Editor de banco de dados (PHP-MySql) orientado a Objetos (OOP)

Texto difuso

Jpeg, Gif, texto, gradientes X slices no Fireworks

Transparência no Flash.

Avaliação do site de O Boticário
Ligth Balls

3dv3trails

Drag and run

Overscroll

Dataehora

Preloader com percent

Clock

Nome obrigatório

Dynamic

Mascara de cor

Random

Linetrailer
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