MUZAK (45 pts)

FLASHGURU (155 pts)

KEN AWAMURA (130 pts)

MANGOOST (80 pts)

DANIELA PIRES (86 pts)

GUILHERME G.G. (137 pts)

HELEN TRIOLO (444 pts)

RICARDO TAKAHASHI (180 pts)

LUIZ AVANCI (51 pts)

DAUTON JANOTA (255 pts)

JONAS GALVEZ (521 pts)

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

Como abrir uma janela popup no Flash?

Como aplicar um efeito alpha (fade out) em um outro swf de nivel superior aberto através do loadmovie?

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

Que ação devo usar no flash 5 para criar um link p/ email?

Quero alterar as cores de um movieclip dinamicamente através de actions.

Como fazer um efeito alpha no Flash5?

Quando usar onclipevent (enterframe) ou onclipevent (load)?

Como fazer um cursor assim que o mouse entra numa área?

Alguém tem um javascript redirecionador de páginas?

Preciso fazer um objeto seguir o mouse (arrastando) somente no horizontal.

Vídeo no Flash - programa que fiz.

Como determinar um tempo de pausa numa animação?

Alguém sabe como tirar um som de um arquivo .SWF protegido?

Existe algum limite para se usar o with em um botão para controlar vários movie clips ao mesmo tempo?
Desenho de letras - construindo fontes .TTF. no Corel Draw.

Flash e Banco de Dados.

Site da banda os Titãs - Avaliação de sites

Loop Mixer.

Entendendo como funciona um preloader. Terceira parte.

Como criar objetos 3D no Fireworks.

Preloader real no Flash5.

Botão Radio.

Imagem Pixel a Pixel no PhotoShop.

Executar funções de JavaScript (Flash+JavaScript).

Objeto Movieclip - Endereçamento (primeira parte)

Enquete interagindo Flash MX 2004 + PHP + MySql
Enquete

Scroll velo over

Busca texto

Quantum

Movimento

Balls 3f

Odômetro

Upperfirstletter

Mapa - Países com B

Engrenagens 2

Airos 1

Double cube
HOME | TUTORIAIS
Variáveis no Flash MX
por Helen Triolo

Os tipos de dados básicos do Flash MX e Flash 5 incluem dados numéricos, seqüênciais (strings) e boleanos e os tipos estruturados incluem matrizes (array) e objeto. As variáveis podem ser criadas a partir de qualquer daqueles tipos de dados. Como em qualquer linguagem de programação, as variáveis são criadas para guardar dados os quais podem mudar ao longo do programa (filme), ou que podem ser aplicados em um loop, por exemplo (para evitar um grande número de códigos duplicados).

Novidades no Flash MX

As variáveis no Flash MX são essencialmente as mesmas do Flash 5. Uma exceção é que, no Flash 5, você pode tratar um campo de texto dinâmico como uma variável seqüêncial; no Flash MX é melhor (mais poderoso) tratar um campo de texto dinâmico como uma instância da classe Textfield, dando-lhe um nome de instância ao invés de um nome de variável, e acessar seu conteúdo via suas propriedades de texto (.text property).

No Flash MX, você pode também especificar uma variável como global, assim ela pode ser acessada a partir de qualquer linha de tempo (timeline), e de filmes carregados em qualquer nível, sem especificar um caminho. Para descrever tal variável, use esta fórmula:

_global.dbname_str = 'endereço';

A variável pode ser acessada de qualquer lugar com um simples dbname_str (no lugar de this._parent._parent.dbname_str, por exemplo). Alguns recomendam o uso de designadores de nome (namespaces) com um _global para evitar conflitos potenciais de nomeação, especialmente em arquivos que serão partilhados. O formato seria então:

_global.astb.dbname_str = 'endereço';

fazendo a variável acessível como astb.dbname_str. As Funções, que são atualmente um tipo de variável, também podem ser definidas como globais e acessadas do mesmo modo de qualquer lugar do filme. Esta é uma boa técnica para usar para funções de construção de classes, de forma que instâncias novas podem ser criadas em qualquer lugar no filme.

Convenções para Nomeação de Variáveis

O Flash MX e o Dreamweaver MX fornecem ambos ao desenvolvedor uma útil característica chamada "orientador de códigos", na qual todas as propriedades e métodos para um tipo de objeto são mostradas (de uma lista da qual podem ser selecionadas) quando o nome da variável deste objeto é digitada (em um .fla no Flash MX, ou em um arquivo no DWMX), contanto que o desenvolvedor siga certas convenções para nomear variáveis. Estas convenções estão estocadas em definições no arquivo ASCodeHints.xml encontrado no diretório Flash MX/First Run/ActionsPanel sob o diretório Macromedia no Program Files (em um PC), e para variáveis componentes FUI no UIComponents.xml no subdiretório CustomActions. Entretanto, você só precisa saber disto se você quiser mudar as definições. De outra forma, você pode simplesmente usar as convenções fornecidas para seus nomes de variável e o orientador de código apropriado irá surgir. As convenções padrão são estas:

In ASCodeHints.xml:
   <typeinfo pattern="*_mc" object="MovieClip" />
   <typeinfo pattern="*_array" object="Array" />
   <typeinfo pattern="*_str" object="String" />
   <typeinfo pattern="*_btn" object="Button" />
   <typeinfo pattern="*_txt" object="TextField" />
   <typeinfo pattern="*_fmt" object="TextFormat" />
   <typeinfo pattern="*_date" object="Date" />
   <typeinfo pattern="*_sound" object="Sound" />
   <typeinfo pattern="*_xml" object="XML" />
   <typeinfo pattern="*_xmlsocket" object="XMLSocket" />
   <typeinfo pattern="*_color" object="Color" />
   <typeinfo pattern="_level*" object="MovieClip" />
   <typeinfo pattern="_parent" object="MovieClip" />
   <typeinfo pattern="_root" object="MovieClip" />
in UIComponents.xml:
   <typeinfo pattern="*_ch" object="FCheckBox"/>
   <typeinfo pattern="*_pb" object="FPushButton"/>
   <typeinfo pattern="*_rb" object="FRadioButton"/>
   <typeinfo pattern="*_lb" object="FListBox"/>
   <typeinfo pattern="*_sb" object="FScrollBar"/>
   <typeinfo pattern="*_cb" object="FComboBox"/>
   <typeinfo pattern="*_sp" object="FScrollPane"/>
   <typeinfo pattern="globalStyleFormat" object="FStyleFormat"/>

Isto é, se você nomear uma variável string address_str ou lastname_str ou anything_str, o orientador de código para objetos string surgirá assim que uma _str tenha sido digitada. Você também pode fazer uma cópia deste arquivo, salvá-lo, e entrar com seus próprios padrões preferidos no arquivo. Eu uso estas modificações e adições:

<typeinfo pattern="*_arr" object="Array" />
<typeinfo pattern="*_bmc" object="MovieClip" />
<typeinfo pattern="*_itxt" object="TextField" />
<typeinfo pattern="*_htxt" object="TextField" />

porque _arr é mais curto do que _array e porque gosto de estar apto a identificar em meus códigos quais campos de texto são campos de entrada ou formatados em html, como oposição aos campos de texto dinâmicos usuais, e cujos movieclips espera-se funcionar como botões movieclips.

Atribuir um valor a uma variável simples

Variáveis do tipo string, booleanas ou numéricas podem ser criadas e a elas atribuídas um valor simplesmente digitando-se um nome de variável, seguido por um "=" e pelo valor:

var name_str = "Wanda Jones";          // string
var i = 0;                                       // numérico, i é geralmente usado em loops
var isFinished_bool = true;                // booleano (sem aspas em true)
var hasCake_bool = 0;                     // também booleano, o mesmo que hasCake_bool = false;

Para obter os conteúdos de um campo de texto de entrada dentro de uma variável, deve-se atribuir a propriedade de texto (.text property) do campo de texto para a variável - se esta for uma variável string - , ou o valor numérico convertido do texto, caso esta seja uma variável numérica:

var phone_str = phone_itxt.text;                                      // string
var houseNumber_n = Number(houseNumber_itxt.text);         // numérico
var sum_n = Number(a_itxt.text) + Number(b_itxt.text);       // numérico

Converter os conteúdos de um campo de texto para um valor numérico com a função Number é especialmente importante quando alguém quer fazer uma operação de adição numérica utilizando os conteúdos do campo de texto - caso não seja feita a conversão, o Flash interpretará o "+" como a concatenação de duas seqüências (strings) ao invés da adição de dois números.

O que é var

Cada uma das declarações acima começam com a palavra chave "var". Isto declara a variável como local dentro de qualquer função que resida, se ela reside em uma função. Isto é, nada fora da função pode ver, ou acessar o valor daquela variável. Declarar variáveis locais é um bom hábito porque ela capacita ao Flash encontrar mais eficientemente a variável - ela pesquisa dentro da função somente e não tem que olhar em mais lugar algum para encontrá-la. Ela também ajuda a prevenir mudanças acidentais de variáveis com o mesmo nome fora da função. Declarações Var podem ser feitas em muitas variáveis a um só tempo no início da função. Como:

var i, name_str, names_arr;

ou elas podem ser declaradas em código na primeira vez que lhes atribuirmos um valor, como acima. Aqui está um exemplo que mostra aquelas variáveis declaradas com var (neste caso, variáveis things_arr) e que não são acessíveis diretamente fora da função:

function getFirst() {
   var things_arr = ['house','frog','branch'];
   return things_arr[0];
}

trace(getFirst()); // house
trace(things_arr[0]); // undefined

mas, se você remover o var da declaração em getFirst, o segundo traço retornará "house".

Tipos de dados estruturados

O Flash fornece duas úteis estruturas variáveis, matriz (array) e objeto. Você pode criar uma matriz vazia ou objeto e adicionar elementos/propriedades depois, ou criar a estrutura ou objeto e atribuir todos os valores em uma instrução:

Para criar uma matriz (array)

Qualquer destas instruções funcionará para criar uma matriz (um objeto do tipo matriz):

var names_arr = new Array(5);
var names_arr = [];
var names_arr = ['Frank', 'Lisa', 'Steve'];

A primeira instrução diz criar uma nova matriz com 5 elementos, mas não atribui qualquer valor àqueles elementos. A segunda instrução cria uma nova matriz em branco de comprimento 0. A terceira cria uma matriz com 3 elementos que têm valores. Propriedades/métodos úteis das matrizes incluem .length (comprimento), .push (adiciona elementos), .pop (remove elementos), e .splice (adiciona e remove elementos). Mais sobre matrizes pode ser encontrado na(s) página(s) sobre array object.

Para criar um objeto

Quaisquer das seguintes instruções funcionará para criar uma variável objeto (um objeto do tipo Objeto):

var people_obj = new Object();
var people_obj = {};
var people_obj = {name:'Jane', dob:'2/3/1988', imname:'dancer7938'};

As duas primeiras instruções acima são idênticas; elas criam um novo objeto people_obj sem propriedades. As propriedades podem ser adicionadas mais tarde por simples determinação, assim: people_obj.name="Jack". Alternativamente, as propriedades podem ser atribuídas quando o objeto é criado, como na terceira instrução acima. As propriedades dos objetos podem ser acessadas ou via sintaxe ponto, como em people_obj.name, ou via sintaxe de matriz associativa, como em people_obj["name"]. Todos os objetos incorporados no Flash são subclasses da classe Objeto - mais informações sobre objetos incorporados podem ser encontradas na página Objetos e classes, e informações sobre como acessar objetos, ou por sintaxe ponto ou por sintaxe de estrutura associativa podem ser encontradas na página Endereçamentos. (Todos os objetos podem ser endereçados do mesmo modo como descrito na página sobre endereçamento).

Criar um objeto de uma classe predefinida

O Flash MX (e o Flash 5) vêm com um número de classes predefinidas, isto é, classes que podem ser usadas para determinar certas propriedades e métodos predefinidos a um objeto daquela classe. Data, Cor, Estrutura, e Som são exemplos dessas classes. Para criar uma instância de uma classe, utilize o operador "new", como foi feito acima para a criação de estrutura e objeto. Por exemplo, para criar a variável wedding_date, uma instância da classe Data:

var wedding_date = new Date(1985,9,15);

Criar um objeto personalizado

Em adição para criar novas instâncias de objetos incorporados com o operador "new", você pode também definir sua própria classe, com quaisquer propriedades e métodos que ela necessite, e criar novas instâncias dela. Aqui está um exemplo bobo (mas que ilustra o conceito e o método) que cria uma classe Titulos e duas instâncias dela. Cada instância chama o método makeGreeting de Titulos para criar um string de saudação:

// função construtora para a classe Titulos
// m = titulo masculino, f = titulo feminino, isBefore = indica valor booleano
// se o titulo aparecer antes ou depois do nome da pessoa
function Titles(m, f, isBefore) {
   this.m = m;
   this.f = f;
   this.isBefore = isBefore;
}
// métdo makeGreeting para a classe Titulo
// retorna uma string com o titulo e o nome anexados na ordem correta
Titulos.prototype.makeGreeting = function(name_str, gender_str) {
   if (this.isBefore) {
      return (gender_str.toLowerCase()=='f' ? this.f : this.m) + ' ' + name_str;
   } else {
      return name_str + ' ' + (gender_str.toLowerCase()=='f' ? this.f : this.m);
   }
}

// criando instâncias da classe
var engFamTitles = new Titulos("Uncle", "Aunt", true);
var chiFamTitles = new Titulos ("shushu", "ayi", false);

// usando um método da classe para fazer alguma coisa nas duas instâncias
trace(chiFamTitles.makeGreeting("Zhao", "f")); // Zhao ayi
trace(engFamTitles.makeGreeting("Joe", "M")); // Uncle Joe

Criar uma matriz de objetos

Um exemplo final que usa uma combinação de duas matrizes: uma das mais úteis estruturas para lidar com conjuntos de registros (recordsets) retornados de um banco de dados é com uma matriz de objetos, onde cada elemento da matriz representa um registro, e cada propriedade do objeto é um campo no registro. Aqui está um exemplo de uma dessas estruturas sendo usada para conter n registros retornados via um objeto LoadVars (o método usual para se comunicar com um código server-side com acesso a conteúdos de bancos de dados do Flash MX), onde os campos são retornados com um registro indexado - 0, 1, 2, etc - anexados a cada nome de campo:

this.data_lv.onLoad = function() {

// for each record returned:
for (var r=0; r < this.n; r++) {
   // create a new element of array content_arr
   // (content_arr is a property of the recordset object (this.owner))
   // each element of content_arr is an object representing one record
   this.owner.content_arr.push(new Object());

   // for all fields in the record:
   // (fields_arr holds definitions of each field in the table)
      for (var f=0; f < this.owner.fields_arr.length; f++) {
         var field_str = this.owner.fields_arr[f].name;
         // get name of returned variable (=field name + index)
         // assign to same named property of content_arr[r]
         this.owner.content_arr[r][field_str] = this[field_str + r];
      }
   }
}

Um exemplo mais simples da utilização de uma matriz de objetos pode ser encontrado aqui.

Tradução
Sergio Ramalho



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
7 comentários


Comentário de Marcos Lima
| 26/5/2010 - 18:52 |
http://http://www.pontoflash.com.br/tutoriais_con.php?autor=

O SITE TÁ UMA MERDA



Comentário de Marcos Lima
| 26/5/2010 - 18:52 |
http://http://www.pontoflash.com.br/tutoriais_con.php?autor=

O SITE TÁ UMA MERDA



Comentário de Marcos Lima
| 26/5/2010 - 18:52 |


O SITE TÁ UMA MERDA



Comentário de Marcos Lima
| 26/5/2010 - 18:52 |


O SITE TÁ UMA MERDA



Comentário de Marcos Lima
| 26/5/2010 - 18:52 |


O SITE TÁ UMA MERDA



Comentário de Marcos Lima
| 26/5/2010 - 18:52 |


O SITE TÁ UMA MERDA



Comentário de Marcos Lima
| 26/5/2010 - 18:52 |


O SITE TÁ UMA MERDA