NETO LEAL (116 pts)

DAAFY (55 pts)

DANIELA PIRES (86 pts)

ZECA BALA (45 pts)

BÁRBARA TOSTES (64 pts)

RICARDO TEIXEIRA (40 pts)

AUTOR DESCONHECIDO (100 pts)

ALEXANDRE PORTO (1281 pts)

GABRIEL SPORCH (53 pts)

PEDRO CLAUDIO (50 pts)

GÉRIO (93 pts)

ZEBEDIAH (35 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um objeto ter um movimento elástico?

Perguntas com quatro alternativas.

Como se faz um gradiente com transparência no flash.

Como faço para ler o conteúdo de uma variável do Flash com JS?

É possível modificar uma animação de acordo com a hora do dia?

Como é que faz para aparecer aquela animação de Carregando e a porcentagem?

Preciso fazer com que o Flash capture 2 teclas pressionadas ao mesmo tempo.

Como faço para colocar um Botão de liga / desliga som?

Como simular uma animação de um círculo sendo criado dinamicamente?

Como importar caracteres especiais para o Flash? Usando URL Encoding?

Como carregar arquivos externos (imagens, por exemplo) dentro do FlashMX?

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

Como eu faço um sorteio (random) e ir para o frame sorteado?

Dica sobre o uso de cenas.
Macromedia Flash - Tendências

Looping.

Simulando botões d'água no PhotoShop.

Objeto array - Classificar uma array (sorting) e e arrays multidimensionais

3D Wireframe - segunda parte

Flash e Banco de Dados.

Load Movie no FlashMX (swf, jpg e mp3).

Enquete interagindo Flash MX 2004 + PHP + MySql

Curiosidades.

Objeto Color

Quadro comparativo: Fireworks ou Photoshop

Uma enquete usando ASP e Flash.
Drawpad

Drawline

Bolhas

LoadVars

Streching menu

Fogos de artificio

3dsnake

Move menu

Preloader run

Alfabetar com colunas

Hexa 3d

Volume
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