Guia de referência do ActionScript

Сomentários

Transcrição

Guia de referência do ActionScript
Guia de referência do ActionScript
Marcas comerciais
Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware,
Authorware Star, Backstage, Bright Tiger, Clustercats, ColdFusion, Contribute, Design In Motion, Director, Dream Templates,
Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite,
JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live
Effects, MacRecorder Logo and Design, Macromedia, Macromedia Action!, Macromedia Flash, Macromedia M Logo and
Design, Macromedia Spectra, Macromedia xRes Logo and Design, MacroModel, Made with Macromedia, Made with
Macromedia Logo and Design, MAGIC Logo and Design, Mediamaker, Movie Critic, Open Sesame!, Roundtrip, Roundtrip
HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what the web can be e Xtra são marcas
comerciais registradas ou marcas comerciais da Macromedia, Inc. e podem estar registradas nos Estados Unidos ou em outras
jurisdições, inclusive internacionais. Outros nomes de produtos, logotipos, designs, títulos, palavras ou frases mencionados nesta
publicação podem ser marcas comerciais, marcas de serviço ou nomes comerciais da Macromedia, Inc. ou de outras entidades e
podem estar registrados em certas jurisdições, inclusive internacionais.
Informações de terceiros
Este guia contém links para sites da Web de terceiros que não estão sob o controle da Macromedia. Neste caso, a Macromedia não
é responsável pelo conteúdo de nenhum site vinculado. Se você acessar um dos sites da Web de terceiros mencionados neste guia,
estará assumindo os riscos inerentes. A Macromedia oferece esses links apenas por questão de conveniência, e a inclusão de um
link não significa que a Macromedia apóie ou aceite qualquer responsabilidade pelo conteúdo apresentado em sites de terceiros.
Tecnologia de compactação e descompactação de voz licenciada da Nellymoser, Inc. (www.nellymoser.com).
Tecnologia Sorenson™ Spark™ de compactação e descompactação de vídeo licenciada da Sorenson
Media, Inc.
Navegador Opera ® Copyright © 1995-2002 Opera Software ASA e seus fornecedores. Todos os direitos reservados.
Isenção de responsabilidade da Apple
A APPLE COMPUTER, INC. NÃO CONCEDE GARANTIAS, EXPLÍCITAS OU IMPLÍCITAS, RELATIVAS AO
PACOTE DE SOFTWARES PARA COMPUTADORES EM ANEXO, BEM COMO À SUA COMERCIALIZAÇÃO OU
ADEQUAÇÃO A QUALQUER FINALIDADE ESPECÍFICA. A EXCLUSÃO DE GARANTIAS IMPLÍCITAS NÃO É
PERMITIDA EM CERTOS ESTADOS. PORTANTO, A EXCLUSÃO ACIMA TALVEZ NÃO SE APLIQUE AO SEU
CASO. ESTA GARANTIA CONCEDE DIREITOS LEGAIS ESPECÍFICOS. VOCÊ PODE TER OUTROS DIREITOS
QUE VARIAM CONFORME O ESTADO.
Copyright © 2003 Macromedia, Inc. Todos os direitos reservados. Este manual não pode ser copiado, fotocopiado,
reproduzido, traduzido ou convertido em nenhum formato eletrônico ou que possa ser lido por máquina, por inteiro ou
em parte, sem o consentimento prévio por escrito da Macromedia, Inc. Número da peça: ZFL70M400PO
Agradecimentos
Diretor: Erick Vera
Gerenciamento de projeto: Stephanie Gowin, Barbara Nelson
Redação: Jody Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson, Shirley Ong,
Tim Statler
Editor responsável: Rosana Francescato
Edição: Mary Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szabla
Gerenciamento de produção: Patrice O’Neill
Design de mídia e produção: Adam Barnett, Christopher Basmajian, Aaron Begley, John Francis, Jeff Harmon
Localização: Tim Hussey, Seungmin Lee, Masayo Noda, Simone Pux, Yuko Yagi, Heloisa Kinder
Primeira edição: Agosto de 2003
Macromedia, Inc.
600 Townsend St.
São Francisco, CA 94103
CONTEÚDO
INTRODUÇÃO: Guia de introdução ao ActionScript .
....................... 9
Público-alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Requisitos do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Usando a documentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Convenções tipográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Termos usados neste documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Recursos adicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
PARTE I: Bem-vindo ao ActionScript
CAPÍTULO 1: Novidades do ActionScript no Flash MX 2004
. . . . . . . . . . . . . . . 13
Elementos de linguagem novos e alterados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Novo modelo de segurança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transferindo scripts existentes para o Flash Player 7. . . . . . . . . . . . . . . . . . . . . . . .
Alterações do editor do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alterações de depuração. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Novo modelo de programação orientado a objeto . . . . . . . . . . . . . . . . . . . . . . . . .
CAPÍTULO 2: Conceitos básicos do ActionScript
13
15
15
16
18
18
. . . . . . . . . . . . . . . . . . . . . . . . 21
Diferenças entre o ActionScript e o JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Suporte a Unicode para ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Sobre tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Atribuindo tipos de dados a elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Sobre variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Usando operadores para manipular valores em expressões . . . . . . . . . . . . . . . . . . . 41
Especificando o caminho de um objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Usando funções internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Criando funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3
CAPÍTULO 3: Escrevendo e depurando scripts
. . . . . . . . . . . . . . . . . . . . . . . . . . 51
Controlando o momento em que o ActionScript é executado . . . . . . . . . . . . . . . . 52
Usando o painel Actions e a janela Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Usando o editor do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Depurando scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Usando o painel Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Atualizando o Flash Player para teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
PARTE II: Manipulando eventos e criando interação
CAPÍTULO 4: Manipulando eventos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Usando métodos de manipuladores de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Usando ouvintes de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Usando manipuladores de eventos de botão e clipe de filme . . . . . . . . . . . . . . . . . 82
Criando clipes de filme com estados de botão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Escopo do manipulador de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Escopo da palavra-chave “this”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
CAPÍTULO 5: Criando interação com o ActionScript .
. . . . . . . . . . . . . . . . . . . . . 87
Sobre eventos e interação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Controlando a reprodução do SWF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Criando interatividade e efeitos visuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Desconstruindo um script de exemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
PARTE III: Trabalhando com objetos e classes
CAPÍTULO 6: Usando as classes internas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Sobre classes e instâncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Visão geral das classes internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
CAPÍTULO 7: Trabalhando com clipes de filme
. . . . . . . . . . . . . . . . . . . . . . . . . 119
Sobre o controle de clipes de filme com o ActionScript . . . . . . . . . . . . . . . . . . . . 120
Chamando vários métodos em um único clipe de filme. . . . . . . . . . . . . . . . . . . . 121
Carregando e descarregando arquivos SWF adicionais . . . . . . . . . . . . . . . . . . . . . 121
Especificando uma Timeline raiz para arquivos SWF carregados . . . . . . . . . . . . . 122
Carregando JPEGs em clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Alterando a posição e a aparência de um clipe de filme . . . . . . . . . . . . . . . . . . . . 123
Arrastando clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Criando clipes de filme durante a execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Adicionando parâmetros aos clipes de filme criados dinamicamente . . . . . . . . . . 127
Gerenciando profundidades do clipe de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Desenhando formas com o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
4
Conteúdo
Usando clipes de filme como máscaras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Identificando eventos do clipe de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Atribuindo uma classe a um símbolo de clipe de filme. . . . . . . . . . . . . . . . . . . . .
Inicializando as propriedades de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CAPÍTULO 8: Trabalhando com texto .
130
131
131
133
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Usando a classe TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando campo de texto durante a execução . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usando a classe TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatando o texto com Cascading Style Sheet. . . . . . . . . . . . . . . . . . . . . . . . . .
Usando o texto em formato HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando texto de rolagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exibindo as propriedades do campo de texto para depuração. . . . . . . . . . . . . . . .
CAPÍTULO 9: Criando classes com o ActionScript 2 .
136
137
138
139
148
155
157
. . . . . . . . . . . . . . . . . . . . 159
Princípios da programação orientada a objeto . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usando classes: um exemplo simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando e usando classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Membros de instâncias e classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando e usando interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Noções básicas de caminho de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usando pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importando classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Métodos get/set implícitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando classes dinâmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Como as classes são compiladas e exportadas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
159
161
165
169
171
173
175
175
177
178
179
PARTE IV: Trabalhando com mídia e dados externos
CAPÍTULO 10: Trabalhando com dados externos
. . . . . . . . . . . . . . . . . . . . . . . 183
Enviando e carregando variáveis para/de uma origem remota . . . . . . . . . . . . . . . 183
Enviando mensagens para/do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Recursos de segurança do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
CAPÍTULO 11: Trabalhando com mídia externa. . . . . .
. . . . . . . . . . . . . . . . . . . . 201
Visão geral de carregamento de mídia externa . . . . . . . . . . . . . . . . . . . . . . . . . . .
Carregando SWFs e JPEGs externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Carregando arquivos MP3 externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lendo marcas de ID3 em arquivos MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reproduzindo arquivos FLV externos dinamicamente . . . . . . . . . . . . . . . . . . . . .
Pré-carregando mídia externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conteúdo
202
202
204
205
206
208
5
PARTE V: Referência
CAPÍTULO 12: Dicionário do ActionScript .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Exemplo de entrada da maioria dos elementos do ActionScript . . . . . . . . . . . . . . 215
Exemplo de entrada de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Conteúdo do dicionário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Classe Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Classe Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Classe Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Classe Boolean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Classe Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Classe Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Classe Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Classe ContextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Classe ContextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Classe CustomActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Classe Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Classe Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Classe Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Classe key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Classe LoadVars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Classe LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Classe Math. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Classe Microphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Classe Mouse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Classe MovieClip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Classe MovieClipLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
Classe NetConnection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
Classe NetStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Classe Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
Classe Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Classe PrintJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Classe Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
Classe SharedObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Classe Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Classe System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Classe TextField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Classe TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
Classe Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
Classe XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
Classe XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
Classe XMLSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
6
Conteúdo
APÊNDICE A: Mensagens de erro
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
APÊNDICE B: Associatividade e precedência de operadores
. . . . . . . . . . . . . . 857
APÊNDICE C: Teclas do teclado e valores de códigos de teclas
. . . . . . . . . . . . 859
Letras de A a Z e números padrão de 0 a 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teclas do teclado numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teclas de função . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outras teclas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APÊNDICE D: Criando Scripts para versões anteriores do Flash Player
859
861
862
862
. . . . . . 865
Sobre a especificação de versões anteriores do Flash Player. . . . . . . . . . . . . . . . . . 865
Usando o Flash MX 2004 para criar conteúdo para o Flash Player 4 . . . . . . . . . . 866
APÊNDICE E: Programação orientada a objeto com o ActionScript 1
. . . . . . . . 869
Sobre o ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
ÍNDICE REMISSIVO
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
Conteúdo
7
8
Conteúdo
INTRODUÇÃO
Guia de introdução ao ActionScript
O Macromedia Flash MX 2004 e o Flash MX Professional 2004 são as ferramentas de criação
padrão profissionais para a produção de experiências de grande impacto na Web. ActionScript é a
linguagem usada para desenvolver um aplicativo em Flash. Para usar o Flash, não é necessário
ActionScript mas, se você desejar fornecer interatividade com o usuário, trabalhar com objeto
diferentes daqueles contidos no Flash (como botões e clipes de filme) ou transformar de qualquer
outro modo um arquivo SWF em uma experiência de usuário mais eficiente, use ActionScript.
Público-alvo
Este manual pressupõe que o Flash MX 2004 ou Flash MX Professional 2004 esteja instalado e
que você saiba como usá-lo. É necessário saber como colocar objeto no Stage (Palco) e manipulálos no ambiente de criação do Flash. Se você já tiver escrito programas anteriormente, o
ActionScript parecerá familiar. Caso contrário, não será difícil aprender a usá-lo. É fácil começar
com comandos bem simples e aumentar a complexidade à medida que você avança.
Requisitos do sistema
O ActionScript não tem qualquer requisito de sistema além do Flash MX 2004 ou Flash MX
Professional 2004. Entretanto, a documentação pressupõe que você esteja utilizando as
configurações de publicação padrão para os arquivos do Flash: Flash Player 7 e ActionScript 2.
Se você alterar alguma dessas configurações, as explicações e os exemplos de código mostrados na
documentação poderão não funcionar corretamente.
Usando a documentação
Este documento oferece uma visão geral da sintaxe do ActionScript, informações sobre como usar
o ActionScript ao trabalhar com diferentes tipos de objeto e detalhes sobre a sintaxe e o uso de
cada elemento da linguagem. Comece aprendendo a terminologia e os conceitos básicos usados
no restante do documento (consulte o Capítulo 2, “Conceitos básicos do ActionScript”,
na página 21). Em seguida, aprenda o mecanismo para escrever e depurar scripts Flash (consulte o
Capítulo 3, “Escrevendo e depurando scripts”, na página 51).
Antes de escrever seus próprios scripts, leia as seções “Write Scripts with ActionScript” (Criar
scripts com ActionScript) e “Create a Form with Conditional Logic and Send Data” (Criar um
formulário com lógica condicional e enviar dados), que oferecem uma introdução prática ao
trabalho com ActionScript. Para localizar essas seções, selecione Help (Ajuda) > How Do I
(Como) > Quick Tasks (Tarefas rápidas).
9
Depois de entender os conceitos básicos, você estará pronto para usar as informações no restante
deste documento que se aplicarem ao efeito específico a ser obtido. Por exemplo, para saber como
escrever um script que execute uma certa ação quando o usuário clica com o mouse, consulte o
Capítulo 4, “Manipulando eventos”, na página 79.
Para localizar informações sobre um certo comando que você deseja usar, procure a respectiva
entrada no Capítulo 12, “Dicionário do ActionScript”, na página 215; cada elemento de
linguagem está listado ali em ordem alfabética.
Convenções tipográficas
As seguintes convenções tipográficas são usadas neste manual:
•
•
Fonte de código indica
código do ActionScript.
indica um elemento, como um parâmetro ou nome de objeto
do ActionScript, substituído por um texto específico quando você escreve um script.
Fonte de código em itálico
Termos usados neste documento
Os seguintes termos são usados neste manual:
•
•
•
•
Você refere-se ao desenvolvedor que escreve um script ou aplicativo.
O usuário refere-se à pessoa que executará os scripts e aplicativos.
Tempo de compilação é o momento em que você publica, exporta, testa ou depura o documento.
Tempo de execução é o momento em que o script é executado no Flash Player.
Termos do ActionScript como método e objeto são definidos no Capítulo 2, “Conceitos básicos do
ActionScript”, na página 21.
Recursos adicionais
Há uma documentação específica sobre o Flash e produtos relacionados disponível
separadamente.
• Para obter informações sobre como trabalhar no ambiente de criação do Flash, consulte
•
•
Usando a Ajuda do Flash. Para obter informações sobre como trabalhar com componentes,
consulte Usando a Ajuda de componentes.
Para obter informações sobre como criar aplicativos de comunicação com o Flash
Communication Server, consulte Developing Communications Applications (Desenvolvendo
aplicativos de comunicação) e Managing Flash Communication Server (Gerenciando o Flash
Communication Server).
Para obter informações sobre como acessar serviços da Web com aplicativos do Flash, consulte
Using Flash Remoting (Usando o Flash Remoting).
O site Macromedia DevNet na Web (www.macromedia.com/devnet) é atualizado periodicamente
com as informações mais recentes sobre o Flash, além de recomendações de usuários experientes,
tópicos avançados, exemplos, dicas e outras atualizações. Visite com freqüência o site da Web para
saber das últimas novidades sobre o Flash e como obter o máximo do programa.
O Centro de Suporte do Macromedia Flash (www.macromedia.com/support/flash) fornece
TechNotes, atualizações de documentação e links para recursos adicionais na comunidade Flash.
10
Introdução: Guia de introdução ao ActionScript
Esta parte inclui informações básicas sobre a linguagem ActionScript.
O Capítulo 1 contém informações sobre as novidades ou as alterações no ActionScript e no Flash
Player 7. Se você já tiver usado o ActionScript antes, verifique essas informações com atenção.
Se estiver usando o ActionScript pela primeira vez, leia os Capítulos 2 e 3 a fim de obter uma boa
base para entender a terminologia e a sintaxe do ActionScript e para aprender a criar e depurar
seus scripts.
Capítulo 1: Novidades do ActionScript no Flash MX 2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Capítulo 2: Conceitos básicos do ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Capítulo 3: Escrevendo e depurando scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Parte I
PARTE I
Bem-vindo ao ActionScript
CAPÍTULO 1
Novidades do ActionScript no Flash MX 2004
O Macromedia Flash MX 2004 e o Macromedia Flash MX Professional 2004 oferecem vários
aperfeiçoamentos que facilitam a criação de scripts mais eficientes com uso da linguagem
ActionScript. Esses novos recursos, analisados neste capítulo, incluem novos elementos de
linguagem, ferramentas de edição e depuração melhoradas (consulte “Alterações do editor do
ActionScript” na página 16 e “Alterações de depuração” na página 18) e a introdução a um
modelo de programação mais orientado a objeto (consulte “Novo modelo de programação
orientado a objeto” na página 18).
Elementos de linguagem novos e alterados
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
guia Help (Ajuda).
Esta seção descreve os elementos da linguagem ActionScript novos ou alterados no Flash MX
2004. Para incluir esses elementos em seus scripts, use o Flash Player 7 (o padrão) ao publicar
documentos.
• Os métodos Array.sort() e Array.sortOn() permitem adicionar parâmetros para
•
•
•
•
•
•
especificar opções de classificação adicionais, como ordem crescente e decrescente, distinção
entre maiúsculas e minúsculas e assim por diante.
As propriedades Button.menu, MovieClip.menu e TextField.menu funcionam com as novas
classes ContextMenu e ContextMenuItem para permitir associar itens de menus de contexto a
objeto Button, MovieClip ou TextField.
A Classe ContextMenu e a Classe ContextMenuItem permitem personalizar o menu de
contexto exibido quando um usuário clica com o botão direito do mouse (Microsoft Windows)
ou clica e pressiona Control (Macintosh) no Flash Player.
A Classe Error e os comandos throw e try..catch..finally permitem implementar uma
manipulação de exceções mais eficiente.
Os métodos LoadVars.addRequestHeader() e XML.addRequestHeader() adicionam ou
alteram cabeçalhos de solicitação HTTP (como Content-Type ou SOAPAction) enviados com
ações POST.
A função MMExecute() permite emitir comandos de API do Flash JavaScript no ActionScript.
(Somente Windows) O ouvinte de eventos Mouse.onMouseWheel é gerado quando o usuário
usa a esfera do mouse para rolagem.
13
• O método MovieClip.getNextHighestDepth() permite criar instâncias de MovieClip
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
14
durante a execução e garantir que seus objeto sejam renderizados na frente dos outros objeto no
espaço de ordem z de um clipe de filme pai. O método MovieClip.getInstanceAtDepth()
permite acessar dinamicamente instâncias de MovieClip criadas usando a profundidade como
índice de pesquisa.
O método MovieClip.getSWFVersion() permite determinar qual versão do Flash Player um
SWF carregado suporta.
O método MovieClip.getTextSnapshot() e o Objeto TextSnapshot permitem trabalhar
com texto em campos de texto estáticos de um clipe de filme.
A propriedade MovieClip._lockroot permite especificar que um clipe de filme funcione
como _root para os clipes de filme carregados nele, ou que o significado de _root em um clipe
de filme não seja alterado se o clipe de filme for carregado em outro clipe.
A Classe MovieClipLoader permite monitorar o progresso de arquivos conforme eles são
carregados em clipes de filme.
A Classe NetConnection e a Classe NetStream permitem transmitir em fluxo arquivos de vídeo
locais (arquivos FLV).
A Classe PrintJob fornece a você (e ao usuário) mais controle sobre a impressão a partir do
Flash Player.
O manipulador de eventos Sound.onID3 fornece acesso a dados ID3 associados a um objeto
Sound que contém um arquivo MP3.
A propriedade Sound.ID3 fornece acesso aos metadados que fazem parte de um arquivo MP3.
A Classe System tem novos objeto e métodos, e o System.capabilities object tem várias novas
propriedades.
A propriedade TextField.condenseWhite permite remover o espaço em branco extra de
campos de texto HTML renderizados em um navegador.
A propriedade TextField.mouseWheelEnabled permite especificar se o conteúdo de um
campo de texto deve rolar quando o ponteiro do mouse é posicionado sobre o campo e o
usuário rola a esfera do mouse.
A classe Classe TextField.StyleSheet permite criar um objeto de folha de estilos com regras de
formatação de texto, como tamanho de fonte, cor e outros estilos de formatação.
A propriedade TextField.styleSheet permite anexar um objeto de folha de estilos a um
campo de texto.
O método TextFormat.getTextExtent() aceita um novo parâmetro, e o objeto retornado
contém um novo membro.
O método XML.addRequestHeader() permite adicionar ou alterar cabeçalhos de solicitação
HTTP (como Content-Type ou SOAPAction) enviados com ações POST.
Capítulo 1: Novidades do ActionScript no Flash MX 2004
Novo modelo de segurança
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
As regras do Flash Player que determinam se dois domínios são idênticos ou diferentes mudaram
no Flash Player 7. Além disso, regras que determinam se e como um arquivo SWF servido de um
domínio HTTP pode acessar um SWF ou carregar dados de um domínio HTTPS foram
alteradas. Para obter mais informações, consulte “Recursos de segurança do Flash Player”
na página 195.
Na maioria dos casos, essas alterações não o afetam, a menos que você esteja transferindo arquivos
SWF existentes para o Flash Player 7. Entretanto, se você possuir SWFs publicados para o Flash
Player 6 ou anterior que carreguem dados de um arquivo armazenado em um servidor, e o SWF
chamador for executado no Flash Player 7, o usuário poderá ver uma caixa de diálogo que não
havia aparecido antes, perguntando se o acesso deve ser permitido. Para evitar que essa caixa de
diálogo apareça, implemente um arquivo de diretivas no site onde os dados estão armazenados.
Para obter mais informações, consulte “Sobre compatibilidade com os modelos de segurança
anteriores do Flash Player” na página 199.
Transferindo scripts existentes para o Flash Player 7
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
guia Help (Ajuda).
Assim como em qualquer nova versão, o Flash Player 7 oferece suporte a mais comandos do
ActionScript do que versões anteriores; você pode usar esses comandos para implementar scripts
mais eficientes. (Consulte “Elementos de linguagem novos e alterados” na página 13.) Além
disso, o comportamento de alguns recursos existentes foi alterado. Se possuir scripts escritos para
o Flash Player 6 ou anterior que deseja publicar no Flash Player 7, modifique os scripts para que
atendam à implementação do Flash Player 7 e funcionem como determinado. Essas modificações
são analisadas nesta seção.
Conformidade com ECMA-262 edição 4
Foram implementadas diversas alterações no Flash Player 7 para atender mais exatamente à
proposta do padrão ECMA-262 edição 4 (consulte www.mozilla.org/js/language/es4/index.html).
Além das técnicas de programação baseadas em classes disponíveis no ActionScript 2 (consulte
“Novo modelo de programação orientado a objeto” na página 18), outros recursos foram
adicionados e certos comportamentos foram alterados. Além disso, ao publicar no Flash Player 7,
você pode declarar o tipo de objeto de uma variável ao criá-la; esse recurso chama-se definição de
tipos de dados estritos. Você também pode converter um tipo de objeto em outro. Para obter mais
informações, consulte “Atribuição estrita de tipos de dados” na página 35 e “Convertendo objeto”
na página 36. Esses recursos não exigem a atualização de scripts existentes; entretanto, você pode
usá-los ao publicar seus scripts em Flash Player 7 e, posteriormente, continuar a revisá-los e
aperfeiçoá- los.
Transferindo scripts existentes para o Flash Player 7
15
Lembre-se de que as alterações a seguir, que também aumentam a conformidade com ECMA,
podem fazer com que scripts existentes passem a funcionar de forma diferente. Se tiver usado esses
recursos em scripts existentes que deseja publicar no Flash Player 7, revise as alterações feitas para
garantir que o código ainda funcione como desejado ou para determinar se é preciso reescrevê-lo.
SWF publicado para Flash Player 7
SWF publicado para versões
anteriores do Flash Player
Suporte para distinção entre maiúsculas e minúsculas
(nomes de variáveis que diferem somente no uso de
maiúsculas são interpretados como variáveis diferentes).
Essa alteração também afeta arquivos carregados com
#include e variáveis externas carregadas com
LoadVars.load(). Para obter mais informações, consulte
“Distinção entre maiúsculas e minúsculas” na página 25.
Não há suporte para distinção entre
maiúsculas e minúsculas (nomes de
variáveis que diferem somente no uso
de maiúsculas são interpretados
como sendo a mesma variável).
Avaliar undefined em um contexto numérico retorna NaN.
Avaliar undefined em um contexto
numérico retorna 0.
O valor de undefined.toString() é undefined.
O valor de undefined.toString() é ""
(uma seqüência de caracteres vazia).
Quando você converter uma seqüência de caracteres em um
valor booleano, o resultado será true se a seqüência tiver
comprimento superior a zero; o resultado será false para
uma seqüência vazia.
Quando você converter uma
seqüência de caracteres em um valor
booleano, a seqüência será
convertida primeiro em um número; o
resultado será true se o número for
diferente de zero; caso contrário, será
false.
Alterações do editor do ActionScript
O editor do ActionScript foi atualizado de várias formas para torná-lo mais eficiente e fácil de
usar. Essas alterações são resumidas nesta seção.
Quebra automática de linha Você pode usar o menu pop-up Options (Opções) no painel
Script, no painel Debugger (Depurador) e no painel Output (Saída) para ativar ou desativar a
quebra automática de linha. Pode também alternar a quebra automática de linha usando o menu
pop-up no painel Actions (Ações). O atalho de teclado é Control+Shift+W (Windows) ou
Command+Shift+W (Macintosh).
Exibindo a ajuda contextual Quando o ponteiro é posicionado sobre um elemento da
linguagem ActionScript na caixa de ferramentas Actions ou no painel Script, você pode usar o
item View Help (Exibir Ajuda) no menu de contexto para exibir uma página de ajuda sobre esse
elemento.
Quando você seleciona Import Script (Importar script) no menu pop-up
no painel Actions, o script importado é copiado para o script no ponto de inserção do arquivo de
código. Em versões anteriores do Flash, a importação de um script substituía o conteúdo do script
existente.
Importando scripts
16
Capítulo 1: Novidades do ActionScript no Flash MX 2004
Pontos de interrupção de clique único Para adicionar um ponto de interrupção de depuração
antes de uma linha de código no painel Debugger ou no painel Script do painel Actions, clique na
margem esquerda. Nas versões anteriores do Flash, clicar na margem esquerda selecionava uma
linha de código. A nova forma de selecionar uma linha de código é clicar e pressionar Control
(Windows) ou clicar e pressionar Command (Macintosh).
Em versões anteriores do
Flash, você podia trabalhar no painel Actions no modo normal, em que preenchia as opções e os
parâmetros para criar o código, ou no modo especialista, em que adicionava comandos
diretamente ao painel Script. No Flash MX 2004 e no Flash MX Professional 2004, você só pode
trabalhar no painel Actions adicionando comandos diretamente ao painel Script. Você ainda pode
arrastar comandos da caixa de ferramentas Actions para o painel Script ou usar o botão Add (+)
(Adicionar) acima do painel Script para adicionar comandos a um script.
Os modos normal e especialista não estão mais no painel Actions
Prendendo vários scripts Você pode prender vários scripts em um arquivo FLA ao longo da
parte inferior do painel Script no painel Actions. Em versões anteriores do Flash, só era possível
prender um script por vez.
Navegador Script (somente Flash Professional) O lado esquerdo do painel Actions agora
contém dois painéis: a caixa de ferramentas Actions e um novo navegador Script. O navegador
Script é uma representação visual da estrutura do arquivo FLA; você pode navegar pelo arquivo
FLA aqui para localizar código ActionScript.
Janela Script integrada para editar arquivos externos (somente Flash Professional) Você
pode usar o editor do ActionScript em uma janela Script (separada do painel Actions) para
escrever e editar arquivos de script externos. Na janela Script, há suporte para a sinalização da
sintaxe por cores, referências de código e outras preferências; a caixa de ferramentas Actions
também está disponível. Para exibir a janela Script, use File (Arquivo) > New (Novo) e selecione o
tipo de arquivo externo a ser editado. É possível abrir vários arquivos externos ao mesmo tempo;
os nomes dos arquivo são exibidos em guias na parte superior da janela Script. (As guias aparecem
somente no Windows.)
Alterações do editor do ActionScript
17
Alterações de depuração
Esta seção descreve as alterações que melhoram a depuração de scripts.
Janela Output alterada para painel Output Agora você pode mover e acoplar o painel Output
da mesma forma que qualquer outro painel do Flash.
Relatório de erros aperfeiçoado no tempo de compilação Além de fornecer uma
manipulação de exceções mais eficiente, o ActionScript 2 exibe diversos novos erros durante a
compilação. Para obter mais informações, consulte Apêndice A, “Mensagens de erro”,
na página 851.
Manipulação de exceções melhorada
A classe Error e os comandos throw e
try..catch..finally permitem implementar uma manipulação de exceções mais
eficiente.
Novo modelo de programação orientado a objeto
A linguagem ActionScript cresceu e desenvolveu-se desde sua introdução, há vários anos. Com
cada nova versão do Flash, mais palavras-chave, objeto, métodos e outros elementos são
adicionados à linguagem. Entretanto, ao contrário de versões anteriores do Flash, o Flash MX
2004 e o Flash MX Professional 2004 apresentam diversos novos elementos de linguagem que
implementam a programação orientada a objeto de uma forma mais padronizada do que antes.
Como esses elementos de linguagem representam um aperfeiçoamento significativo da linguagem
ActionScript básica, eles representam uma nova versão do próprio ActionScript 2.
O ActionScript 2 não é uma nova linguagem. Em vez disso, ele abrange um conjunto básico de
elementos de linguagem que facilitam desenvolver programas orientados a objeto. Com a
introdução de palavras-chave como class, interface, extends e implements, agora é mais fácil
para os programadores familiarizados com outras linguagens aprender a sintaxe do ActionScript.
Novos programadores aprendem uma terminologia mais padronizada que podem aplicar a outras
linguagens orientadas a objeto que venham a estudar no futuro.
O ActionScript 2 oferece suporte a todos os elementos padrão da linguagem ActionScript; ele
simplesmente permite escrever scripts que atendam melhor aos padrões usados em outras
linguagens orientadas a objeto, como JavaScript e Java. O ActionScript 2 deve interessar
principalmente a desenvolvedores de Flash intermediários ou avançados que criem aplicativos que
precisam da implementação de classes e subclasses. O ActionScript 2 também permite declarar o
tipo de objeto de uma variável quando você a cria (consulte “Atribuição estrita de tipos de dados”
na página 35) e fornece erros de compilador bem aprimorados (consulte Apêndice A, “Mensagens
de erro”, na página 851).
18
Capítulo 1: Novidades do ActionScript no Flash MX 2004
Os novos elementos de linguagem do ActionScript 2 estão listados abaixo.
•
•
•
•
•
•
•
•
•
•
•
class
extends
implements
interface
dynamic
static
public
private
get
set
import
As principais considerações sobre o ActionScript 2 incluem os seguintes pontos:
• Os scripts que usam elementos de linguagem do ActionScript 2 devem ser armazenados como
•
•
arquivos de script externos, com uma única classe definida em cada script; ou seja, o painel
Actions não oferece suporte para a terminologia do ActionScript 2. (A única exceção é o
comando import, que é suportado no painel Actions.)
Você pode importar arquivos de classes individuais implicitamente (armazenando-os em um
local especificado por caminhos de pesquisa globais ou específicos de documentos) ou
explicitamente (usando o comando import); é possível importar (coleções de arquivos de classe
em um diretório) usando caracteres curingas.
Os aplicativos desenvolvidos com o ActionScript 2 são suportados pelo Flash Player 6 e versões
posteriores. Entretanto, os arquivos que usam o ActionScript 2 e especificam o Flash Player 6
implementam a distinção entre maiúsculas e minúsculas durante a compilação, mas não
durante a execução; isso pode causar conflitos de tempo de execução, cujo diagnóstico pode ser
difícil. Para obter mais informações, consulte “ActionScript 2, Flash Player 6 e distinção entre
maiúsculas e minúsculas” na página 26.
Para obter mais informações sobre como usar o ActionScript 2 para escrever programas orientados
a objeto no Flash, consulte o Capítulo 9, “Criando classes com o ActionScript 2”, na página 159.
Novo modelo de programação orientado a objeto
19
20
Capítulo 1: Novidades do ActionScript no Flash MX 2004
CAPÍTULO 2
Conceitos básicos do ActionScript
O ActionScript possui regras de gramática e pontuação que determinam quais caracteres e
palavras são usados para criar significado e em que ordem eles podem ser escritos. Por exemplo, no
inglês, um ponto encerra uma frase. No ActionScript, um ponto-e-vírgula encerra um comando.
As regras gerais a seguir aplicam-se a todo o ActionScript. A maioria dos termos do ActionScript
também tem requisitos individuais; para ver as regras de um termo específico, consulte sua
entrada no Capítulo 12, “Dicionário do ActionScript”, na página 215.
Diferenças entre o ActionScript e o JavaScript
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Suporte a Unicode para ActionScript
O Macromedia Flash MX 2004 e o Macromedia Flash MX Professional 2004 oferecem suporte à
codificação de texto Unicode para o ActionScript. Isso significa que é possível incluir texto em
diferentes idiomas em um arquivo do ActionScript. Por exemplo, você pode incluir texto em
inglês, japonês e francês no mesmo arquivo.
Você pode definir as preferências do ActionScript para especificar o tipo de codificação a ser usada
na importação ou exportação de arquivos do ActionScript. Selecione UTF-8 ou Default Encoding
(Codificação padrão). UTF-8 é o formato Unicode de 8 bits; Default Encoding é a forma de
codificação suportada pelo idioma que seu sistema utiliza, chamada também página de código
tradicional.
Em geral, ao importar ou exportar arquivos do ActionScript em formato UTF-8, use a preferência
UTF-8. Se importar ou exportar arquivos na página de código tradicional do sistema, use a
preferência Default Encoding.
Se o texto dos scripts não tiver a aparência esperada quando você abrir ou importar um arquivo,
altere a preferência de codificação de importação. Se receber uma mensagem de aviso ao exportar
arquivos do ActionScript, altere a preferência de codificação de exportação ou desative o aviso nas
preferências do ActionScript.
21
Para selecionar opções de codificação de texto para importação ou exportação de arquivos
do ActionScript:
1 Na caixa de diálogo Preferences (Preferências), em Edit (Editar) > Preferences, clique na guia
ActionScript.
2 Em Editing Options (Opções de edição), siga uma ou ambas as instruções:
■
■
Em Open/Import (Abrir/importar), selecione UTF-8 para abrir ou importar usando a
codificação Unicode, ou selecione Default Encoding para abrir ou importar usando a forma
de codificação do idioma usado do seu sistema.
Em Save/Export (Salvar/exportar), selecione UTF-8 para salvar ou exportar usando a
codificação Unicode, ou selecione Default Encoding para salvar ou exportar usando a forma
de codificação do idioma do seu sistema.
Para ativar ou desativar o aviso de codificação de exportação:
1 Na caixa de diálogo Preferences, em Edit > Preferences, clique na guia Warnings (Avisos).
2 Selecione ou cancele a seleção de Warn on Encoding Conflicts When Exporting .as Files
(Avisar em conflitos de codificação ao exportar arquivos .as).
Terminologia
Como em toda linguagem de script, o ActionScript usa sua própria terminologia. A lista a seguir
fornece uma introdução aos termos importantes do ActionScript.
são comandos que instruem um arquivo SWF a fazer algo enquanto é reproduzido.
Por exemplo, gotoAndStop() envia a reprodução para um quadro ou identificador específico.
Neste manual, os termos ação e comando são equivalentes.
Ações
Booleano
é um valor true (verdadeiro) ou false (falso).
Classes são tipos de dados que podem ser criados para definir um novo tipo de objeto. Para
definir uma classe, use a palavra-chave class em um arquivo de script externo, não em um script
escrito no painel Actions (Ações).
Constantes são elementos que não se alteram. Por exemplo, a constante Key.TAB sempre tem o
mesmo significado: ela indica a tecla Tab em um teclado. Constantes são úteis para comparar
valores.
são funções usadas para definir as propriedades e os métodos de uma classe.
Por definição, construtores são funções em uma definição de classe que têm o mesmo nome que a
classe. Por exemplo, o código abaixo define uma classe Circle (Círculo) e implementa uma função
construtora :
Construtores
// arquivo Circle.as
class Circle {
private var radius:Number
private var circumference:Number
// construtor
function Circle(radius:Number) {
circumference = 2 * Math.PI * radius;
}
}
22
Capítulo 2: Conceitos básicos do ActionScript
O termo construtor também é usado quando você cria (instancia) um objeto baseado em uma
classe específica. Os comandos abaixo são construtores para a classe Array interna e a classe Circle
personalizada:
my_array:Array = new Array();
my_circle:Circle = new Circle();
Tipos de dados descrevem que tipos de informações um elemento do ActionScript ou variável
pode conter. Os tipos de dados do ActionScript são String (Seqüência de caracteres), Number
(Número), Boolean (Booleano), Object (Objeto), MovieClip (Clipe de filme), Function
(Função), null (nulo) e undefined (indefinido). Para obter mais informações, consulte “Sobre
tipos de dados” na página 31.
Eventos são
ações que ocorrem enquanto um arquivo SWF é reproduzido. Por exemplo, são
gerados eventos diferentes quando um clipe de filme é carregado, quando a reprodução entra em
um quadro, quando o usuário clica em um botão ou clipe de filme, ou quando digita no teclado.
Manipuladores de eventos são ações especiais que gerenciam eventos como mouseDown
ou load.
Existem dois tipos de manipuladores de eventos do ActionScript: métodos de manipulador de
eventos e ouvintes de eventos. (Existem também dois manipuladores de eventos, on() e
onClipEvent(), que você pode atribuir diretamente a botões e clipes de filme.) Na caixa de
ferramentas Actions, cada objeto do ActionScript com métodos de manipulador de eventos ou
ouvintes de eventos tem uma subcategoria chamada Events (Eventos) ou Listeners (Ouvintes).
Alguns comandos podem ser usados como manipuladores de eventos e como ouvintes de eventos
e são incluídos nas duas subcategorias.
Expressões são combinações legais de símbolos do ActionScript que representam um valor. Uma
expressão consiste em operadores e operandos. Por exemplo, na expressão x + 2, x e 2 são
operandos e + é um operador.
Funções são blocos de código reutilizáveis que podem receber parâmetros e retornar um valor.
Para obter mais informações, consulte “Criando funções” na página 48.
são nomes usados para indicar uma variável, uma propriedade, um objeto, uma
função ou um método. O primeiro caractere deve ser uma letra, um sublinhado (_) ou um cifrão
($). Cada caractere seguinte deve ser uma letra, um número, um sublinhado ou um cifrão. Por
exemplo, firstName é o nome de uma variável.
Identificadores
Instâncias são objeto que pertencem a certas classes. Cada instância de uma classe contém todas
as propriedades e métodos dessa classe. Por exemplo, todos os clipes de filme são instâncias da
classe MovieClip, portanto você pode usar qualquer método ou propriedade da classe MovieClip
com qualquer instância de clipe de filme.
Nomes de instância são nomes exclusivos que permitem fazer referência a instâncias de botões e
clipes de filme em scripts. Use o inspetor Property (Propriedades) para atribuir nomes a instâncias
no Stage (Palco). Por exemplo, um símbolo principal na biblioteca pode ser chamado de counter
e as duas instâncias desse símbolo no arquivo SWF podem ter os nomes de instância
scorePlayer1_mc e scorePlayer2_mc. O seguinte código define uma variável denominada
score em cada instância de clipe de filme por meio de nomes de instâncias:
_root.scorePlayer1_mc.score += 1;
_root.scorePlayer2_mc.score -= 1;
Você pode usar sufixos especiais ao nomear instâncias para que referências de código (consulte
“Usando referências de código” na página 60) apareçam à medida que você digita o código. Para
obter mais informações, consulte “Usando sufixos para ativar referências de código” na página 58.
Terminologia
23
Palavras-chave são palavras reservadas que têm significado especial. Por exemplo, var é uma
palavra-chave usada para declarar variáveis locais. Não é possível usar uma palavra-chave como um
identificador. Por exemplo, var não é um nome de variável legal.
Métodos são
funções associadas a uma classe. Por exemplo, getBytesLoaded() é um método
interno associado à classe MovieClip. Você também pode criar funções que funcionem como
métodos, para objeto baseados em classes internas ou objeto baseados nas classes criadas por você.
Por exemplo, no código abaixo, clear() torna-se um método de um objeto controller que
você já definiu:
function reset(){
this.x_pos = 0;
this.x_pos = 0;
}
controller.clear = reset;
controller.clear();
são coleções de propriedades e métodos; cada objeto tem seu próprio nome e é uma
instância de uma classe específica. Objeto internos são predefinidos na linguagem ActionScript.
Por exemplo, o objeto interno Date fornece informações sobre o relógio do sistema.
Objeto
Operadores são termos que calculam um novo valor de um ou mais valores. Por exemplo, o
operador de adição (+) adiciona dois ou mais valores para produzir um novo valor. Os valores
manipulados pelos operadores são denominados operandos.
Parâmetros (também denominados argumentos) são espaços reservados que permitem passar
valores para funções. Por exemplo, a seguinte função welcome() usa dois valores que recebe nos
parâmetros firstName e hobby:
function welcome(firstName, hobby) {
welcomeText = "Hello, " + firstName + "I see you enjoy " + hobby;
}
Propriedades são atributos que definem um objeto. Por exemplo, _visible é uma propriedade
de todos os clipes de filme que define se eles estão visíveis ou ocultos.
são endereços hierárquicos de nomes de instâncias de clipes de filme,
variáveis e objeto em um SWF. Você pode dar um nome a uma instância de clipe de filme no
inspetor Property do clipe de filme. (A Timeline (Linha de tempo) principal sempre tem o nome
_root.) Você pode usar um caminho de destino para direcionar uma ação em um clipe de filme,
ou para obter ou definir o valor de uma variável. Por exemplo, o seguinte comando é o caminho
de destino da variável volume dentro do clipe de filme stereoControl:
Caminhos de destino
_root.stereoControl.volume
Para obter mais informações sobre caminhos de destino, consulte “Absolute and relative target
paths” (Caminhos de destino absolutos e relativos) em Usando a Ajuda do Flash.
As variáveis são identificadores que contêm valores de qualquer tipo de dado. É possível criar,
alterar e atualizar variáveis. Os valores que elas armazenam podem ser recuperados para uso em
scripts. No exemplo a seguir, os identificadores no lado esquerdo dos sinais de igual são variáveis:
var x = 5;
var name = "Lolo";
var c_color = new Color(mcinstanceName);
Para obter mais informações sobre variáveis, consulte “Sobre variáveis” na página 36.
24
Capítulo 2: Conceitos básicos do ActionScript
Sintaxe
Como em qualquer linguagem, o ActionScript tem regras de sintaxe a serem seguidas para criar
scripts que possam ser compilados e executados corretamente. Esta seção descreve os elementos
que compõem a sintaxe do ActionScript.
Distinção entre maiúsculas e minúsculas
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Em uma linguagem de programação que distingue maiúsculas e minúsculas, nomes de variáveis
que diferem somente em sua primeira letra (book e Book) são considerados diferentes. No Flash,
a distinção entre maiúsculas e minúsculas é implementada de forma um pouco diferente,
dependendo da versão do Flash Player especificada e da sua versão do ActionScript. Assim,
independentemente do Flash Player especificado, é recomendável seguir convenções de
maiúsculas e minúsculas consistentes, como as usadas neste manual, para facilitar a identificação
de nomes de funções e variáveis no código do ActionScript.
Quando Syntax coloring (Sinalização da sintaxe por cores) estiver ativada, os elementos de
linguagem escritos corretamente em maiúsculas ou minúsculas ficarão azuis por padrão. Para
obter mais informações, consulte “Palavras-chave” na página 30 e “Realce de sintaxe”
na página 57.
Flash Player 7 ou posterior e distinção entre maiúsculas e minúsculas
Quando você publica arquivos para Flash Player 7 ou posterior, o Flash implementa a distinção
entre maiúsculas e minúsculas durante a compilação e a execução, independentemente do uso do
ActionScript 1 ou ActionScript 2. Isso significa que palavras-chave, nomes de classes, variáveis,
nomes de métodos e outros distinguem maiúsculas e minúsculas. Por exemplo:
// Em arquivo que especifique o Flash Player 7
// e o ActionScript 1 ou o ActionScript 2
//
// Define propriedades de dois objeto diferentes
cat.hilite = true;
CAT.hilite = true;
// Cria três variáveis diferentes
var myVar=10;
var myvar=10;
var mYvAr=10;
// Não gera um erro
var array = new Array();
var date = new Date();
Sintaxe
25
Além disso, a distinção entre maiúsculas e minúsculas é implementada durante a compilação e a
execução para scripts externos, como arquivos de classe do ActionScript 2 ou scripts que você
importa com o comando #include. Assim, se você fizer upgrade do Flash MX ou anterior para o
Flash MX 2004 e já tiver criado arquivos externos adicionados aos scripts com o comando
#include, será necessário revisar cada arquivo e confirmar o uso consistente de maiúsculas ou
minúsculas em todos eles. Uma forma de fazer isso é abrir o arquivo na janela Script (somente
Flash Professional) ou, em um novo arquivo FLA, definir as configurações de publicação para o
Flash Player 7 e copiar o conteúdo do arquivo para o painel Actions. Em seguida, use o botão
Check Syntax (Verificar sintaxe) (consulte “Verificando sintaxe e pontuação” na página 63) ou
publique o arquivo; os erros causados por conflitos de nomeação aparecerão no painel Output (Saída).
ActionScript 2, Flash Player 6 e distinção entre maiúsculas e minúsculas
Quando você especifica ActionScript 2 e Flash Player 6 na caixa de diálogo Publish Settings
(Configurações de publicação), a distinção entre maiúsculas e minúsculas de variáveis (mas não de
palavras-chave) é implementada durante a compilação, mas não durante a execução. Na prática,
essa implementação significa que erros de distinção entre maiúsculas e minúsculas, que podem
impedir os programas de funcionarem corretamente durante a execução, não aparecem durante a
compilação. Por exemplo, não serão exibidos erros durante a compilação em função da existência
de duas variáveis score e Score em um script, embora elas possam estar em conflito e causar a
falha silenciosa do script durante a execução. Como o conflito não é aparente durante a
compilação, você deverá diagnosticar esse tipo de problema sozinho.
// Em arquivo que especifica o Flash Player 6
// e usa o ActionScript 2
//
// Define propriedades de dois objeto diferentes durante a compilação
// mas trata os dois como o mesmo objeto durante a execução
cat.hilite = true;
CAT.hilite = true;
// Cria três variáveis diferentes
// mas trata as três como a mesma variável durante a execução
var myVar=10;
var myvar=10;
var mYvAr=10;
// Gera erros durante a compilação
var array = new Array();
var date = new Date();
26
Capítulo 2: Conceitos básicos do ActionScript
ActionScript 1, Flash Player 6 ou anterior e distinção entre maiúsculas
e minúsculas
Se você usar o ActionScript 1 e especificar o Flash Player 6 ou anterior, a distinção entre
maiúsculas e minúsculas não será implementada. Os nomes de variáveis que diferirem somente
quanto ao uso de maiúsculas ou minúsculas serão considerados idênticos. Além disso, nomes de
variáveis não poderão ser iguais a palavras-chave, mesmo se houver distinção entre maiúsculas e
minúsculas.
// Em arquivo que especifica o Flash Player 6 ou anterior
// e usa o ActionScript 1
//
// Define propriedades de um único objeto
cat.hilite = true;
CAT.hilite = true;
// Cria uma variável
var myVar=10;
var myvar=10;
var mYvAr=10;
// Gera erros durante a compilação
var array = new Array();
var date = new Date();
Sintaxe de ponto
No ActionScript, um ponto (.) é usado para indicar as propriedades ou os métodos relacionados
a um objeto ou clipe de filme. O ponto também é usado para identificar o caminho de destino até
um clipe de filme, uma variável, uma função ou um objeto. Uma expressão de sintaxe de ponto
começa com o nome do objeto ou clipe de filme seguido de um ponto e termina com o elemento
a ser especificado.
Por exemplo, a propriedade _x do clipe de filme indica a posição no eixo x desse clipe no Stage.
A expressão ballMC._x se refere à propriedade _x da instância ballMC do clipe de filme.
Outro exemplo: submit é uma variável definida no clipe de filme form, que é aninhado no clipe
de filme shoppingCart. A expressão shoppingCart.form.submit = true define a variável
submit da instância form como true.
A expressão do método de um objeto ou clipe de filme segue o mesmo padrão. Por exemplo,
o método play() da instância de clipe de filme ball_mc move a reprodução na Timeline de
ball_mc, como mostrado no comando abaixo:
ball_mc.play();
A sintaxe de ponto também usa dois aliases especiais, _root e _parent. O alias _root refere-se à
Timeline principal. Você pode usar o alias _root para criar um caminho de destino absoluto.
Por exemplo, o seguinte comando chama a função buildGameBoard() no clipe de filme
functions na Timeline principal:
_root.functions.buildGameBoard();
Você pode usar o alias _parent para se referir a um clipe de filme no qual o objeto atual esteja
aninhado. Pode também usar _parent para criar um caminho de destino relativo. Por exemplo,
se o clipe de filme dog_mc estiver aninhado no clipe de filme animal_mc, o seguinte comando na
instância dog_mc informará que animal_mc deve parar:
_parent.stop();
Sintaxe
27
Chaves
No ActionScript, manipuladores de eventos, definições de classes e funções são agrupados em
blocos com chaves ({}). A chave inicial pode ser colocada na mesma linha que a declaração ou na
próxima linha, como mostrado nos exemplos a seguir. Para tornar o código mais legível,
é recomendável escolher um formato e usá-lo de forma consistente.
// Manipulador de eventos
on (release) {
myDate = new Date();
currentMonth = myDate.getMonth();
}
on(release)
{
myDate = new Date();
currentMonth = myDate.getMonth();
}
// Classe
class Circle(radius) {
}
class Square(side)
{
}
// Função
circleArea = function(radius) {
return radius * radius * MATH.PI;
}
squareArea = function(side)
{
return side * side;
}
Você pode verificar a existência de chaves correspondentes nos scripts; consulte “Verificando
sintaxe e pontuação” na página 63.
Pontos-e-vírgulas
Um comando do ActionScript é terminado por um ponto-e-vírgula (;), como mostrado
nestes exemplos:
var column = passedDate.getDay();
var row
= 0;
Se o ponto-e-vírgula de terminação for omitido, o Flash ainda assim compilará o script com êxito.
Porém, o uso do ponto-e-vírgula é uma prática recomendável na criação de scripts.
28
Capítulo 2: Conceitos básicos do ActionScript
Parênteses
Ao definir uma função, coloque os parâmetros entre parênteses:
function myFunction (name, age, reader){
// Insira seu código aqui
}
Ao chamar uma função, inclua os parâmetros passados para ela entre parênteses da seguinte forma:
myFunction (“Steve”, 10, true);
Também é possível usar parênteses para substituir a ordem de precedência do ActionScript ou
para facilitar a leitura dos comandos do ActionScript. (Consulte “Associatividade e precedência
de operadores” na página 41.)
Use parênteses também para avaliar uma expressão à esquerda de um ponto em uma sintaxe de
ponto. Por exemplo, no seguinte comando, os parênteses fazem com que new Color(this) avalie
e crie um novo objeto Color:
onClipEvent (enterFrame){
(new Color(this)).setRGB(0xffffff);
}
Se você não usar parênteses, adicione um comando para avaliar a expressão:
onClipEvent (enterFrame){
myColor = new Color(this);
myColor.setRGB(0xffffff);
}
Você pode verificar a existência de parênteses correspondentes nos scripts; consulte “Verificando
sintaxe e pontuação” na página 63.
Comentários
É bastante recomendável usar comentários para adicionar observações a scripts. Os comentários
são úteis para registrar as suas intenções e passar informações para outros desenvolvedores, caso
você esteja trabalhando em um ambiente de colaboração ou fornecendo amostras. Será muito
mais fácil entender um script, por mais simples que ele seja, se você fizer observações ao criá-lo:
Para indicar que uma linha ou parte de uma linha é um comentário, anteceda o comentário com
duas barras (//):
on (release) {
// cria um novo objeto Date
myDate = new Date();
currentMonth = myDate.getMonth();
// converte o número do mês no nome do mês
monthName = calcMonth(currentMonth);
year = myDate.getFullYear();
currentDate = myDate.getDate();
}
Quando Syntax coloring estiver ativada (consulte “Realce de sintaxe” na página 57), os
comentários ficarão em cinza por padrão. O tamanho dos comentários não afeta o tamanho do
arquivo exportado e eles não precisam seguir as regras de palavras-chave ou sintaxe do
ActionScript.
Sintaxe
29
Para “comentar” uma parte inteira do script, coloque o comentário em bloco, em vez de adicionar
// ao início de cada linha. Essa técnica é mais fácil e útil quando você deseja testar somente partes
de um script comentando grandes seções dele.
Para criar um bloco de comentário, coloque /* no início das linhas comentadas e */ no fim.
Por exemplo, quando o seguinte script é executado, a parte do código contida no bloco não é
executada:
// O código abaixo é executado
var x:Number = 15;
var y:Number = 20;
// O código abaixo não é executado
/*
on (release) {
// cria um novo objeto Date
myDate = new Date();
currentMonth = myDate.getMonth();
// converte o número do mês no nome do mês
monthName = calcMonth(currentMonth);
year = myDate.getFullYear();
currentDate = myDate.getDate();
}
*/
// O código abaixo é executado
var name:String = “My name is”;
var age:Number = 20;
Palavras-chave
O ActionScript reserva palavras para uso específico na linguagem, portanto você não pode usá-las
como identificadores, como nomes de variáveis, funções ou rótulos. A tabela seguinte lista todas as
palavras-chave do ActionScript:
break
case
class
continue
default
delete
dynamic
else
extends
for
function
get
if
implements
import
in
instanceof
interface
new
private
public
return
set
static
switch
this
typeof
var
void
while
with
Constantes
Uma constante é uma propriedade cujo valor nunca é alterado.
Por exemplo, as constantes BACKSPACE, ENTER, QUOTE, RETURN, SPACE e TAB são propriedades do
objeto Key e se referem às teclas do teclado. Para testar se o usuário está pressionando a tecla
Enter, você pode usar o seguinte comando:
if(Key.getCode() == Key.ENTER) {
alert = "Are you ready to play?";
controlMC.gotoAndStop(5);
}
30
Capítulo 2: Conceitos básicos do ActionScript
Sobre tipos de dados
Os tipos de dados descrevem que tipos de informações um elemento do ActionScript ou variável
pode conter. Existem dois tipos de dados internos no Flash: primitivo e referência. Os dados do
tipo primitivo — String, Number e Boolean — têm um valor constante e, portanto, podem
manter o valor real do elemento que representam. Os de referência — MovieClip e Object — têm
valores que podem ser alterados e, portanto, contêm referências ao valor real do elemento. Em
determinadas situações, as variáveis que contêm tipos de dados primitivos comportam-se de
maneira diferente das que contêm tipos de dados de referência. (Consulte “Usando variáveis em
um programa” na página 39.) Existem também dois tipos de dados especiais: null e undefined.
No Flash, qualquer objeto interno que não seja do tipo de dado primitivo ou de clipe de filme,
como Array ou Math (Matemática), será do tipo de dado Object.
Cada tipo de dado possui suas próprias regras e é descrito nos seguintes tópicos:
•
•
•
•
•
•
•
“String” na página 31
“Number” na página 32
“Boolean” na página 32
“Object” na página 33
“MovieClip” na página 33
“Null” na página 33
“Undefined” na página 33
Ao depurar scripts, talvez você precise determinar os tipos de dados de uma expressão ou variável
para entender seu comportamento. Isso pode ser feito com o operador typeof (consulte
“Determinando o tipo de dados de um item” na página 34).
Você pode converter um tipo de dado em outro usando uma das seguintes funções de conversão:
Array(), Boolean(), Number(), Object(), String().
String
Uma seqüência de caracteres é uma seqüência de letras, números e sinais de pontuação. Insira
seqüências de caracteres em comandos do ActionScript colocando-as entre aspas simples ou
duplas. As seqüências de caracteres são tratadas como caracteres e não como variáveis. Por
exemplo, no seguinte comando, "L7" é uma seqüência de caracteres:
favoriteBand = "L7";
Você pode usar o operador de adição (+) para concatenar, ou unir, duas seqüências de caracteres.
O ActionScript trata os espaços no começo ou no final de uma seqüência de caracteres como uma
parte literal dessa seqüência. A seguinte expressão inclui um espaço depois da vírgula:
greeting = "Welcome," + firstName;
Sobre tipos de dados
31
Para incluir aspas em uma seqüência de caracteres, coloque uma barra invertida (\) antes dessas
aspas. Isso é chamado de caractere de “escape”. Há outros caracteres que só podem ser
representados no ActionScript por seqüências de escape especiais. A tabela seguinte fornece todos
os caracteres de escape do ActionScript:
Seqüência de escape Caractere
\b
Caractere Backspace (ASCII 8)
\f
Caractere de alimentação de formulário (ASCII 12)
\n
Caractere de alimentação de linha (ASCII 10)
\r
Caractere de retorno de carro (ASCII 13)
\t
Caractere Tab (ASCII 9)
\"
Aspas duplas
\'
Aspas simples
\\
Barra invertida
\000 - \377
Um byte especificado em octal
\x00 - \xFF
Um byte especificado em hexadecimal
\u0000 - \uFFFF
Um caractere Unicode de 16 bits especificado em hexadecimal
Number
O tipo de dados number é um número de dupla precisão e ponto flutuante. É possível manipular
números usando os operadores aritméticos de adição (+), subtração (-), multiplicação (*), divisão
(/), módulo (%), incremento (++) e decremento (--). Também é possível usar métodos das classes
internas Math e Number para manipular números. O seguinte exemplo usa o método sqrt()
(square root - raiz quadrada) para retornar a raiz quadrada do número 100:
Math.sqrt(100);
Para obter mais informações, consulte “Operadores numéricos” na página 42.
Boolean
Um valor booleano é true ou false. O ActionScript também converte os valores true e false
em 1 e 0 quando apropriado. Os valores booleanos são freqüentemente usados com operadores
lógicos em comandos do ActionScript que fazem comparações para controlar o fluxo de um
script. Por exemplo, no seguinte script, o SWF será reproduzido se a variável password for true:
onClipEvent (enterFrame){
if (userName == true && password == true){
play();
}
}
Consulte “Usando funções internas” na página 47 e “Operadores lógicos” na página 43.
32
Capítulo 2: Conceitos básicos do ActionScript
Object
Um objeto é uma coleção de propriedades. Cada propriedade possui um nome e um valor.
O valor de uma propriedade pode ser qualquer tipo de dado do Flash, até mesmo um tipo de
dado de objeto. Isso permite aninhar os objeto, ou seja, organizá-los uns dentro dos outros.
Para especificar os objeto e suas propriedades, use o operador ponto (.). Por exemplo, no seguinte
código, hoursWorked é uma propriedade de weeklyStats, que por sua vez é uma propriedade de
employee:
employee.weeklyStats.hoursWorked
É possível usar os objeto internos do ActionScript para acessar e manipular tipos específicos de
informações. Por exemplo, o objeto Math possui métodos que executam operações matemáticas
com números passados para eles. Este exemplo usa o método sqrt():
squareRoot = Math.sqrt(100);
O objeto MovieClip do ActionScript possui métodos que permitem controlar instâncias
de símbolos de clipes de filme no Stage. Este exemplo usa os métodos play() e nextFrame():
mcInstanceName.play();
mc2InstanceName.nextFrame();
Você também pode criar objeto personalizados para organizar informações em seu aplicativo
Flash. Para adicionar interatividade a um aplicativo com ActionScript, você precisará de muitas
informações diferentes: por exemplo, o nome de um usuário, a velocidade de uma bola, os nomes
dos itens de um carrinho de compras, o número de quadros carregados, o CEP do usuário ou a
última tecla pressionada. A criação de objeto personalizados permite que você organize essas
informações em grupos, simplifique e reutilize os scripts.
MovieClip
Clipes de filme são símbolos que podem reproduzir animações em um aplicativo Flash. O tipo de
dado MovieClipe é o único que faz referência a elementos gráficos. Ele permite controlar símbolos
de clipes de filme com os métodos da classe MovieClip. Chame os métodos usando o operador
ponto (.), conforme o exemplo a seguir:
my_mc.startDrag(true);
parent_mc.getURL("http://www.macromedia.com/support/" + product);
Null
O tipo de dado null só possui um valor: null. Esse valor significa “não há valor” — ou seja, uma
falta de dados. É possível usar o valor null em diversas situações. Veja a seguir alguns exemplos:
• Para indicar que uma variável ainda não recebeu um valor
• Para indicar que uma variável não contém mais um valor
• Como valor de retorno de uma função, para indicar que não havia valor disponível a ser
retornado pela função
• Como parâmetro de uma função, para indicar a omissão de um parâmetro
Undefined
O tipo de dado undefined tem um valor, undefined, e é usado para uma variável que não recebeu
atribuição de valor.
Sobre tipos de dados
33
Determinando o tipo de dados de um item
Ao testar e depurar seus programas, você pode descobrir problemas que parecem estar
relacionados aos tipos de dados de itens diferentes. Nesses casos, você pode determinar o tipo de
dado de um item. Para isso, use o operador typeof, como mostrado neste exemplo:
trace(typeof(variableName));
Para obter mais informações sobre testes e depuração, consulte Capítulo 3, “Escrevendo e
depurando scripts”, na página 51.
Atribuindo tipos de dados a elementos
O Flash atribui automaticamente tipos de dados aos seguintes tipos de elementos de linguagem,
como analisado na seção a seguir, “Atribuindo tipos de dados automaticamente”.
•
•
•
•
Variáveis
Parâmetros passados a uma função, método ou classe
Valores retornados de uma função ou método
Objeto criados como subclasses de classes existentes
Entretanto, você também pode atribuir explicitamente tipos de dados a itens, o que pode ajudar a
evitar ou diagnosticar certos erros nos scripts. Para obter mais informações, consulte “Atribuição
estrita de tipos de dados” na página 35.
Atribuindo tipos de dados automaticamente
No Flash, não é preciso definir explicitamente um item que tenha um tipo de dados number,
string ou outro. O Flash determina o tipo de dados de um item quando ele é atribuído:
var x = 3;
Na expressão var x = 3, o Flash avalia o elemento à direita do operador e determina que ele é do
tipo de dado number. Uma atribuição posterior pode alterar o tipo de x; por exemplo, o comando
x = "hello" altera o tipo de x para string. Uma variável à qual não tenha sido atribuído um
valor tem o tipo undefined.
O ActionScript converte tipos de dados automaticamente sempre que uma expressão exige. Por
exemplo, quando você passa um valor para a ação trace(), trace() converte automaticamente o
valor em uma seqüência de caracteres e o envia para o painel Output. Em expressões com
operadores, o ActionScript converte tipos de dados conforme a necessidade; por exemplo, quando
usado com uma seqüência de caracteres, o operador + prevê que o outro operando seja uma
seqüência de caracteres:
"Next in line, number " + 7
O ActionScript converte o número 7 na seqüência de caracteres "7" e o adiciona ao final da
primeira seqüência de caracteres, o que resulta na seguinte seqüência de caracteres:
"Next in line, number 7"
34
Capítulo 2: Conceitos básicos do ActionScript
Atribuição estrita de tipos de dados
O ActionScript 2 permite declarar explicitamente o tipo de objeto de uma variável quando você a
cria; isso se chama Atribuição estrita de tipos de dados. Como erros de tipos de dados causam erros
do compilador, a Atribuição estrita de tipos de dados ajuda a evitar atribuir o tipo de dados errado
a uma variável existente. Para atribuir um tipo de dados específico a um item, defina seu tipo
usando a sintaxe pós-dois-pontos:
// atribuição de tipo de dados estrita de variável
var x:Number = 7;
// atribuição de tipo de dados estrita de parâmetro
function welcome(firstName:String, age:Number){
}
// atribuição de tipo de dados de parâmetro estrita e valor de retorno
function square(x:Number):Number {
var squared = x*x;
return squared;
}
// atribuição de tipo de dados estrita de objeto
var my_date:Date = new Date();
Você pode declarar o tipo de dado de objeto baseado em classes internas (Button, Date,
MovieClip etc) e em classes e interfaces criadas por você. Por exemplo, se houver um arquivo
Student.as no qual você define a classe Student (Aluno), você poderá especificar que os objeto que
criar sejam do tipo Student:
var student:Student = new Student();
Você também poderá especificar que os objeto sejam do tipo Function.
Usar a atribuição de tipo estrita ajuda a garantir que você não atribua inadvertidamente um tipo
incorreto de valor a um objeto. O Flash verifica erros de tipo de dados incorreto durante a
compilação. Por exemplo, suponha que você defina o seguinte código:
// na definição do constutor para a classe Student
var status:Boolean; // propriedade de objeto Student
// em um script
var studentMaryLago:Student = new Student();
studentMaryLago.status = "enrolled";
Quando o Flash compila esse script, é gerado um erro “Type mismatch” (Erro de tipo).
Outra vantagem da atribuição de tipo de dados estrita é que o Flash MX 2004 exibe
automaticamente referências de código para objeto internos quando o tipo de dados é atribuído a
eles estritamente. Para obter mais informações, consulte “Atribuindo tipo a objeto estritamente
para ativar referências de código” na página 58.
O ActionScript 1 não oferece suporte para a atribuição de tipo de dados estrita. Embora um script
com comandos de atribuição de tipo de dados estrita possa parecer ser compilado corretamente no
ActionScript 1, o SWF talvez não funcione como desejado. Além disso, quando você usa o
ActionScript 2 e especifica Flash Player 6, o suporte durante a execução para a atribuição de tipo
de dados estrita não está presente. O resultado pode ser a atribuição de um objeto a uma variável
do tipo incorreto, fazendo com que o compilador permita que chamadas de método ilegais e
referências de propriedade não definidas sejam passadas sem serem relatadas.
Atribuindo tipos de dados a elementos
35
Convertendo objeto
O operador de conversão usado pelo Flash tem a forma de uma chamada de função e é simultâneo
à “coerção explícita”, conforme especificado na proposta ECMA-262 edição 4. Ele permite
afirmar que um objeto seja de um certo tipo, para que, quando a verificação de tipo ocorrer,
o compilador possa ver o objeto com um conjunto de propriedades que o tipo inicial não contém.
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Sobre variáveis
Uma variável é um recipiente que contém informações. O recipiente é sempre o mesmo, mas o
conteúdo pode mudar. Ao alterar o valor de uma variável quando o SWF estiver sendo reproduzido,
você poderá registrar e salvar informações sobre as atividades do usuário, gravar valores que
mudam à medida que o SWF é reproduzido ou avaliar se uma condição é true ou false.
É recomendável atribuir sempre um valor conhecido a uma variável na primeira vez que você
defini-la. Esse procedimento é conhecido como inicializar uma variável e é geralmente feito no
primeiro quadro do SWF. A inicialização de variáveis facilita o controle e a comparação do valor
da variável durante a reprodução do SWF.
Variáveis podem armazenar qualquer tipo de dados (consulte “Sobre tipos de dados”
na página 31). Os tipos de dados que uma variável contém afetam a forma como o valor da
variável é alterado quando atribuído em um script.
Os tipos mais comuns de informações que você pode armazenar em uma variável são um URL,
um nome de usuário, o resultado de uma operação matemática, o número de vezes que um evento
ocorreu ou se um botão foi clicado. Cada SWF e instância de clipe de filme tem um conjunto de
variáveis, no qual cada variável tem um valor independentemente das variáveis em outros SWFs
ou clipes de filme.
Para testar o valor de uma variável, use a ação trace() a fim de enviar o valor para o painel
Output. Por exemplo, trace(hoursWorked) envia o valor da variável hoursWorked para o painel
Output no modo de teste. Também é possível verificar e definir os valores da variável no
Debugger (Depurador) no modo de teste. Para obter mais informações, consulte “Usando o
comando trace” na página 75 e “Exibindo e modificando variáveis” na página 68.
36
Capítulo 2: Conceitos básicos do ActionScript
Nomeando uma variável
O nome de uma variável deve seguir estas regras:
• Ele deve ser um identificador (consulte “Terminologia” na página 22).
• Não pode ser uma palavra-chave nem um literal do ActionScript como true, false, null ou
undefined.
• Ele deve ser exclusivo em seu escopo (consulte “Atribuindo um escopo e declarando variáveis”
na página 37).
Além disso, não use qualquer elemento na linguagem ActionScript como um nome de variável;
isso pode causar erros de sintaxe ou resultados inesperados. Por exemplo, se você nomear uma
variável String e depois tentar criar um objeto String usando new String(), o novo objeto será
indefinido.
hello_str = new String();
trace(hello_str.length); // retorna 0
String = "hello"; // Fornecendo a uma variável o mesmo nome que uma classe
interna
hello_str = new String();
trace(hello_str.length); // retorna indefinido
O editor do ActionScript oferece suporte a referências de código para classes internas e variáveis
que se baseiem nessas classes. Se desejar que o Flash forneça referências de código para um tipo de
objeto específico atribuído a uma variável, você poderá definir estritamente a variável ou nomeá-la
usando um sufixo específico.
Por exemplo, suponha que você defina o seguinte código:
var members:Array = new Array();
members.
Assim que você digita o ponto (.), o Flash exibe uma lista de métodos e propriedades disponíveis
para objeto Array. Para obter mais informações, consulte “Escrevendo código para ativar
referências de código” na página 57.
Atribuindo um escopo e declarando variáveis
O escopo de uma variável refere-se à área na qual a variável é conhecida e na qual pode ser
referenciada. Há três tipos de escopo de variável no ActionScript:
• Variáveis locais estão disponíveis no corpo da função em que são declaradas (delineado por
•
•
chaves).
Variáveis de Timeline estão disponíveis para qualquer script nessa Timeline.
Variáveis globais e funções estão disponíveis para cada Timeline e escopo do documento.
Observação: As classes do ActionScript 2 criadas por você oferecem suporte para escopos
públicos, particulares e estáticos de variáveis. Para obter mais informações, consulte “Controlando o
acesso de membros” na página 168 e “Criando membros de classe” na página 169.
Sobre variáveis
37
Variáveis locais
Para declarar variáveis locais, use o comando var dentro do corpo de uma função. O escopo de
uma variável local é o bloco e expira ao final desse bloco. Uma variável local não declarada dentro
de um bloco expira ao final de seu script.
Por exemplo, as variáveis i e j são usadas com freqüência para contagem de repetições. No
exemplo seguinte, i é usado como uma variável local; ela só existe dentro da função makeDays():
function makeDays() {
var i;
for( i = 0; i < monthArray[month]; i++ ) {
_root.Days.attachMovie( "DayDisplay", i, i + 2000 );
_root.Days[i].num = i + 1;
_root.Days[i]._x = column * _root.Days[i]._width;
_root.Days[i]._y = row * _root.Days[i]._height;
column = column + 1;
if (column == 7 ) {
column = 0;
row = row + 1;
}
}
}
As variáveis locais também ajudam a impedir conflitos de nomes, que podem causar erros no
aplicativo. Por exemplo, se usar name como uma variável local, você poderá usá-la para armazenar
o nome de um usuário em um contexto e o nome de uma instância de clipe de filme em outro;
como essas variáveis são executadas em escopos separados, não há conflitos.
É bom usar variáveis locais no corpo de uma função para que a função possa atuar como um
código independente. Uma variável local só pode ser alterada no seu próprio bloco de código.
Se uma expressão em uma função usar uma variável global, algum fator fora da função poderá
alterar seu valor, o que irá alterar a função.
Variáveis de Timeline
Variáveis de Timeline estão disponíveis para qualquer script nessa Timeline. Para declarar variáveis
de Timeline, inicialize-as em qualquer quadro da Timeline. Certifique-se de inicializar a variável
antes de acessá-la em um script. Por exemplo, se você colocar o código var x = 10; no
quadro 20, um script anexado a qualquer quadro antes do Quadro 20 não poderá acessar essa
variável.
38
Capítulo 2: Conceitos básicos do ActionScript
Variáveis globais
Variáveis globais e funções estão disponíveis para cada Timeline e escopo do documento.
Para criar uma variável com escopo global, use o identificador _global antes do nome da variável
e não use a sintaxe var =. Por exemplo, o código a seguir cria a variável global myName:
var _global.myName = "George"; // erro de sintaxe
_global.myName = "George";
Entretanto, se você inicializar uma variável local com o mesmo nome de uma variável global,
não terá acesso à variável global enquanto estiver no escopo da variável local:
_global.counter = 100;
counter++;
trace(counter); // exibe 101
function count(){
for( var counter = 0; counter <= 10 ; counter++ ) {
trace(counter); // exibe de 0 a 10
}
}
count();
counter++;
trace(counter); // exibe 102
Usando variáveis em um programa
Você deve declarar uma variável em um script antes de usá-la em uma expressão. Se você usar uma
variável não declarada, como mostrado no exemplo a seguir, o valor da variável será NaN ou
undefined, e o script poderá produzir resultados indesejados:
var squared = x*x;
trace(squared); // NaN
var x = 6;
No exemplo a seguir, o comando que declara a variável x deve vir primeiro, para que squared
possa ser substituído por um valor:
var x = 6;
var squared = x*x;
trace(squared); // 36
Ocorre um comportamento semelhante quando você passa uma variável indefinida para um
método ou função:
getURL(myWebSite); // nenhuma ação
var myWebSite = "http://www.macromedia.com";
var myWebSite = "http://www.macromedia.com";
getURL(myWebSite); // o navegador exibe www.macromedia.com
Você pode alterar o valor de uma variável muitas vezes em um script. O tipo de dados que a
variável contém afeta como e quando a variável será alterada. Tipos de dados primitivos, como
seqüências de caracteres e números, são passados por valor. Isso significa que o conteúdo real da
variável é passado para a variável.
No exemplo a seguir, x é definido como 15 e esse valor é copiado para y. Quando x é alterado para
30 na linha 3, o valor de y continua a ser 15, porque y não procura seu valor em x; ele contém o
valor de x que recebeu na linha 2.
var x = 15;
var y = x;
var x = 30;
Sobre variáveis
39
Outro exemplo: a variável inValue contém um valor primitivo 3; sendo assim, o valor real é
passado para a função sqrt() e o valor retornado é 9:
function sqrt(x){
return x * x;
}
var inValue = 3;
var out = sqrt(inValue);
O valor da variável inValue não é alterado.
O tipo de dados de objeto pode conter informações tão numerosas e complexas que uma variável
com esse tipo não armazenará o valor real, mas uma referência a esse valor. Essa referência é como
um alias que aponta para o conteúdo da variável. Quando a variável precisa saber seu valor,
a referência solicita o conteúdo e responde sem transferir o valor para a variável.
O exemplo seguinte mostra como passar por referência:
var myArray = ["tom", "josie"];
var newArray = myArray;
myArray[1] = "jack";
trace(newArray);
O código acima cria um objeto Array chamado myArray com dois elementos. A variável
newArray é criada e passa uma referência para myArray. Quando o segundo elemento de myArray
é alterado, todas as variáveis com uma referência a ele são afetadas. A ação trace() envia
tom, jack para o painel Output.
No exemplo abaixo, myArray contém um objeto Array, portanto, ela é passada para a função
por referência. A função zeroArray() altera o conteúdo do array em myArray.
zeroArray()
function zeroArray (theArray){
var i;
for (i=0; i < theArray.length; i++) {
theArray[i] = 0;
}
}
var myArray = new Array();
myArray[0] = 1;
myArray[1] = 2;
myArray[2] = 3;
zeroArray(myArray);
A função zeroArray() aceita um objeto Array como um parâmetro e define todos os elementos
desse array como 0. Ela pode modificar o array porque é passada por referência.
40
Capítulo 2: Conceitos básicos do ActionScript
Usando operadores para manipular valores em expressões
Uma expressão é qualquer comando que o Flash possa avaliar e que retorne um valor. Você pode
criar uma expressão combinando operadores e valores ou chamando uma função.
Os operadores são caracteres que especificam como combinar, comparar ou modificar os valores
de uma expressão. Os elementos aos quais o operador é aplicado são chamados operandos.
Por exemplo, no comando a seguir, o operador + adiciona o valor de um literal numérico ao valor
da variável foo; foo e 3 são os operandos:
foo + 3
Esta seção descreve regras gerais sobre tipos comuns, precedência e associatividade de operadores.
Para obter informações detalhadas sobre cada operador mencionado aqui, bem como sobre
operadores especiais que não constam dessas categorias, consulte as entradas em Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Associatividade e precedência de operadores
Quando dois ou mais operadores são usados no mesmo comando, alguns operadores têm
precedência sobre outros. O ActionScript segue uma hierarquia precisa para determinar que
operadores devem ser executados primeiro. Por exemplo, a multiplicação é sempre executada antes
da adição; no entanto, itens entre parênteses têm precedência sobre a multiplicação. Portanto,
como não há parênteses, o ActionScript executa a multiplicação primeiro no exemplo seguinte:
total = 2 + 4 * 3;
O resultado é 14.
Porém, quando a operação de adição está entre parênteses, o ActionScript executa a adição
primeiro:
total = (2 + 4) * 3;
O resultado é 18.
Quando dois ou mais operadores compartilham a mesma precedência, sua associatividade
determina a ordem na qual serão executados. A associatividade pode ser da esquerda para a direita
ou da direita para a esquerda. Por exemplo, o operador de multiplicação possui uma
associatividade da esquerda para a direita, portanto, os dois comandos a seguir são equivalentes:
total = 2 * 3 * 4;
total = (2 * 3) * 4;
Para obter uma tabela de todos os operadores e respectivas precedência e associatividade, consulte
Apêndice B, “Associatividade e precedência de operadores”, na página 857.
Usando operadores para manipular valores em expressões
41
Operadores numéricos
Os operadores numéricos adicionam, subtraem, multiplicam, dividem e executam outras
operações aritméticas.
O uso mais comum do operador de incremento é i++, em vez do mais extenso i = i+1.
É possível usar esse operador antes ou depois de um operando. No exemplo a seguir, age recebe
primeiro um incremento e, a seguir, é testado em relação ao número 30:
if (++age >= 30)
No exemplo a seguir, age recebe o incremento depois que o teste é realizado:
if (age++ >= 30)
A tabela a seguir lista os operadores numéricos do ActionScript:
Operador
Operação executada
+
Adição
*
Multiplicação
/
Divisão
%
Módulo (resto da divisão)
-
Subtração
++
Incremento
--
Decremento
Operadores de comparação
Os operadores de comparação comparam os valores de expressões e retornam um valor booleano
(true ou false). Esses operadores são mais usados em repetições e em comandos condicionais.
No exemplo a seguir, se a variável score for 100, um determinado SWF será carregado; caso
contrário, será carregado outro SWF :
if (score > 100){
loadMovieNum("winner.swf", 5);
else {
loadMovieNum("loser.swf", 5);
}
A tabela a seguir lista os operadores de comparação do ActionScript:
42
Operador
Operação executada
<
Menor que
>
Maior que
<=
Menor que ou igual a
>=
Maior que ou igual a
Capítulo 2: Conceitos básicos do ActionScript
Operadores de seqüência de caracteres
O operador + tem um efeito especial quando opera em seqüências de caracteres: ele concatena os
dois operandos de seqüências de caracteres. Por exemplo, o comando a seguir adiciona
"Congratulations," a "Donna!":
"Congratulations, " + "Donna!"
O resultado é "Congratulations, Donna!" Se apenas um dos operandos do operador + for uma
seqüência de caracteres, o Flash converterá o outro operando em uma seqüência de caracteres.
Os operadores de comparação >, >=, < e <= também têm um efeito especial quando operam em
seqüências de caracteres. Esses operadores comparam duas seqüências de caracteres para
determinar o que vem primeiro em ordem alfabética. Os operadores de comparação só
compararão seqüências de caracteres se os dois operandos forem seqüências de caracteres.
Se apenas um dos operandos for uma seqüência de caracteres, o ActionScript converterá os dois
operandos em números e executará uma comparação numérica.
Operadores lógicos
Os operadores lógicos comparam valores booleanos (true e false) e retornam um terceiro valor
booleano. Por exemplo, se os dois operandos forem avaliados como true, o operador AND lógico
(&&) retornará true. Se um ou ambos os operandos forem avaliados como true, o operador lógico
OR (||) retornará true. Os operadores lógicos são freqüentemente usados com os operadores de
comparação para determinar a condição de uma ação if. Por exemplo, no script seguinte, se as
duas expressões forem verdadeiras, a ação if será executada:
if (i > 10 && _framesloaded > 50){
play();
}
A tabela a seguir lista os operadores lógicos do ActionScript:
Operador
Operação executada
&&
AND lógico
||
OR lógico
!
NOT lógico
Usando operadores para manipular valores em expressões
43
Operadores bit a bit
Os operadores bit a bit manipulam internamente números de ponto flutuante para transformá-los
em números inteiros de 32 bits. A operação exata realizada depende do operador, mas todas as
operações bit a bit avaliam cada dígito binário (bit) do número inteiro de 32 bits individualmente
para computar um novo valor.
A tabela a seguir lista os operadores bit a bit do ActionScript:
Operador
Operação executada
&
AND bit a bit
|
OR bit a bit
^
XOR bit a bit
~
NOT bit a bit
<<
Desloca para a esquerda
>>
Desloca para a direita
>>>
Desloca para a direita sem preenchimento
Operadores de igualdade
Você pode usar o operador de igualdade (==) para determinar se os valores ou as identidades de
dois operandos são iguais. Essa comparação retorna um valor booleano (true ou false). Se os
operandos forem seqüências de caracteres, números ou valores booleanos, eles serão comparados
por valor. Se os operandos forem objeto ou arrays, serão comparados por referência.
É um erro comum usar o operador de atribuição para verificar se há igualdade. Por exemplo,
o código a seguir compara x a 2:
if (x == 2)
No mesmo exemplo, a expressão x = 2 é incorreta porque não compara os operandos, ela atribui
o valor 2 à variável x.
O operador de igualdade estrita (===) é como o operador de igualdade, com uma diferença
importante: o operador de igualdade estrita não executa a conversão de tipo. Se os dois operandos
forem de tipos diferentes, o operador de igualdade estrita retornará false. O operador de
diferença estrita (!==) retorna o inverso do operador de igualdade estrita.
A tabela a seguir lista os operadores de igualdade do ActionScript:
44
Operador
Operação executada
==
Igualdade
===
Igualdade estrita
!=
Diferença
!==
Diferença estrita
Capítulo 2: Conceitos básicos do ActionScript
Operadores de atribuição
Você pode usar o operador de atribuição (=) para atribuir um valor a uma variável, como
mostrado neste exemplo:
var password = "Sk8tEr";
Você também pode usar o operador de atribuição para atribuir diversas variáveis na mesma
expressão. No comando a seguir, o valor de a é atribuído às variáveis b, c e d:
a = b = c = d;
Você também pode usar operadores de atribuição compostos para combinar operações.
Operadores compostos são executados nos dois operandos e depois atribuem o novo valor ao
primeiro operando. Por exemplo, os dois comandos a seguir são equivalentes:
x += 15;
x = x + 15;
Também é possível usar o operador de atribuição no meio de uma expressão, como mostrado no
exemplo a seguir:
// Se o valor não for vanilla, enviará uma mensagem.
if ((flavor = getIceCreamFlavor()) != "vanilla") {
trace ("Flavor was " + flavor + ", not vanilla.");
}
Esse código equivale ao seguinte código ligeiramente mais extenso:
flavor = getIceCreamFlavor();
if (flavor != "vanilla") {
trace ("Flavor was " + flavor + ", not vanilla.");
}
A tabela a seguir lista os operadores de atribuição do ActionScript:
Operador
Operação executada
=
Atribuição
+=
Adição e atribuição
-=
Subtração e atribuição
*=
Multiplicação e atribuição
%=
Módulo e atribuição
/=
Divisão e atribuição
<<=
Deslocamento para a esquerda bit a bit e atribuição
>>=
Deslocamento para a direita bit a bit e atribuição
>>>=
Deslocamento para a direita sem preenchimento e atribuição
^=
XOR bit a bit e atribuição
|=
OR bit a bit e atribuição
&=
AND bit a bit e atribuição
Usando operadores para manipular valores em expressões
45
Operadores ponto e de acesso de array
É possível usar o operador ponto (.) e o operador de acesso de array ([]) para acessar propriedades
de objeto internas ou personalizadas do ActionScript, incluindo as de um clipe de filme.
O operador ponto usa o nome de um objeto à sua esquerda e o nome de uma propriedade ou
variável à sua direita. O nome da propriedade ou variável não pode ser uma seqüência de
caracteres ou uma variável avaliada como uma seqüência de caracteres; ele deve ser um
identificador. Os exemplos a seguir usam o operador ponto:
year.month = "June";
year.month.day = 9;
O operador ponto e o operador de acesso de array executam a mesma função, só que o operador
ponto usa um identificador como sua propriedade, enquanto o operador de acesso de array avalia
seu conteúdo em relação a um nome e, em seguida, acessa o valor dessa propriedade nomeada.
Por exemplo, as expressões a seguir acessam a mesma variável velocity no clipe de filme rocket:
rocket.velocity;
rocket["velocity"];
Você pode usar o operador de acesso de array para definir e recuperar variáveis e nomes de
instância dinamicamente. Por exemplo, no código seguinte, a expressão dentro do operador [] é
avaliada, e o resultado da avaliação é usado como o nome da variável a ser recuperada do name do
clipe de filme:
name["mc" + i]
Você também pode usar a função eval(), conforme o exemplo a seguir:
eval("mc" + i)
Também é possível usar o operador de acesso de array à esquerda de um comando de atribuição.
Isso permite que você defina dinamicamente nomes de objeto, variáveis e instâncias, conforme
mostrado no exemplo seguinte:
name[index] = "Gary";
Crie arrays multidimensionais no ActionScript construindo um array cujos elementos também
são arrays. Para acessar elementos de um array multidimensional, você pode aninhar o operador
de acesso de array nele mesmo, como mostrado no seguinte exemplo:
var chessboard = new Array();
for (var i=0; i<8; i++) {
chessboard.push(new Array(8));
}
function getContentsOfSquare(row, column){
chessboard[row][column];
}
Você pode verificar operadores [] correspondentes em seus scripts; consulte “Verificando sintaxe e
pontuação” na página 63.
46
Capítulo 2: Conceitos básicos do ActionScript
Especificando o caminho de um objeto
Para usar uma ação para controlar um clipe de filme ou um arquivo SWF carregado, você deve
especificar seu nome e endereço, o que é chamado de caminho de destino.
No ActionScript, um clipe de filme é identificado por seu nome de instância. Por exemplo,
no comando seguinte, a propriedade _alpha do clipe de filme chamado star é definida com
visibilidade de 50%:
star._alpha = 50;
Para atribuir um nome de instância a um clipe de filme:
1 Selecione o clipe de filme no Stage.
2 Insira um nome de instância no inspetor Property.
Para identificar um arquivo SWF carregado:
• Use _levelX, onde X é o número do nível especificado na ação loadMovie() que carregou o
arquivo SWF.
Por exemplo, um SWF carregado no nível 5 possui o caminho de destino _level5. No
exemplo a seguir, um SWF é carregado no nível 5 e sua visibilidade é definida como false:
onClipEvent(load){
loadMovieNum("myMovie.swf", 5);
}
onClipEvent (enterFrame){
_level5._visible = false;
}
Para inserir o caminho de destino de um arquivo SWF:
• No painel Actions, em Window (Janela) >Development (Desenvolvimento) >Actions, clique
no botão Insert Target Path (Inserir caminho de destino) e selecione um clipe de filme na lista
exibida.
Para obter mais informações sobre caminhos de destino, consulte “Absolute and relative target
paths” (Caminhos de destino absolutos e relativos) em Usando a Ajuda do Flash.
Usando funções internas
Uma função é um bloco de código do ActionScript que pode ser reutilizado em qualquer lugar de
um arquivo SWF. Se você passar valores como parâmetros para uma função, a função operará com
esses valores. Uma função também pode retornar valores.
O Flash tem funções internas que permitem acessar certas informações e executar certas tarefas,
como obter o número de versão do Flash Player que hospeda o arquivo SWF (getVersion()).
As funções que pertencem a um objeto são denominadas métodos. As funções que não pertencem
a um objeto são denominadas funções de alto nível e são encontradas na categoria Functions
(Funções) do painel Actions.
Usando funções internas
47
Cada função tem suas próprias características e algumas exigem a passagem de determinados
valores. Se forem passados mais parâmetros do que o exigido pela função, os valores extras serão
ignorados. Se algum parâmetro obrigatório não for passado, o tipo de dado undefined será
atribuído aos parâmetros vazios, o que poderá gerar erros na exportação do script. Para chamar
uma função, ela deve estar em um quadro que já tenha sido reproduzido.
Para chamar uma função, basta usar o nome da função e passar os parâmetros necessários:
isNaN(someVar);
getTimer();
eval("someVar");
Para obter mais informações sobre cada função, consulte sua entrada em Capítulo 12, “Dicionário
do ActionScript”, na página 215.
Criando funções
Você pode definir funções para executar uma série de comandos sobre valores passados. Suas
funções também podem retornar valores. Depois que uma função for definida, ela poderá ser
chamada de qualquer Timeline, incluindo aquela de um arquivo SWF carregado.
Uma função bem escrita pode ser considerada uma “caixa-preta”. Se ela tiver comentários
cuidadosamente inseridos a respeito de sua entrada, saída e objetivo, um usuário da função não
precisará compreender exatamente como ela funciona internamente.
Definindo uma função
As funções, assim como as variáveis, são anexadas à Timeline do clipe de filme que as define, e
você deve usar um caminho de destino para chamá-las. Como ocorre com as variáveis, você pode
usar o identificador _global para declarar uma função global disponível a todas as Timelines sem
usar um caminho de destino. Para definir uma função global, preceda o nome da função com o
identificador _global, como no exemplo a seguir:
_global.myFunction = function (x) {
return (x*2)+3;
}
Para definir uma função de Timeline, use a ação function seguida do nome da função, dos
parâmetros a serem passados para a função e dos comandos do ActionScript que indicam o que a
função faz.
O exemplo a seguir é uma função denominada areaOfCircle com o parâmetro radius:
function areaOfCircle(radius) {
return Math.PI * radius * radius;
}
Também é possível definir uma função criando um literal de função — uma função sem nome
declarada em uma expressão e não em um comando. Você pode usar um literal de função para
definir uma função, retornar seu valor e atribuí-la a uma variável em uma expressão, como
mostrado no exemplo seguinte:
area = (function() {return Math.PI * radius *radius;})(5);
Quando uma função é redefinida, a nova definição substitui a antiga.
48
Capítulo 2: Conceitos básicos do ActionScript
Passando parâmetros para uma função
Os parâmetros são os elementos sobre os quais uma função executa seu código. (Neste manual,
os termos parâmetro e argumento são equivalentes.) Por exemplo, a seguinte função usa os
parâmetros initials e finalScore:
function fillOutScorecard(initials, finalScore) {
scorecard.display = initials;
scorecard.score = finalScore;
}
Quando a função é chamada, os parâmetros necessários devem ser passados para ela. A função
substitui os valores passados para os parâmetros na definição da função. Neste exemplo,
scorecard é o nome da instância de um clipe de filme; display e score são campos de texto
editáveis na instância. A chamada de função a seguir atribui o valor "JEB" à variável display e o
valor 45000 à variável score:
fillOutScorecard("JEB", 45000);
O parâmetro initials na função fillOutScorecard() é semelhante a uma variável local; ele
existe enquanto a função é chamada e desaparece quando a função é encerrada. Se forem omitidos
parâmetros durante uma chamada de função, os parâmetros omitidos serão passados como
undefined. Se uma chamada de função contiver parâmetros adicionais não exigidos pela
declaração da função, eles serão ignorados.
Usando variáveis em uma função
As variáveis locais são ferramentas valiosas para organizar códigos e facilitar sua compreensão.
Quando uma função usa variáveis locais, ela pode ocultar suas variáveis de todos os outros scripts
no arquivo SWF; os escopos das variáveis locais encontram-se no corpo da função e deixam de
existir quando a função é encerrada. Os parâmetros passados a uma função também são tratados
como variáveis locais.
Também é possível usar variáveis globais e comuns em uma função. Porém, se as variáveis globais
ou comuns forem modificadas, é recomendável usar comentários de script para documentar
essas modificações.
Retornando valores de uma função
Use a ação return para retornar valores de funções. A ação return interrompe a função e a
substitui pelo valor da ação return. Se o Flash não encontrar uma ação return antes do término
de uma função, uma seqüência de caracteres vazia será retornada. Por exemplo, a função a seguir
retorna o quadrado do parâmetro x:
function sqr(x) {
return x * x;
}
Algumas funções executam uma série de tarefas sem retornar um valor. Por exemplo, a função
seguinte inicializa uma série de variáveis globais:
function initialize() {
boat_x = _global.boat._x;
boat_y = _global.boat._y;
car_x = _global.car._x;
car_y = _global.car._y;
}
Criando funções
49
Chamando uma função definida pelo usuário
Você pode usar um caminho de destino para chamar uma função em qualquer Timeline a partir
de qualquer outra Timeline, inclusive daquela de um arquivo SWF carregado. Se uma função
tiver sido declarada por meio do identificador _global, não será preciso usar um caminho de
destino para chamá-la.
Para chamar uma função, digite o caminho de destino para o nome da função, se for preciso,
e passe os parâmetros necessários entre parênteses. Por exemplo, o comando a seguir chama a
função sqr() no clipe de filme MathLib na Timeline principal, passa para ela o parâmetro 3 e
armazena o resultado na variável temp:
var temp = _root.MathLib.sqr(3);
O exemplo a seguir usa um caminho absoluto para chamar a função initialize() que foi
definida na Timeline principal e não requer parâmetro algum:
_root.initialize();
O exemplo a seguir usa um caminho relativo para chamar a função list() definida no clipe de
filme functionsClip:
_parent.functionsClip.list(6);
50
Capítulo 2: Conceitos básicos do ActionScript
CAPÍTULO 3
Escrevendo e depurando scripts
No Macromedia Flash MX 2004 e no Macromedia Flash MX Professional 2004, você pode
escrever scripts que são incorporados ao arquivo FLA ou armazenados externamente no
computador. (Se escrever arquivos de classe do ActionScript 2, armazene cada classe como um
arquivo externo com o mesmo nome da classe.) Para escrever scripts incorporados, use o painel
Actions (Ações) e anexe a ação a um botão ou clipe de filme ou a um quadro na Timeline
(Linha de tempo) (consulte “Controlando o momento em que o ActionScript é executado”
na página 52). Para escrever arquivos de script externos, use qualquer editor de texto ou de
código. No Flash MX Professional, também é possível usar a janela Script interna. Para obter mais
informações, consulte “Usando o painel Actions e a janela Script” na página 54.
Ao usar o editor do ActionScript, você também pode verificar erros na sintaxe, formatar códigos
automaticamente e usar referências de código para ajudar a completar a sintaxe. Além disso,
o recurso de distribuição de pontuação faz com que os parênteses, chaves ou colchetes sejam
sempre inseridos em pares. Para obter mais informações, consulte “Usando o editor do
ActionScript” na página 57.
À medida que trabalha em um documento, teste-o diversas vezes para garantir a melhor
reprodução na forma desejada. Use o Bandwidth Profiler (Perfil de largura de banda) para simular
a aparência do documento em diferentes velocidades de conexão. Consulte “Testing document
download performance” (“Testando o desempenho de download de documentos”) em Usando a
Ajuda do Flash. Para testar os scripts, use uma versão de depuração especial do Flash Player que
ajuda a solucionar problemas. O uso de técnicas de criação corretas no ActionScript facilitará a
solução de problemas com os scripts quando algo inesperado ocorrer. Para obter mais
informações, consulte “Depurando scripts” na página 64.
51
Controlando o momento em que o ActionScript é executado
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
guia Help (Ajuda).
Ao escrever um script, use o painel Actions (Ações) para anexar o script a um quadro em uma
Timeline ou a um botão ou clipe de filme no Stage (Palco). Os scripts anexados a um quadro são
executados quando a reprodução entra no quadro. Porém, os scripts anexados ao primeiro quadro
de um arquivo SWF podem se comportar de forma diferente daqueles anexados aos quadros
subseqüentes, porque o primeiro quadro em um SWF é renderizado de forma incremental — os
objeto são desenhados no Stage à medida que o Flash Player faz o download — e isso pode afetar
a execução das ações. Todos os quadros subseqüentes são renderizados de uma vez, quando todos
os objeto do quadro estão disponíveis.
Os scripts anexados a clipes de filmes ou botões são executados quando ocorre um evento.
Um evento é uma ocorrência no SWF, como um movimento de mouse, um pressionamento de
tecla ou o carregamento de um clipe de filme. É possível usar o ActionScript para descobrir
quando ocorrem esses eventos e executar scripts específicos dependendo do evento. Para obter
mais informações, consulte Capítulo 4, “Manipulando eventos”, na página 79.
Para executar uma ação, dependendo da existência de uma condição, ou para repetir uma ação,
use os comandos if, else, else if, for, while, do while, for..in ou switch, que são
descritos rapidamente no restante desta seção.
Verificando uma condição
Os comandos que verificam se uma condição é true ou false começam com o termo if. Se a
condição existir, o ActionScript executará o comando seguinte. Se a condição não existir, o
ActionScript passará para o próximo comando fora do bloco de código.
Para otimizar o desempenho do código, verifique as condições mais prováveis primeiro.
Os comandos seguintes testam três condições. O termo else if especifica testes alternativos que
poderão ser executados se as condições anteriores forem falsas.
if (password == null || email == null) {
gotoAndStop("reject");
} else if (password == userID){
gotoAndPlay("startMovie");
}
Para verificar uma dentre diversas condições, use o comando switch em vez de vários comandos
else if.
Repetindo uma ação
O ActionScript pode repetir uma ação um número especificado de vezes ou enquanto uma
condição específica existir. Use as ações while, do..while, for e for..in para criar repetições.
Para repetir uma ação enquanto uma condição existir:
• Use o comando while.
Uma repetição while avalia uma expressão e executa o código no corpo da repetição se a expressão
for true. Depois que cada comando do corpo for executado, a expressão será avaliada novamente.
No exemplo seguinte, a repetição é executada quatro vezes:
52
Capítulo 3: Escrevendo e depurando scripts
i = 4;
while (var i > 0) {
my_mc.duplicateMovieClip("newMC" + i, i );
i--;
}
Você pode usar o comando do...while para criar uma repetição do mesmo tipo de while.
Em uma repetição do...while, a expressão é avaliada na parte inferior do bloco de código para
que a repetição seja sempre executada pelo menos uma vez, como no exemplo a seguir:
i = 4;
do {
my_mc.duplicateMovieClip("newMC" +i, i );
i--;
} while (var i > 0);
Para repetir uma ação usando um contador interno:
• Use o comando for.
A maioria das repetições usa algum tipo de contador para controlar o número de execuções. Cada
execução de uma repetição é denominada iteração. Você pode declarar uma variável e escrever um
comando que aumente ou diminua a variável sempre que a repetição for executada. Na ação for, o
contador e o comando que aumenta a contagem fazem parte da ação. No exemplo a seguir, a primeira
expressão (var i = 4) é a expressão inicial que é avaliada antes da primeira iteração. A segunda
expressão ( i > 0) é a condição que é verificada sempre antes da execução da repetição. A terceira
expressão (i--) é denominada expressão final e é avaliada sempre após a execução da repetição.
for (var i = 4; i > 0; i--){
myMC.duplicateMovieClip("newMC" + i, i + 10);
}
Para criar uma repetição nos filhos de um clipe de filme ou objeto:
• Use o comando for..in.
Os filhos são outros clipes de filme, funções, objeto e variáveis. O exemplo a seguir usa o
comando trace para imprimir seus resultados no painel Output (Saída):
myObject = { name:'Joe', age:25, city:'San Francisco' };
for (propertyName in myObject) {
trace("myObject has the property: " + propertyName + ", with the value: " +
myObject[propertyName]);
}
Esse exemplo produz os seguintes resultados no painel Output:
myObject has the property: name, with the value: Joe
myObject has the property: age, with the value: 25
myObject has the property: city, with the value: San Francisco
O script pode iterar em um determinado tipo de filho; por exemplo, apenas em filhos de clipes de
filme. Isso pode ser feito usando for...in com o operador typeof.
for (name in myMovieClip) {
if (typeof (myMovieClip[name]) == "movieclip") {
trace("I have a movie clip child named " + name);
}
}
Para obter mais informações sobre cada ação, consulte entradas individuais em Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Controlando o momento em que o ActionScript é executado
53
Usando o painel Actions e a janela Script
Para obter as informações mais recentes sobre este tópico, clique no botão Update na parte
superior da guia Help.
Você pode incorporar scripts Flash ao arquivo FLA ou armazená-los como arquivos externos.
É recomendável armazenar o máximo possível do código do ActionScript em arquivos externos.
Isso facilita a reutilização do código em vários arquivos FLA. Depois, no arquivo FLA, crie um
script que use comandos #include para acessar o código armazenado externamente. Use o sufixo
.as para identificar os scripts como arquivos do ActionScript (AS). (Se escrever arquivos de classe
personalizados, armazene-os como arquivos AS externos.)
Observação: O código do ActionScript em arquivos externos é compilado em um arquivo SWF
quando você publica, exporta, testa ou depura um arquivo FLA. Assim, se você alterar um arquivo
externo, salve-o e recompile os arquivos FLA que o utilizam.
Ao incorporar o código do ActionScript ao arquivo FLA, você pode anexar código a quadros e
objeto. Tente anexar ActionScript incorporado ao primeiro quadro da Timeline sempre que
possível. Dessa forma, não será preciso pesquisar em um arquivo FLA para localizar todo o
código; ele estará centralizado em um local. Crie uma camada chamada “Actions” e coloque seu
código ali. Assim, mesmo se você colocar código em outros quadros ou anexá-lo a objeto,
precisará procurar em apenas uma camada para encontrá-lo.
Para criar scripts que façam parte do documento, insira o ActionScript diretamente no painel
Actions. Para criar scripts externos, use seu editor de texto preferido ou, no Flash MX
Professional, use a janela Script. Ao usar o painel Actions ou a janela Script, você usa o mesmo
editor do ActionScript e digita o código no painel Script do lado direito do painel ou da janela.
Para reduzir a digitação a ser feita, também é possível selecionar ou arrastar ações da caixa de
ferramentas Actions para o painel Script.
Para exibir o painel Actions, siga um destes procedimentos:
• Selecione Window (Janela) > Development Panels (Painéis de desenvolvimento) > Actions.
• Pressione F9.
(Somente Flash Professional) Para exibir a janela Script, siga um destes procedimentos:
• Para começar a escrever um novo script, selecione File (Arquivo) > New (Novo) > ActionScript
File (Arquivo do ActionScript).
• Para abrir um script existente, selecione File > Open (Abrir) e abra um arquivo AS.
• Para editar um script já aberto, clique na guia do documento que exibe o nome do script.
(Guias de documento só são suportadas no Windows.)
Se não centralizar todo o código de um arquivo FLA em um local, você poderá prender (travar no
lugar) vários scripts no painel Actions para facilitar a passagem por eles. Na figura a seguir, o script
associado ao local atual na Timeline está no Frame 1 da camada denominada Cleanup (Limpeza).
(A guia na extremidade esquerda sempre segue sua localização na Timeline.) Esse script também
está preso (ele é mostrado na guia mais à direita). Dois outros scripts estão presos: um no Frame 1
e o outro no Frame 15 da camada Intro (Introdução). Para mover-se pelos scripts presos, clique
nas guias. Mover-se por scripts presos não altera sua posição atual na Timeline.
54
Capítulo 3: Escrevendo e depurando scripts
Para prender um script:
1 Posicione o ponteiro na Timeline para que o script apareça em uma guia na parte inferior
esquerda do painel Script no painel Actions.
2 Siga um destes procedimentos:
■ Clique no ícone de tachinha à direita da guia. (Se a tachinha for parecida com o ícone à
direita na figura a seguir, o script já estará preso; clicar no ícone o desprenderá.)
■ Clique com o botão direito do mouse (Windows) ou, pressionando Control, clique
(Macintosh) na guia e selecione Pin Script (Prender script).
■ Selecione Pin Script no menu pop-up Options (Opções) no canto superior direito
do painel.
Para desprender (fechar) um ou mais scripts:
• Siga um destes procedimentos:
■
■
■
Se um script preso aparecer em uma guia na parte inferior esquerda do painel Script no
painel Actions, clique no ícone de tachinha à direita da guia. (Se a tachinha for parecida com
o ícone à esquerda na figura a seguir, o script já estará solto; clicar no ícone o prenderá.)
Clique com o botão direito (Windows) ou, pressionando Control, clique (Macintosh) em
uma guia e selecione Close Script (Fechar script) ou Close All Scripts (Fechar todos os
scripts).
Selecione Close Script ou Close All Scripts no menu pop-up Options no canto superior
direito do painel.
O ambiente do editor do ActionScript consiste em duas seções. A seção à direita é o painel Script,
a área onde você digita o código. A seção à esquerda é uma caixa de ferramentas Actions que
contém uma entrada para cada elemento de linguagem do ActionScript.
Usando o painel Actions e a janela Script
55
No painel Actions do Flash Professional, a caixa de ferramentas Actions também contém um
navegador Script, que é uma representação visual da estrutura do arquivo FLA: você pode navegar
pelo arquivo FLA aqui para localizar código ActionScript. Se você clicar em um item no
navegador Script, o script associado a esse item aparecerá no painel Script, e a reprodução se
moverá para essa posição na Timeline.
Ações
(somente Flash Professional)
caixa de ferramentas Navegador Script*
pop-up
Menu*
* Somente painel Actions
Existem também vários botões acima do painel Script:
Add item to
script (Adicionar
item a script)
Insert target path (Inserir
Reference (Referência)
caminho de destino)*
Check Syntax (Verificar sintaxe)
Debug Options
(Opções de depuração)*
Find
Show Code Hint (Mostrar
(Localizar)
referência de código)
Menu pop-up View
Auto Format
Replace
Options (Opções
(Formatação
(Substituir)
de exibição)
automática)
* Somente painel Actions
Você pode editar ações, digitar parâmetros para ações ou excluir ações diretamente no painel
Script. Pode também usar a caixa de ferramentas Actions e o botão Add (+) (Adicionar) para
adicionar ações ao painel Script. (Para obter mais informações sobre como usar a caixa de
ferramentas Actions, consulte “Usando a caixa de ferramentas Actions” na página 61.)
56
Capítulo 3: Escrevendo e depurando scripts
Usando o editor do ActionScript
O Flash MX 2004 e o Flash MX Professional 2004 fornecem várias ferramentas para ajudar você
a escrever códigos sintaticamente corretos e permitem definir preferências de formatação de
código e outras opções. Esses recursos são analisados nesta seção.
Realce de sintaxe
No ActionScript, assim como em qualquer linguagem, a sintaxe é a maneira como os elementos
são reunidos para terem significado. Se for usada uma sintaxe incorreta do ActionScript, os scripts
não funcionarão.
Quando você escreve scripts no Flash MX 2004 e no Flash MX Professional 2004, os comandos
não suportados pela versão do exibidor especificado aparecerão em amarelo na caixa de
ferramentas Actions. Por exemplo, se a versão do SWF do Flash Player estiver definida como Flash
6, o ActionScript que só tem suporte do Flash Player 7 aparecerá em amarelo na caixa de
ferramentas Actions. Para obter informações sobre como definir a versão de SWF do Flash Player,
consulte “Setting publish options for the Flash SWF file format” (Definindo opções de publicação
para o formato de arquivo Flash SWF) em Usando a Ajuda do Flash.
Também é possível definir uma preferência para que o Flash colora partes dos scripts enquanto
você os escreve para destacar erros de digitação. Por exemplo, imagine que você definiu a
preferência de sinalização da sintaxe por cores para que as palavras-chave apareçam em verdeescuro. Ao criar o código, se você digitar var, a palavra var aparecerá em verde. Entretanto, se,
por engano, você digitar vae, a palavra vae continuará em preto, fornecendo uma dica imediata
de que houve um erro de digitação.
Para definir preferências de sinalização de sintaxe por cores enquanto digita, siga um
destes procedimentos:
• Selecione Edit (Editar) > Preferences (Preferências) e especifique as configurações Syntax
coloring (Sinalização de syntaxe por cores) na guia ActionScript.
• No painel Actions, selecione Preferences no menu pop-up Options, no canto superior direito
do painel, e especifique as configurações Syntax coloring na guia ActionScript.
Escrevendo código para ativar referências de código
Quando você trabalha no editor do ActionScript (no painel Actions ou na janela Script), o Flash
pode detectar qual ação é digitada e exibir uma referência de código — uma dica de ferramenta que
contém a sintaxe completa para essa ação ou um menu pop-up que lista nomes de método ou
propriedade possíveis. As referências de código aparecem para parâmetros, propriedades e eventos
quando você atribui um tipo estritamente aos seus objeto ou os nomeia para que o editor do
ActionScript saiba quais referências de código exibir, conforme analisado no restante desta seção.
Para obter informações sobre como usar referências de código quando elas aparecerem, consulte
“Usando referências de código” na página 60.
Observação: A referência de código é ativada automaticamente para classes nativas que não
exigem a criação e a nomeação de um objeto da classe, como Math, Key, Mouse etc.
Usando o editor do ActionScript
57
Atribuindo tipo a objeto estritamente para ativar referências de código
Com o ActionScript 2, você pode atribuir um tipo estritamente a uma variável que se baseia em
uma classe interna, como Button, Array etc. Se você fizer isso, o editor do ActionScript exibirá
referências de código para a variável. Por exemplo, imagine que você tenha digitado o seguinte:
var names:Array = new Array();
names.
Logo que você digita o ponto (.), o Flash exibe uma lista de métodos e propriedades disponíveis
para objeto Array, porque você atribui o tipo array à variável. Para obter mais informações sobre
como atribuir tipos de dados, consulte “Atribuição estrita de tipos de dados” na página 35. Para
obter informações sobre como usar referências de código quando elas aparecerem, consulte
“Usando referências de código” na página 60.
Usando sufixos para ativar referências de código
Se usar o ActionScript 1 ou se desejar exibir referências de código para objeto criados por você
sem atribuir um tipo estritamente a eles (consulte “Atribuindo tipo a objeto estritamente para
ativar referências de código” na página 58), adicione um sufixo especial ao nome de cada objeto
ao criá-lo. Por exemplo, os sufixos que ativam referências de código para a classe Array e a classe
Camera são, respectivamente, _array e _cam. Se você digitar o seguinte código:
var my_array = new Array();
var my_cam = Camera.get();
e depois digitar uma das opções a seguir (o nome da variável seguido por um ponto), as referências
de código para o objeto Array e Camera, respectivamente, aparecerão.
my_array.
my_cam.
Para objeto que aparecem no Stage, use o sufixo na caixa de texto Instance Name (Nome de
instância) no inspetor Property (Propriedades). Por exemplo, para exibir referências de código de
objeto MovieClip, use o inspetor Property para atribuir nomes de instância com o sufixo _mc a
todos os objeto MovieClip. Assim, sempre que você digitar o nome da instância seguido por um
ponto, as referências de código aparecerão.
Embora não sejam necessários sufixos para ativar referências de código quando você atribui um
tipo estritamente a um objeto, usá-los de forma consistente ajuda a entender os scripts.
A tabela abaixo lista os sufixos necessários para o suporte a referências de código automáticas.
58
Tipo de objeto
Sufixo da variável
Array
_array
Button
_btn
Camera
_cam
Cor
_color
ContextMenu
_cm
ContextMenuItem
_cmi
Date
_date
Error
_err
Capítulo 3: Escrevendo e depurando scripts
Tipo de objeto
Sufixo da variável
LoadVars
_lv
LocalConnection
_lc
Microphone
_mic
MovieClip
_mc
MovieClipLoader
_mcl
PrintJob
_pj
NetConnection
_nc
NetStream
_ns
SharedObject
_so
Sound
_sound
String
_str
TextField
_txt
TextFormat
_fmt
Video
_video
XML
_xml
XMLNode
_xmlnode
XMLSocket
_xmlsocket
Para obter informações sobre como usar referências de código quando elas aparecerem, consulte
“Usando referências de código” na página 60.
Usando comentários para ativar referências de código
Também é possível usar os comentários do ActionScript a fim de especificar a classe de um objeto
para referências de código. O exemplo a seguir informa ao ActionScript que a classe da instância
theObject é Object, e assim por diante. Se você digitasse mc seguido por um ponto após esses
comentários, uma referência de código exibiria a lista de métodos e propriedades de MovieClip;
se você digitasse theArray seguido por um ponto, uma referência de código exibiria uma lista de
métodos e propriedades de Array, e assim por diante.
// Object theObject;
// Array theArray;
// MovieClip mc;
Entretanto, a Macromedia recomenda usar a atribuição de tipo de dados estrita (consulte
“Atribuindo tipo a objeto estritamente para ativar referências de código” na página 58) ou sufixos
(consulte “Usando sufixos para ativar referências de código” na página 58) em vez dessa técnica,
porque eles ativam automaticamente a referência de códigos e tornam o código mais
compreensível.
Usando o editor do ActionScript
59
Usando referências de código
As referências de código são ativadas por padrão. Ao definir preferências, é possível desativar as
referências de código ou determinar a rapidez com que elas são exibidas. Quando as referências de
código estão desativadas nas preferências, ainda é possível exibir uma referência de código para um
comando específico.
Para especificar configurações de referências de código automáticas, siga um destes
procedimentos:
• Selecione Edit > Preferences e ative ou desative Code Hints (Referências de código) na guia
•
ActionScript.
No painel Actions, selecione Preferences no menu pop-up Options, no canto superior direito
do painel, e ative ou desative Code Hints na guia ActionScript.
Se você ativar as referências de código, poderá também especificar um atraso, em segundos, antes
que elas apareçam. Por exemplo, se você não estiver familiarizado com o ActionScript, talvez
prefira não usar atrasos, para que as referências de código sempre apareçam imediatamente.
No entanto, se você geralmente souber o que quer digitar e só precisar das referências de código ao
usar elementos de linguagem desconhecidos, poderá especificar um atraso para que as referências
não apareçam quando não desejar usá-las.
Para trabalhar com referências de código no estilo de dica de ferramenta:
1 Para exibir a referência de código, digite um parêntese de abertura [(] após um elemento que
exija parênteses, como o nome de um método, um comando, como if ou do while, etc.
A referência de código será exibida.
Observação: Se uma referência de código não aparecer, certifique-se de não ter desativado as
referências na guia ActionScript. Para exibir referências de código para uma variável ou objeto
criado por você, verifique se você nomeou a variável ou o objeto corretamente (consulte “Usando
sufixos para ativar referências de código” na página 58) ou se atribuiu um tipo estritamente à
variável ou ao objeto (consulte “Atribuindo tipo a objeto estritamente para ativar referências de
código” na página 58).
2 Digite um valor para o parâmetro. Se houver mais de um parâmetro, separe os valores
por vírgulas.
Os comandos superpostos como gotoAndPlay() ou for (ou seja, funções ou métodos que
possam ser chamados com conjuntos diferentes de parâmetros) exibem um indicador que
permite selecionar o parâmetro a ser definido. Clique nos pequenos botões de seta ou pressione
Control+seta para a esquerda e Control+seta para a direita para selecionar o parâmetro.
3 Para desconsiderar a referência de código, siga um destes procedimentos:
■
■
■
60
Digite um parênteses de fechamento [)].
Clique fora do comando.
Pressione Escape.
Capítulo 3: Escrevendo e depurando scripts
Para trabalhar com referências de código no estilo de menu:
1 Para exibir a referência de código, digite um ponto após o nome da variável ou objeto.
O menu da referências de código é exibido.
Observação: Se uma referência de código não aparecer, certifique-se de não ter desativado as
referências na guia ActionScript. Para exibir referências de código para uma variável ou objeto
criado por você, verifique se você nomeou a variável ou o objeto corretamente (consulte “Usando
sufixos para ativar referências de código” na página 58) ou se atribuiu um tipo estritamente à
variável ou ao objeto (consulte “Atribuindo tipo a objeto estritamente para ativar referências de
código” na página 58).
2 Para navegar pelas referências de código, use as teclas de seta para cima e seta para baixo.
3 Para selecionar um item no menu, pressione Return ou Tab, ou clique duas vezes no item.
4 Para desconsiderar a referência de código, siga um destes procedimentos:
■
■
■
■
Selecione um dos itens de menu.
Clique fora do comando.
Digite um parênteses de fechamento [)] caso já tenha digitado um parênteses de abertura.
Pressione Escape.
Para exibir manualmente uma referência de código:
1 Clique em um local do código onde as referências de código possam aparecer. Veja a seguir
alguns exemplos:
■ Após o ponto que segue um comando ou uma instrução, onde uma propriedade ou método
deve ser digitado
■ Entre parênteses em um nome de método
2 Siga um destes procedimentos:
■ Clique no botão Show Code Hint (Mostrar referência de código) acima do painel Script.
■ Pressione Control+barra de espaços.
■ Se estiver trabalhando no painel Actions, abra o menu pop-up, no lado direito da barra de
título, e selecione Show Code Hint.
Usando a caixa de ferramentas Actions
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Usando o editor do ActionScript
61
Usando teclas de atalho de Escape
Você pode adicionar muitos elementos a um script usando teclas de atalho — pressionando a tecla
Escape e, em seguida, duas outras teclas. (Esses atalhos são diferentes dos atalhos de teclado que
iniciam certos comandos de menu.) Por exemplo, se estiver trabalhando no painel Script e digitar
Escape+d+o, o código a seguir será colocado no script, e o ponto de inserção será colocado
imediatamente após a palavra while, para que você comece a digitar sua condição:
do {
} while ();
Da mesma forma, se você digitar Escape+c+h, o código a seguir será colocado no script, e o ponto
de inserção será colocado entre os parênteses, para que seja possível começar a digitar a condição:
catch () {
}
Para aprender (ou ser lembrado) quais comandos têm teclas de atalho de Escape, exiba-os ao lado
de elementos do painel Actions:
Para exibir ou ocultar teclas de atalho de Escape:
• No menu pop-up View Options (Opções de exibição), ative ou desative View Escape Shortcut
Keys (Exibir teclas de atalho de Escape).
62
Capítulo 3: Escrevendo e depurando scripts
Verificando sintaxe e pontuação
Para determinar com cuidado se o código escrito tem o desempenho planejado, publique ou teste
o arquivo. Entretanto, você pode verificar rapidamente o código do ActionScript sem sair do
arquivo FLA. Os erros de sintaxe serão listados no painel Output. (Quando você verifica a sintaxe,
somente o script atual é verificado; outros scripts que podem estar no arquivo FLA não são
verificados.) Você também pode verificar se um conjunto de parênteses, chaves ou colchetes
(operadores de acesso de array) em torno de um bloco de código está equilibrado.
Para verificar a sintaxe, siga um destes procedimentos:
• Clique no botão Check Syntax acima do painel Script.
• No painel Actions, exiba o menu pop-up, no canto superior direito do painel, e selecione
Check Syntax.
• Pressione Control+T (Windows) ou Command+T (Macintosh).
Para verificar o equilíbrio da pontuação:
1 Clique entre chaves {}, operadores de acesso de array [] ou parênteses () no script.
2 Pressione Control+' (Windows) ou Command+' (Macintosh) para realçar o texto entre chaves,
colchetes ou parênteses.
O realce ajuda a verificar se a pontuação de abertura possui a pontuação de fechamento
correspondente correta.
Formatando código
Você pode especificar configurações para determinar se o código será formatado e recuado
automática ou manualmente. Pode também escolher se prefere exibir o número de linhas e se
deseja quebrar as linhas longas de código.
Para definir opções de formato:
1 No painel Actions, selecione Auto Format Options (Opções de formatação automática) no
menu pop-up Options, no canto superior direito do painel.
A caixa de diálogo Auto Format Options será exibida.
2 Selecione uma das caixas de seleção. Para verificar o efeito de cada seleção, observe o painel
Preview (Visualizar).
Depois de definir Auto Format Options, as configurações serão aplicadas automaticamente ao
código que você escrever, mas não ao código existente. Aplique as configurações ao código
existente manualmente. Use esse procedimento para formatar código que foi formatado com
configurações diferentes, importado de outro editor etc.
Para formatar código de acordo com as configurações de Auto Format Options, siga um
destes procedimentos:
• Clique no botão Auto Format acima do painel Script.
• Selecione Auto Format no menu pop-up do painel Actions.
• Pressione Control+Shift+F (Windows) ou Command+Shift+F (Macintosh).
Usando o editor do ActionScript
63
Para usar o recuo automático:
• O recuo automático é ativado por padrão. Para desativá-lo, desmarque a opção Automatic
Indentation (Recuo automático) nas preferências do ActionScript.
Quando o recuo automático estiver ativado, o texto digitado após ( ou { será recuado
automaticamente conforme a configuração Tab Size (Tamanho da tabulação) nas preferências
do ActionScript. Para recuar outra linha, selecione-a e pressione Tab. Para remover o recuo,
pressione Shift+Tab.
Para ativar ou desativar números de linha e quebra automática de linha:
• No menu pop-up View Options, ative ou desative View Line Numbers (Exibir números de
linha) e Word Wrap (Quebra automática de linha).
Depurando scripts
O Flash fornece diversas ferramentas para testar o ActionScript nos arquivos SWF. O Debugger
(Depurador), analisado no restante desta seção, permite localizar erros em um SWF quando ele é
executado no Flash Player. O Flash também fornece as seguintes ferramentas de depuração
adicionais:
• O painel Output, que exibe mensagens de erro e listas de variáveis e objeto (consulte “Usando
o painel Output” na página 73)
• O comando trace, que envia observações de programação e valores de expressão para o painel
Output (consulte “Usando o comando trace” na página 75)
• Os comandos throw e try..catch..finally, que permitem testar e responder a erros
•
durante a execução a partir do script
A disponibilidade de mensagens de erro durante a execução e de compilador abrangentes, que
permitem diagnosticar e solucionar problemas mais facilmente (consulte Apêndice A,
“Mensagens de erro”, na página 851)
O Debugger mostra uma lista hierárquica de clipes de filme carregados atualmente no Flash
Player. Com o Debugger, você pode exibir e modificar os valores de variáveis e propriedades
durante a reprodução do SWF, e pode usar pontos de interrupção para interromper o SWF e
executar uma depuração direta do código do ActionScript linha por linha.
Use o Debugger no modo de teste com arquivos locais ou para testar arquivos em um servidor
Web em local remoto. O Debugger permite definir pontos de interrupção no ActionScript para
interromper o Flash Player e executar a depuração direta do código durante a sua execução.
Depois, você pode voltar para os scripts e editá-los para que produzam os resultados corretos.
Uma vez ativada, a barra de status do Debugger exibe o URL ou o caminho local do arquivo,
informa se o arquivo está sendo executado no modo de teste ou a partir de um local remoto,
e mostra uma lista de exibição dinâmica do clipe de filme. Quando os clipes de filme são
adicionados ou removidos do arquivo, a lista de exibição reflete as alterações imediatamente.
É possível redimensionar a lista de exibição movendo o divisor horizontal.
64
Capítulo 3: Escrevendo e depurando scripts
Para ativar o Debugger no modo de teste:
• Selecione Control (Controle) > Debug Movie (Depurar filme).
O Debugger é aberto. O arquivo SWF também é aberto no modo de teste.
Barra de status
Lista de
exibição
Lista de observação
Visualização de código
Depurando um filme a partir de um local remoto
É possível depurar um arquivo SWF remoto usando as versões independentes, ActiveX ou plug-in
do Flash Player. Durante a exportação de um filme, é possível ativar a depuração e criar uma senha
para depuração. Se você não ativar a depuração, o Debugger não será ativado.
Para garantir que somente usuários confiáveis possam executar SWFs no Flash Debug Player,
publique-os com uma senha para depuração. Assim como o JavaScript ou HTML, o ActionScript
permite que o usuário visualize as variáveis da parte cliente. Para armazenar variáveis de maneira
segura, você deve enviá-las a um aplicativo no servidor, em vez de armazená-las no arquivo.
Entretanto, como desenvolvedor do Flash, você pode ter outros segredos comerciais, como
estruturas de clipes de filmes, que não deseja revelar. Use a senha de depuração para proteger seu
trabalho.
Durante a exportação, publicação ou teste de um filme, o Flash cria um arquivo SWD com as
informações de depuração. Para executar uma depuração remota, coloque o arquivo SWD na
mesma pasta do arquivo SWF no servidor.
Observação: Só é possível depurar remotamente SWFs que foram criados com a versão da
ferramenta de criação que você usou. Por exemplo, se estiver usando o Flash MX 2004, você só
poderá depurar remotamente SWFs publicados para Flash Player 7.
Depurando scripts
65
Para ativar a depuração remota de um filme do Flash:
1 Selecione File > Publish Settings (Configurações de publicação).
2 Na guia Flash da caixa de diálogo Publish Settings, selecione Debugging permitted
(Depuração permitida).
3 Para definir uma senha, digite-a na caixa Password (Senha).
Depois de definida a senha, ninguém poderá fazer download de informações para o Debugger
sem ela. No entanto, se o campo Password for deixado em branco, a senha não será solicitada.
4 Feche a caixa de diálogo Publish Settings e selecione um dos seguintes comandos:
■ Control > Debug Movie
■ File > Export Movie (Exportar filme)
■ File > Publish Settings > Publish
O Flash cria um arquivo de depuração com a extensão .swd e o salva junto com o arquivo SWF.
O arquivo SWD contém informações que permitem usar os pontos de interrupção para a
depuração direta do código.
5 Coloque o arquivo SWD no mesmo diretório do arquivo SWF no servidor.
Mesmo que o arquivo SWD não esteja no mesmo diretório do arquivo SWF, você poderá
executar uma depuração remota. No entanto, o Debugger ignorará os pontos de interrupção e
não permitirá a depuração direta do código.
6 No Flash, selecione Window > Development Panels > Debugger.
■ No Debugger, selecione Enable Remote Debugging (Ativar a depuração remota) no menu
pop-up Options, no canto superior direito do painel.
66
Capítulo 3: Escrevendo e depurando scripts
Para ativar o Debugger a partir de um local remoto:
1 Abra o aplicativo de criação Flash.
2 Em um navegador ou no exibidor independente, abra o arquivo SWF publicado a partir do
local remoto.
A caixa de diálogo Remote Debug (Depuração remota) é exibida.
Se essa caixa de diálogo não for exibida, significa que o Flash não pôde encontrar o arquivo
SWD. Nesse caso, clique com o botão direito do mouse (Windows) ou, pressionando Control,
clique (Macintosh) no SWF para exibir o menu de contexto e selecione Debugger.
3 Na caixa de diálogo Remote Debug (Depuração remota), selecione Localhost (Host local) ou
Other Machine (Outra máquina):
■ Selecione Localhost se o Debug Player e o aplicativo de criação Flash estiverem no mesmo
computador.
■ Selecione Other Machine se o Debug Player e o aplicativo de criação Flash não estiverem no
mesmo computador. Digite o endereço IP do computador que executa o aplicativo de
criação Flash.
4 Quando a conexão for estabelecida, a senha será solicitada. Digite a senha para depuração se já
houver uma definida.
A lista de exibição do arquivo SWF aparece no Debugger.
Depurando scripts
67
Exibindo e modificando variáveis
No Debugger, a guia Variables exibe os nomes e os valores das variáveis globais e da Timeline no
arquivo SWF. Se você alterar o valor de uma variável na guia Variables, poderá ver a alteração
refletida no SWF durante sua execução. Por exemplo, para testar a detecção de colisão em um
jogo, você pode inserir o valor da variável para posicionar uma bola no local correto próximo a
uma parede.
No Debugger, a guia Locals (Locais) exibe os nomes e os valores das variáveis locais disponíveis,
quer o SWF tenha parado em um ponto de interrupção ou em qualquer outro local dentro de
uma função definida pelo usuário.
Para exibir uma variável:
1 Selecione o clipe de filme que contém a variável na lista de exibição.
Para exibir variáveis globais, selecione o clipe _global na lista de exibição.
2 Clique na guia Variables (Variáveis).
A lista de exibição é atualizada automaticamente enquanto o SWF é reproduzido. Se um clipe de
filme for removido do SWF em um quadro específico, esse clipe será removido da lista de exibição
do Debugger juntamente com sua variável e o nome da variável. Entretanto, se você marcar uma
variável para a lista de observação (consulte “Usando a lista de observação” na página 69), ela não
será removida.
Para modificar o valor de uma variável:
• Clique duas vezes no valor e insira um novo.
O valor não pode ser uma expressão. Por exemplo, use "Hello", 3523 ou "http://
mas não use x + 2 ou eval("name:" +i). O valor pode ser uma
seqüência de caracteres (qualquer valor entre aspas – ""), um número ou um valor booleano
(true ou false).
www.macromedia.com",
Observação: Para escrever o valor de uma expressão para o painel Output no modo de teste, use o
comando trace. Consulte “Usando o comando trace” na página 75.
68
Capítulo 3: Escrevendo e depurando scripts
Usando a lista de observação
Para monitorar um conjunto de variáveis críticas de forma organizada, você pode marcá-las para
serem exibidas na lista de observação. Essa lista exibe o caminho absoluto para a variável e o valor.
Também é possível inserir um novo valor de variável na lista de observação da mesma maneira que
na guia Variables.
Se uma variável local for inserida na lista de observação, seu valor aparecerá apenas quando o Flash
Player for parado em uma linha do ActionScript com o escopo dessa variável. Todas as demais
variáveis aparecem durante a reprodução do SWF. Se o Debugger não encontrar o valor da
variável, ele será listado como Undefined (Indefinido).
A lista de observação exibe apenas as variáveis e não as propriedades ou funções.
Variáveis marcadas para a lista de observação e variáveis na lista de observação
Para adicionar variáveis à lista de observação, escolha uma desta opções:
• Na guia Variables ou Locals, clique com o botão direito do mouse (Windows) ou,
•
pressionando Control, clique (Macintosh) em uma variável selecionada e escolha Watch
(Observação) no menu de contexto. É exibido um ponto azul próximo à variável.
Na guia Watch, clique com o botão direito do mouse (Windows) ou, pressionando Control,
clique (Macintosh) e selecione Add no menu de contexto. Digite o caminho de destino para o
nome da variável e o valor nos campos.
Para remover variáveis da lista de observação:
• Na guia Watch, clique com o botão direito do mouse (Windows) ou, pressionando Control,
clique (Macintosh) e selecione Remove no menu de contexto.
Depurando scripts
69
Exibindo propriedades do clipe de filme e alterando propriedades editáveis
No Debugger, a guia Properties exibe todos os valores de propriedades de qualquer clipe de filme
no Stage. É possível alterar um valor e ver o efeito no arquivo SWF durante sua reprodução.
Algumas propriedades de clipe de filme são somente leitura e não podem ser alteradas.
Para exibir as propriedades de um clipe de filme no Debugger:
1 Selecione um clipe de filme na lista de exibição.
2 No Debugger, clique na guia Properties.
Para modificar o valor de uma propriedade:
• Clique duas vezes no valor e insira um novo.
O valor não pode ser uma expressão. Por exemplo, insira 50 ou "clearwater", mas não x + 50.
O valor pode ser uma seqüência de caracteres (qualquer valor entre aspas), um número ou um
valor booleano (true ou false). Não é possível digitar valores de objeto ou array (por exemplo,
{id: "rogue"} ou [1, 2, 3]) no Debugger.
Para obter mais informações, consulte “Operadores de seqüência de caracteres” na página 43 e
“Usando operadores para manipular valores em expressões” na página 41.
Observação: Para escrever o valor de uma expressão para o painel Output no modo de teste, use o
comando trace. Consulte “Usando o comando trace” na página 75.
70
Capítulo 3: Escrevendo e depurando scripts
Definindo e removendo pontos de interrupção
Um ponto de interrupção permite interromper um arquivo SWF em execução no Flash Player em
uma linha específica do ActionScript. Use os pontos de interrupção para testar os possíveis itens
problemáticos do código. Por exemplo, se você tiver escrito um conjunto de comandos if..else
if e não conseguir determinar qual deles está em execução, adicione um ponto de interrupção
antes dos comandos e execute uma depuração direta de cada um no Debugger.
Você pode definir os pontos de interrupção no painel Actions ou no Debugger. (Para definir
pontos de interrupção em scripts externos, use o Debugger.) Os pontos de interrupção definidos
no painel Actions são salvos com o documento do Flash (arquivo FLA). Os pontos de interrupção
definidos no Debugger não são salvos no arquivo FLA e são válidos somente para a sessão atual de
depuração.
Para definir ou remover um ponto de interrupção no painel Actions, siga um destes
procedimentos:
• Clique na margem esquerda. Um ponto vermelho indica um ponto de interrupção.
• Clique no botão Debug options (Opções de depuração) acima do painel Script.
• Clique com o botão direito do mouse (Windows) ou, pressionando Control, clique
•
(Macintosh) para exibir o menu de contexto e selecione Breakpoint, Remove Breakpoint ou
Remove All Breakpoints.
Pressione Control+Shift+B (Windows) ou Command+Shift+B (Macintosh).
Observação: Em versões anteriores do Flash, um clique na margem esquerda do painel Script
selecionava a linha de código; agora essa ação adiciona ou remove um ponto de interrupção.
Para selecionar uma linha de código, clique com o botão do mouse e pressione Control (Windows)
ou clique e pressione Command (Macintosh).
Para definir e remover pontos de interrupção no Debugger, siga um destes procedimentos:
• Clique na margem esquerda. Um ponto vermelho indica um ponto de interrupção.
• Clique no botão Toggle Breakpoint (Alternar o ponto de interrupção) ou Remove All
•
•
Breakpoints acima da visualização do código.
Clique com o botão direito do mouse (Windows) ou, pressionando Control, clique
(Macintosh) para exibir o menu de contexto e selecione Breakpoint, Remove Breakpoint ou
Remove All Breakpoints.
Pressione Control+Shift+B (Windows) ou Command+Shift+B (Macintosh).
Quando o Flash Player for interrompido no ponto de interrupção, será possível executar uma
depuração total, parcial ou circular daquela linha de código. (ConsulteNo painel Actions, se o
ponto de interrupção for definido em um comentário ou em uma linha em branco, ele será
ignorado.
Depurando scripts
71
Depurando direto as linhas de código
No início de uma sessão de depuração, o Flash Player é interrompido. Se você definir pontos de
interrupção no painel Actions, basta clicar no botão Continue (Continuar) para reproduzir o
SWF até alcançar um ponto de interrupção. Por exemplo, no código a seguir, suponha que o
ponto de interrupção esteja definido dentro de um botão na linha myFunction():
on(press){
myFunction();
}
Quando você clica no botão, o ponto de interrupção é alcançado, e o Flash Player é interrompido.
Desse modo, é possível executar uma depuração total para trazer o Debugger até a primeira linha
da função myFunction(), independentemente do local em que ela esteja definida no documento.
Também é possível executar uma depuração direta ou circular da função.
Se você não definir pontos de interrupção no painel Actions, use o menu de salto no Debugger
para selecionar qualquer script no filme. Com o script selecionado. você poderá adicionar pontos
de interrupção. Depois de adicionar pontos de interrupção, clique no botão Continue para iniciar
o filme. O Debugger parará quando alcançar o ponto de interrupção.
À medida que você executa a depuração direta das linhas de código, os valores de variáveis e as
propriedades são alterados na lista de observação e nas guias Variables, Locals e Properties. A seta
amarela do lado esquerdo da visualização de código do Debugger indica a linha em que o
Debugger parou. Use os seguintes botões localizados na parte superior da visualização de código:
Continue
Stop Debugging
Toggle Breakpoint
Remove All Breakpoints
Step Out
Step In
Step Over
Step In (Depuração total) avança
o Debugger (indicado pela seta amarela) dentro de uma
função. O botão Step In funciona somente com funções definidas pelo usuário.
No exemplo a seguir, se você colocar um ponto de interrupção na linha 7 e clicar em Step In,
o Debugger avançará para a linha 2, e, com um clique posterior em Step In, ele avançará para a
linha 3. Para avançar o Debugger uma linha de código, clique em Step In para linhas que não têm
funções definidas pelo usuário. Por exemplo, se você parar na linha 2 e selecionar Step In,
o Debugger avançará para a linha 3, conforme mostrado no seguinte exemplo:
1
2
3
4
5
6
7
8
72
function myFunction() {
x = 0;
y = 0;
}
mover = 1;
myFunction();
mover = 0;
Capítulo 3: Escrevendo e depurando scripts
Step Out (Depuração circular) avança o Debugger até sair de uma função. Esse botão só
funcionará se você estiver parado no momento em uma função definida pelo usuário. Ele move a
seta amarela para a linha posterior àquela em que a função foi chamada. No exemplo acima,
se você colocar um ponto de interrupção na linha 3 e clicar em Step Out, o Debugger avançará
para a linha 8. Clicar em Step Out em uma linha fora de uma função definida pelo usuário é o
mesmo que clicar em Continue. Por exemplo, se você parar na linha 6 e clicar em Step Out,
o exibidor continuará executando o script até encontrar um ponto de interrupção.
Step Over (Depuração parcial) avança o
Debugger sobre uma linha de código. Esse botão move
a seta amarela para a próxima linha do script e ignora qualquer função definida pelo usuário.
No exemplo acima, se você tiver parado na linha 7 e clicar em Step Over, irá diretamente para a
linha 8, e myFunction() será ignorada.
Continue sai da linha em que o exibidor está parado e continua a reprodução até alcançar um
ponto de interrupção.
Stop Debugging (Parar a depuração)
desativa o Debugger, mas continua a reproduzir o SWF
no Flash Player.
Usando o painel Output
No modo de teste, o painel Output exibe informações para ajudá-lo a solucionar problemas do
arquivo SWF. Algumas informações, como erros de sintaxe, são exibidas automaticamente. Você
pode exibir outras informações usando os comandos List Objects (Listar objeto) e List Variables
(Listar variáveis). (Consulte “Listando os objeto de um arquivo SWF” na página 74 e “Listando as
variáveis de um arquivo SWF” na página 74.)
Se você usar o comando trace em seus scripts, poderá enviar informações específicas para o
painel Output enquanto o SWF é executado. Essas informações podem incluir observações sobre
o status do SWF ou o valor de uma expressão. (Consulte “Usando o comando trace”
na página 75.)
Para exibir o painel Output, selecione Window > Development Panels > Output ou pressione F2.
Observação: Se houver erros de sintaxe em um script, o painel Output aparecerá automaticamente
quando você verificar a sintaxe ou testar o SWF.
Para trabalhar com o conteúdo do painel Output, use o menu pop-up Options localizado no
canto superior direito.
Usando o painel Output
73
Listando os objeto de um arquivo SWF
No modo de teste, o comando List Objects exibe o nível, o quadro, o tipo de objeto (forma, clipe
de filme ou botão), caminhos de destino e nomes de instância de clipes de filme, botões e campos
de texto em uma lista hierárquica. Esse comando é especialmente útil para localizar o caminho de
destino e o nome da instância corretos. Ao contrário do Debugger, a lista não é atualizada
automaticamente enquanto o SWF é exibido. Selecione o comando List Objects sempre que
desejar enviar as informações para o painel Output.
O comando List Objects não lista todos os objeto de dados do ActionScript. Nesse contexto, um
objeto é considerado como uma forma ou símbolo no Stage.
Para exibir uma lista de objeto em um filme:
1 Se o filme não estiver em execução no modo de teste, selecione Control > Test Movie.
2 Selecione Debug > List Objects.
Uma lista de todos os objeto do Stage é exibida no painel Output, como mostrado neste exemplo:
Level #0: Frame=1 Label="Scene_1"
Button: Target="_level0.myButton"
Shape:
Movie Clip: Frame=1 Target="_level0.myMovieClip"
Shape:
Edit Text: Target="_level0.myTextField" Text="This is sample text."
Listando as variáveis de um arquivo SWF
No modo de teste, o comando List Variables exibe uma lista de todas as variáveis atualmente no
arquivo SWF. Essa lista é especialmente útil para localizar o caminho de destino e o nome da
variável corretos. Ao contrário do Debugger, a lista não é atualizada automaticamente enquanto o
SWF é exibido. Selecione o comando List Variables sempre que desejar enviar as informações para
o painel Output.
O comando List Variables também exibe as variáveis globais declaradas com o identificador
As variáveis globais são exibidas na parte superior da saída de List Variables em uma
seção intitulada “Global Variables” (Variáveis globais), e cada variável possui o prefixo _global.
_global.
Para exibir uma lista de variáveis em um SWF:
1 Se o SWF não estiver em execução no modo de teste, selecione Control > Test Movie.
2 Selecione Debug > List Variables.
Uma lista de todas as variáveis atualmente no SWF é exibida no painel Output, como mostrado
neste exemplo:
Global Variables:
Variable _global.MyGlobalArray = [object #1] [
0:1,
1:2,
2:3
]
Level #0:
Variable _level0.$version = "WIN 6,0,0,101"
Variable _level0.RegularVariable = "Gary"
Variable _level0.AnObject = [object #1] {
MyProperty: [getter/setter] 3.14159
}
74
Capítulo 3: Escrevendo e depurando scripts
Usando o comando trace
Ao usar o comando trace em um script, você pode enviar informações para o painel Output.
Por exemplo, ao testar um filme ou uma cena, você pode enviar observações de programação
específicas para o painel ou fazer com que resultados específicos sejam exibidos quando for
pressionado um botão ou quando um quadro for reproduzido. O comando trace é semelhante
ao comando JavaScript alert.
Quando o comando trace é usado em um script, você pode usar expressões como parâmetros.
O valor de uma expressão é exibido no painel Output no modo de teste, como mostrado a seguir:
O comando trace retorna valores que aparecem no painel Output.
onClipEvent(enterFrame){
trace("onClipEvent enterFrame " + enterFrame++)
}
Atualizando o Flash Player para teste
É possível fazer o download da versão mais recente do Flash Player do site da Macromedia na Web
e usá-la para testar os arquivos SWF.
Atualizando o Flash Player para teste
75
76
Capítulo 3: Escrevendo e depurando scripts
Os eventos podem ser gerados pelo usuário, como cliques do mouse ou teclas pressionadas,
ou podem ocorrer como resultado de outro processo, como um arquivo XML sendo carregado
através da rede. O primeiro capítulo desta parte descreve os diversos tipos de eventos do
Macromedia Flash e analisa como manipulá-los no ActionScript. O segundo capítulo mostra
como aplicar esses princípios para criar apresentações interativas, aplicativos e animações simples.
Capítulo 4: Manipulando eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Capítulo 5: Criando interação com o ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Parte II
PARTE II
Manipulando eventos e criando interação
CAPÍTULO 4
Manipulando eventos
Um evento é uma ocorrência de software ou hardware que requer uma resposta de um aplicativo
Macromedia Flash. Por exemplo, um evento como um clique com o mouse ou um
pressionamento de tecla chama-se evento do usuário, já que é o resultado de uma interação direta
do usuário. Um evento gerado automaticamente pelo Flash Player, como a aparência inicial de um
clipe de filme no Stage (Palco), chama-se evento do sistema, porque não é gerado diretamente pelo
usuário.
Para que seu aplicativo reaja a eventos, use manipuladores de eventos, um código do ActionScript
associado a um objeto e um evento específicos. Por exemplo, quando um usuário clicar em um
botão no Stage, você poderá avançar a reprodução até o próximo quadro. Ou quando o
carregamento de um arquivo XML pela rede for concluído, você poderá exibir o conteúdo desse
arquivo em um campo de texto.
O ActionScript fornece várias formas de manipular eventos: métodos de manipuladores de
eventos, ouvintes de eventos e manipuladores de eventos de botões e clipes de filme.
Usando métodos de manipuladores de eventos
Um método de manipulador de eventos é um método de classe chamado quando ocorre um
evento em uma instância dessa classe. Por exemplo, a classe Button define um manipulador de
evento onPress que é chamado sempre que o mouse é pressionado sobre um objeto Button.
Ao contrário de outros métodos de classe, porém, o manipulador de eventos não é chamado
diretamente; o Flash Player chama esse manipulador automaticamente quando ocorre o evento
apropriado.
Por padrão, os métodos de manipuladores de eventos são indefinidos: quando ocorre um evento
específico, o manipulador correspondente é chamado, mas o aplicativo não responde mais ao
evento. Para que seu aplicativo responda ao evento, defina uma função com o comando de função
e atribua essa função ao manipulador de eventos apropriado. A função atribuída ao manipulador
de eventos é chamada automaticamente sempre que o evento ocorre.
Um manipulador de eventos consiste em três partes: o objeto ao qual se aplica o evento, o nome
do método de manipulador de eventos do objeto e a função atribuída ao manipulador de eventos.
O exemplo abaixo mostra a estrutura básica de um manipulador de eventos.
object.eventMethod = function () {
// Insira seu código em resposta ao evento
}
79
Por exemplo, imagine um botão chamado next_btn no Stage. O código a seguir atribui uma
função ao manipulador de eventos onPress do botão; essa função avança a reprodução até o
próximo quadro na Timeline (Linha de tempo).
next_btn.onPress = function ()
nextFrame();
}
No código anterior, a função nextFrame() é atribuída diretamente a onPress. Você também
pode atribuir uma referência de função (nome) a um método de manipulador de eventos e definir
a função posteriormente.
// Atribua uma referência de função ao método de manipulador de eventos onPress
do botão
next_btn.onPress = goNextFrame;
// Defina a função doSubmit()
function goNextFrame() {
nextFrame();
}
Observe que você atribui a referência de função, e não o valor de retorno da função,
ao manipulador de eventos onPress.
// Incorreto!
next_btn.onPress = goNextFrame();
// Correto.
next_btn.onPress = goNextFrame;
Alguns manipuladores de eventos recebem parâmetros passados que fornecem informações sobre
o evento ocorrido. Por exemplo, o manipulador de eventos TextField.onSetFocus é chamado
quando uma instância de campo de texto ganha o foco do teclado. Esse manipulador de eventos
recebe uma referência ao objeto de campo de texto que tinha o foco do teclado.
Por exemplo, o código a seguir insere um texto no campo de texto que acabou de perder o foco
do teclado.
userName_txt.onSetFocus = function(oldFocus_txt) {
oldFocus_txt.text = "I just lost keyboard focus";
}
As seguintes classes do ActionScript definem manipuladores de eventos: Button, ContextMenu,
ContextMenuItem, Key, LoadVars, LocalConnection, Mouse, MovieClip, MovieClipLoader,
Selection, SharedObject, Sound, Stage, TextField, XML e XMLSocket. Para obter mais
informações sobre os manipuladores de eventos que essas classes fornecem, consulte as respectivas
entradas no Capítulo 12, “Dicionário do ActionScript,” na página 215.
Você também pode atribuir funções a manipuladores de eventos para objeto criados durante a
execução. Por exemplo, o código a seguir cria uma nova instância de clipe de filme (newclip_mc)
e atribui uma função ao manipulador de eventos onPress do clipe.
_root.attachMovie("symbolID", "newclip_mc", 10);
newclip_mc.onPress = function () {
trace("You pressed me");
}
Para obter mais informações, consulte “Criando clipes de filme durante a execução”
na página 124.
80
Capítulo 4: Manipulando eventos
Usando ouvintes de eventos
Os ouvintes de eventos permitem que um objeto, chamado objeto ouvinte, receba eventos gerados
por outro objeto, chamado objeto transmissor. O objeto transmissor registra o objeto ouvinte para
que receba eventos gerados pelo transmissor. Por exemplo, você pode registrar um objeto de clipe
de filme, para que receba notificações onResize do Stage, ou uma instância de botão, para que
receba notificações onChanged de um objeto de campo de texto. É possível registrar vários objeto
ouvintes, para que recebam eventos de um único transmissor, e registrar um único objeto ouvinte,
para que receba eventos de vários transmissores.
O modelo de eventos para ouvintes de eventos é semelhante ao de manipuladores de eventos
(consulte “Usando métodos de manipuladores de eventos” na página 79), com duas diferenças
principais:
• O objeto ao qual você atribui o manipulador de eventos não é o objeto que emite o evento.
• Você chama um método especial do objeto transmissor, addListener(), que registra o objeto
ouvinte para receber seus eventos.
Para usar ouvintes de eventos, crie um objeto ouvinte com uma propriedade que tenha o nome do
evento gerado pelo objeto transmissor. Em seguida, atribua uma função ao ouvinte de eventos que
responda de alguma forma ao evento. Por fim, chame addListener() no objeto que transmite o
evento, passando a ele o nome do objeto ouvinte. O código a seguir descreve o modelo de ouvinte
de eventos.
listenerObject.eventName = function(){
// Insira seu código aqui
};
broadcastObject.addListener(listenerObject);
O objeto ouvinte especificado pode ser qualquer objeto, como um clipe de filme ou instância de
botão no Stage, ou uma instância de qualquer classe do ActionScript. O nome do evento é um
evento que ocorre em broadCastObject, que, em seguida, transmite o evento para
listenerObject. Você pode registrar vários ouvintes para um transmissor de eventos.
O exemplo a seguir mostra como usar o ouvinte de eventos Selection.onSetFocus para criar
um gerenciador de foco simples para um grupo de campos de texto de entrada. Nesse caso,
a borda do campo de texto que recebe o foco do teclado é ativada (exibida), e a borda do campo
de texto que perdeu o foco é desativada.
Usando ouvintes de eventos
81
Para criar um gerenciador de foco simples com ouvintes de eventos:
1 Com a ferramenta Text (Texto), crie um campo de texto no Stage.
2 Selecione o campo de texto e, no inspetor Property (Propriedades), selecione Input (Entrada)
no menu pop-up Text Type (Tipo de texto) e selecione a opção Show Border Around Text
(Mostrar borda em torno do texto).
3 Crie outro campo de texto de entrada abaixo do primeiro.
Certifique-se de que a opção Show Border Around Text não esteja selecionada para esse campo
de texto. Continue a criar campos de texto de entrada conforme desejado.
4 Selecione Frame 1 (Quadro 1) na Timeline e abra o painel Actions (Ações), em Window
(Janela) > Development Panels (Painéis de desenvolvimento) > Actions.
5 Para criar um objeto que ouça a notificação de foco da classe Selection, digite o seguinte código
no painel Actions:
var focusListener = new Object();
focusListener.onSetFocus = function(oldFocus_txt, newFocus_txt) {
oldFocus_txt.border = false;
newFocus_txt.border = true;
}
Esse código cria um novo objeto (genérico) do ActionScript chamado focusListener. Esse
objeto define para si uma propriedade onSetFocus, à qual atribui uma função. A função usa
dois parâmetros: uma referência ao campo de texto que perdeu foco, e outra ao campo de texto
que ganhou foco. A função define a propriedade border do campo de texto que perdeu foco
como false e a propriedade border do campo de texto que ganhou foco como true.
6 Para registrar o objeto focusListener para receber eventos do objeto Selection, adicione o
seguinte código ao painel Actions:
Selection.addListener(focusListener);
7 Teste o filme, em Control (Controle) > Test Movie (Testar filme), clique no primeiro campo
de texto e pressione Tab para alternar o foco entre campos.
Para cancelar o registro de um objeto ouvinte para o recebimento de eventos, chame o método
do objeto transmissor, passando para ele o nome do objeto ouvinte.
removeListener()
broadcastObject.removeListener(listenerObject);
Os ouvintes de eventos estão disponíveis para objeto das seguintes classes do ActionScript: Key,
Mouse, MovieClipLoader, Selection, TextField e Stage. Para obter uma lista de ouvintes de
eventos disponíveis para cada classe, consulte as entradas da classe no Capítulo 12, “Dicionário do
ActionScript,” na página 215.
Usando manipuladores de eventos de botão e clipe de filme
Você pode anexar manipuladores de eventos diretamente a uma instância de botão ou clipe de
filme usando os manipuladores onClipEvent() e on(). O manipulador onClipEvent()
manipula eventos de clipes de filme e o manipulador on(), eventos de botões. Use também on()
com clipes de filme para criar clipes que recebem eventos de botão. Para obter mais informações,
consulte “Criando clipes de filme com estados de botão” na página 84.
82
Capítulo 4: Manipulando eventos
Para usar um manipulador on() ou onClipEvent(), anexe-o diretamente a uma instância de um
botão ou clipe de filme no Stage e especifique o evento a ser manipulado para essa instância. Por
exemplo, o manipulador de eventos on() a seguir é executado sempre que o usuário clica no
botão ao qual o manipulador está anexado.
on(press){
trace("Thanks for pressing me.");
}
Você pode especificar dois ou mais eventos para cada manipulador on(), separados por vírgulas.
O ActionScript em um manipulador é executado quando um dos eventos especificados pelo
manipulador ocorre. Por exemplo, o manipulador on() a seguir anexado a um botão é executado
sempre que o mouse sai de cima do botão.
on(rollOver, rollOut) {
trace("You rolled over, or rolled out");
}
Você também pode anexar mais de um manipulador a um objeto se desejar que scripts diferentes
sejam executados quando ocorrerem eventos distintos. Por exemplo, você pode anexar os
manipuladores onClipEvent() a seguir à mesma instância de clipe de filme. O primeiro é
executado quando o primeiro clipe de filme é carregado (ou quando aparece no Stage); o segundo
é executado quando o clipe de filme é descarregado do Stage.
onClipEvent(load){
trace("I've loaded");
}
onClipEvent (unload) {
trace("I've unloaded");
}
Para obter uma lista completa de eventos suportados pelos manipuladores de eventos on() e
onClipEvent(), consulte on() na página 630 e onClipEvent() na página 631.
A manipulação de eventos através de on() e onClipEvent() não entra em conflito com a
manipulação de eventos através de métodos de manipulador de eventos definidos por você. Por
exemplo, imagine que exista um botão em um arquivo SWF; o botão pode ter um manipulador
on(press), que instrua o SWF a ser reproduzido, e pode ter um método onPress, para o qual
você define uma função que instrui um objeto do Stage a girar. Quando o usuário clica no botão,
o SWF é reproduzido e o objeto gira. Dependendo de sua preferência, você pode usar on() e
onClipEvent(), métodos de manipulador de eventos ou os dois tipos de manipulação de
eventos. Entretanto, o escopo de variáveis e objeto em manipuladores on() e onClipEvent() é
diferente daquele em manipuladores e ouvintes de eventos. (Consulte “Escopo do manipulador de
eventos” na página 84.)
Você só pode anexar onClipEvent() e on() a ocorrências de clipes de filme colocadas no Stage
durante a criação. Não é possível anexar onClipEvent() ou on() a instâncias de clipes de filme
criadas durante a execução (por exemplo, com o método attachMovie()). Para anexar
manipuladores de eventos a objeto criados durante a execução, use métodos de manipuladores de
eventos ou ouvintes de eventos. (Consulte “Usando métodos de manipuladores de eventos”
na página 79 e “Usando ouvintes de eventos” na página 81.)
Usando manipuladores de eventos de botão e clipe de filme
83
Criando clipes de filme com estados de botão
Quando você anexa um manipulador on() a um clipe de filme ou atribui uma função a um dos
manipuladores de eventos de mouse MovieClip para uma instância de clipe de filme, o clipe de
filme responde a eventos do mouse da mesma forma que um botão. Você também pode criar
estados de botão automáticos (Up, Over e Down) em um clipe de filme adicionando os rótulos de
quadro _up, _over e _down à Timeline do clipe de filme.
Quando o usuário move o mouse sobre o clipe de filme ou clica nele, a reprodução é enviada para
o quadro com o rótulo de quadro apropriado. Para designar a área de clicagem usada por um clipe
de filme, utilize a propriedade hitArea da classe MovieClip.
Para criar estados de botão em um clipe de filme:
1 Selecione um quadro na Timeline de um clipe de filme a ser usado como um estado do botão
(Up, Over ou Down).
2 Insira um rótulo de quadro no inspetor Property (_up, _over ou _down).
3 Para adicionar outros estados de botão, repita as etapas 1 e 2.
4 Para fazer com que o clipe de filme responda a eventos do mouse, siga um destes procedimentos:
■ Anexe um manipulador de eventos on() à instância de clipe de filme, conforme analisado
em “Usando manipuladores de eventos de botão e clipe de filme” na página 82.
■ Atribua uma função a um dos manipuladores de eventos de mouse do objeto de clipe de
filme (onPress, onRelease etc.), conforme analisado em “Usando métodos de
manipuladores de eventos” na página 79.
Escopo do manipulador de eventos
O escopo, ou contexto, de variáveis e comandos que você declara e executa em um manipulador
de eventos depende do tipo de manipulador utilizado: manipuladores de eventos ou ouvintes de
eventos, ou manipuladores on() e onClipEvent().
As funções atribuídas a métodos de manipuladores de eventos e ouvintes de eventos (como todas
as funções do ActionScript escritas por você) definem o escopo de uma variável local, mas os
manipuladores on() e onClipEvent() não o fazem.
Por exemplo, considere os dois manipuladores de eventos a seguir. O primeiro é um manipulador
de eventos onPress associado a um clipe de filme chamado clip_mc. O segundo é um
manipulador on() anexado à mesma instância de clipe de filme.
// Anexado à Timeline do clipe pai de clip_mc:
clip_mc.onPress = function () {
var color; // variável de função local
color = "blue";
}
// manipulador on() anexado a clip_mc:
on(press){
var color; // nenhum escopo de variável local
color = "blue";
}
Embora os dois manipuladores de eventos contenham o mesmo código, eles têm resultados
diferentes. No primeiro caso, a variável color é local para a função definida para onPress.
No segundo caso, como o manipulador on() não define um escopo de variável local, o escopo da
variável é a Timeline do clipe de filme clip_mc.
84
Capítulo 4: Manipulando eventos
Para manipuladores de eventos on() anexados a botões, em vez de clipes de filme, o escopo da
variável (bem como de chamadas de funções e métodos) é a Timeline que contém a instância
de botão.
Por exemplo, o manipulador de evento on() a seguir produzirá resultados diferentes, dependendo
de estar anexado a um objeto de clipe de filme ou botão. No primeiro caso, a chamada de função
play() inicia a reprodução da Timeline que contém o botão; no segundo caso, a chamada de
função play() inicia a Timeline do clipe de filme ao qual o manipulador está anexado.
// Anexado ao botão
on(press){
play(); // reproduz a Timeline pai
}
// Anexado ao clipe de filme
on(press){
play(); // reproduz a Timeline do clipe de filme
}
Ou seja, quando anexado a um objeto de botão, a chamada de método play() aplica-se à
Timeline que contém o botão, isto é, a Timeline pai do botão. Entretanto, quando o mesmo
manipulador estiver anexado a um objeto de clipe de filme, play() se aplicará ao clipe de filme
que utiliza o manipulador.
Dentro de uma definição de função de manipulador ou ouvinte de evento, a mesma função
se aplicará à Timeline que contém a definição de função. Por exemplo, imagine que a
função de manipulador de evento MovieClip.onPress seguinte foi declarada na Timeline que
contém a instância de clipe de filme myMovieClip.
play()
// Função definida na Timeline do clipe de filme:
myMovieClip.onPress = function () {
play(); // reproduz a Timeline que contém a definição de função
}
Se desejar reproduzir o clipe de filme que define o manipulador de eventos onPress, refira-se
explicitamente ao clipe usando a palavra-chave this, desta forma:
myMovieClip.onPress = function () {
this,play(); // reproduz a Timeline do clipe que define o manipulador
onPress
}
Escopo do manipulador de eventos
85
Escopo da palavra-chave “this”
A palavra-chave this refere-se ao objeto do escopo em execução no momento. Dependendo do
tipo de técnica de manipulador de eventos usada, this pode se referir a objeto diferentes.
Em uma função de manipulador ou ouvinte de eventos, this refere-se ao objeto que define o
método de manipuladores ou ouvintes de eventos. Por exemplo, no código a seguir this refere-se
a myClip.
// manipulador de evento onPress() anexado a _level0.myClip:
myClip.onPress = function () {
trace(this); // exibe '_level0.myClip'
}
Em um manipulador on() anexado a um clipe de filme, this
o manipulador on() está anexado.
refere-se ao clipe de filme ao qual
// Anexado ao clipe de filme chamado 'myClip'
on(press){
trace(this); displays '_level0.myClip'
}
Em um manipulador on() anexado a um botão, this
// Anexado ao botão na Timeline principal
on(press){
trace(this); // exibe '_level0'
}
86
Capítulo 4: Manipulando eventos
refere-se à Timeline que contém o botão.
CAPÍTULO 5
Criando interação com o ActionScript
Em animações simples, o Macromedia Flash Player reproduz as cenas e os quadros de um arquivo
SWF em seqüência. Em um arquivo SWF interativo, os espectadores usam o teclado e o mouse
para percorrer um SWF, mover objeto, inserir informações em formulários e executar muitas
outras operações interativas.
Use o ActionScript para criar scripts que informem ao Flash Player qual ação executar na
ocorrência de um evento. Os eventos que ativam um script ocorrem quando a reprodução atinge
um quadro, quando um clipe de filme é carregado ou descarregado, ou quando o usuário clica em
um botão ou pressiona uma tecla.
Um script pode consistir em um único comando, como instruir um SWF a interromper a
reprodução, ou uma série de comandos e instruções, como primeiro avaliar uma condição e
depois executar uma ação. Muitos comandos do ActionScript são simples e permitem criar
controles básicos para um SWF. Outras ações exigem alguma familiaridade com linguagens de
programação e são planejadas para um desenvolvimento avançado.
Sobre eventos e interação
Sempre que um usuário clica no mouse ou pressiona uma tecla, é gerado um evento. Esses tipos
de eventos normalmente são chamados eventos do usuário, porque são gerados em resposta a
alguma ação do usuário final. Você pode escrever ActionScript para responder a esses eventos ou
manipulá-los. Por exemplo, quando um usuário clica em um botão, você pode enviar a reprodução
para outro quadro do arquivo SWF ou carregar uma nova página da Web no navegador.
Em um arquivo SWF, botões, clipes de filme e campos de texto geram eventos aos quais você pode
responder. O ActionScript fornece três formas de manipular eventos: métodos de manipuladores
de eventos, ouvintes de eventos e manipuladores on() e onClipEvent(). Para obter informações
sobre eventos e como manipulá-los, consulte Capítulo 4, “Manipulando eventos”, na página 79.
87
Controlando a reprodução do SWF
As funções do ActionScript a seguir permitem controlar a reprodução na Timeline (Linha de
tempo) e carregar uma nova página da Web em uma janela de navegador:
• As funções gotoAndPlay() e gotoAndStop() enviam a reprodução para um quadro ou cena.
•
•
Essas são funções globais que podem ser chamadas de qualquer script. Use também os métodos
MovieClip.gotoAndPlay() e MovieClip.gotoAndStop() para navegar pela Timeline de um
objeto de clipe de filme específico.
As ações play() e stop() reproduzem e interrompem filmes.
A ação getURL() vai até outro URL.
Indo para um quadro ou uma cena
Para ir para uma outra cena ou quadro específico no arquivo SWF, use as funções globais
e gotoAndStop() ou os métodos gotoAndPlay() e gotoAndStop()
equivalentes da classe MovieClip. Cada função ou método permite especificar um quadro para o
qual ir na cena atual. Se o documento contiver várias cenas, você poderá especificar uma cena e
quadro para os quais ir.
gotoAndPlay()
O exemplo a seguir usa a função global gotoAndPlay() no manipulador de eventos onRelease
de um objeto de botão para enviar a reprodução da Timeline que contém o botão para o Frame
(Quadro) 10.
jump_btn.onRelease = function () {
gotoAndPlay(10);
}
No próximo exemplo, o método MovieClip.gotoAndStop() envia a Timeline de um clipe de
filme chamado categories_mc para o Frame 10 e pára. Ao usar os métodos de MovieClip
gotoAndPlay() e gotoAndStop(), especifique uma instância para o método.
jump_btn.onPress = function () {
categories_mc.gotoAndStop(10);
}
Reproduzindo e interrompendo clipes de filme
A menos que instruído de outra forma, depois que um arquivo SWF é iniciado, ele é reproduzido
por cada quadro da Timeline. Para interromper ou iniciar um arquivo SWF, use as funções globais
play() e stop() ou os métodos MovieClip equivalentes. Por exemplo, você pode usar stop()
para interromper um SWF no fim de uma cena antes de passar para a cena seguinte. Depois que
um SWF pára, ele deve ser iniciado explicitamente outra vez chamando play().
Você pode usar as ações play() e stop() ou métodos MovieClip para controlar a Timeline
principal ou a Timeline de qualquer clipe de filme ou SWF carregado. O clipe de filme que você
deseja controlar deve ter um nome de instância e um destino, e deve estar presente na Timeline.
O seguinte manipulador on(press) anexado a um botão inicia a reprodução movendo o SWF ou
o clipe de filme que contém o objeto de botão.
// Anexado a uma instância de botão
on(press){
// Reproduz a Timeline que contém o botão
play();
}
88
Capítulo 5: Criando interação com o ActionScript
Esse mesmo código do manipulador de eventos on() produzirá um resultado diferente quando
anexado a um objeto de clipe de filme em vez de um botão. Os comandos incluídos em um
manipulador on(), quando anexado a um objeto de botão, serão aplicados à Timeline que
contém o botão, por padrão. Entretanto, os comandos incluídos em um manipulador on(),
quando anexado a um objeto de clipe de filme, serão aplicados ao clipe de filme ao qual o
manipulador on() está anexado.
Por exemplo, o código do manipulador on() a seguir interrompe a Timeline do clipe de filme à
qual o manipulador está anexado, e não aquela que contém o clipe de filme.
on(press){
stop();
}
As mesmas condições se aplicam a manipuladores onClipEvent() anexados a objeto de clipes de
filme. Por exemplo, o código abaixo interrompe a Timeline do clipe de filme que contém o
manipulador onClipEvent() quando o primeiro clipe é carregado ou aparece no Stage (Palco).
onClipEvent(load){
stop();
}
Indo para outro URL
Para abrir uma página da Web em uma janela de navegador ou para enviar dados para outro
aplicativo em um URL definido, use a função global getURL() ou o método
MovieClip.getURL(). Por exemplo, é possível ter um botão com links para um novo site ou
enviar variáveis da Timeline para um script CGI para ser processado da mesma forma que com
um formulário HTML. Você também pode especificar uma janela de destino, como faria ao
especificar uma janela com uma marca de âncora HTML (<a></a>).
Por exemplo, o código abaixo abre a página inicial macromedia.com em uma janela de navegador
em branco quando o usuário clica na instância de botão chamada homepage_btn.
homepage_btn.onRelease = function () {
getURL("http://www.macromedia.com", _blank);
}
Você também pode enviar variáveis junto com o URL, usando GET ou POST. Isso é útil se a página
carregada de um servidor de aplicativos, como uma página do ColdFusion Server (CFM), esperar
receber variáveis de formulário. Por exemplo, imagine que você deseje carregar uma página CFM
chamada addUser.cfm que espere duas variáveis de formulário, name e age. Para isso, você pode
criar um clipe de filme chamado variables_mc que defina essas duas variáveis, como mostrado
abaixo.
variables_mc.name = "Francois";
variables_mc.age = 32;
O código a seguir carrega addUser.cfm em uma janela de navegador em branco e passa para a
página CFM variables_mc.name e variables_mc.age no cabeçalho POST.
variables_mc.getURL("addUser.cfm", "_blank", "POST");
Para obter mais informações, consulte getURL() na página 432.
Controlando a reprodução do SWF
89
Criando interatividade e efeitos visuais
Para criar interatividade e outros efeitos visuais, é preciso compreender as seguintes técnicas:
•
•
•
•
•
•
•
Criando um ponteiro de mouse personalizado
Obtendo a posição do mouse
Capturando pressionamentos de teclas
Definindo valores de cores
Criando controles de som
Detectando colisões
Criando uma ferramenta de desenho de linha simples
Criando um ponteiro de mouse personalizado
Um ponteiro de mouse padrão é a representação na tela do sistema operacional da posição do
mouse do usuário. Ao substituir o ponteiro de mouse padrão por um criado no Flash, você pode
integrar o movimento do mouse do usuário no arquivo SWF com mais precisão. O exemplo desta
seção usa um ponteiro personalizado com o formato de uma seta grande. Porém, a eficiência desse
recurso está na sua capacidade de transformar o ponteiro personalizado em qualquer forma, como
uma bola de futebol a caminho da linha do gol ou um pedaço de tecido colocado por cima de um
sofá para mudar sua cor.
Para criar um ponteiro personalizado, crie o clipe de filme do ponteiro no Stage. Em seguida, no
ActionScript, oculte o ponteiro padrão e controle seu movimento. Para ocultar o ponteiro padrão,
use o método Mouse.hide() da classe Mouse interna. Para usar um clipe de filme como o
ponteiro personalizado, use a ação startDrag().
Para criar um ponteiro personalizado:
1 Crie um clipe de filme para ser usado como um ponteiro personalizado e coloque uma instância
do clipe no Stage.
2 Selecione a ocorrência do clipe de filme no Stage.
3 Selecione Window > Development Panels > Actions para abrir o painel Actions se ele ainda não
estiver visível.
4 Digite o seguinte no painel Actions:
onClipEvent (load) {
Mouse.hide();
startDrag(this, true);
}
onClipEvent(mouseMove){
updateAfterEvent();
}
O primeiro manipulador onClipEvent() oculta o mouse quando o clipe de filme aparece no
Stage pela primeira vez; o segundo manipulador chama updateAfterEvent sempre que o
usuário move o mouse.
A função updateAfterEvent atualiza a tela imediatamente após a ocorrência do evento
especificado, ao contrário do comportamento padrão, que atualiza a tela após a obtenção do
próximo quadro. (Consulte updateAfterEvent() na página 806.)
90
Capítulo 5: Criando interação com o ActionScript
5 Selecione Control (Controlar) > Test Movie (Testar filme) para testar o ponteiro personalizado.
Os botões ainda funcionarão quando você usar um ponteiro personalizado. É recomendável
colocar o ponteiro personalizado na camada superior da Timeline para que ele se mova na frente
dos botões e de outros objeto à medida que você move o mouse no SWF. Além disso, a dica de um
ponteiro de mouse personalizado é o ponto de registro do clipe de filme que você usa como o
ponteiro personalizado. Assim, se desejar que uma certa parte do clipe de filme funcione como a
dica do mouse, defina as coordenadas do ponto de registro do clipe para que seja esse ponto.
Para obter informações sobre os métodos da classe Mouse, consulte a entrada de Classe Mouse em
Capítulo 12, “Dicionário do ActionScript”, na página 215.
Obtendo a posição do mouse
Você pode usar as propriedades _xmouse e _ymouse para localizar o ponteiro do mouse (cursor)
em um SWF. Cada Timeline possui uma propriedade _xmouse e _ymouse que retorna a
localização do mouse no seu sistema de coordenadas. A posição é sempre relativa ao ponto de
registro. No caso da Timeline principal (_level0), o ponto de registro é o canto superior esquerdo.
As propriedades _xmouse e _ymouse na Timeline principal e uma Timeline de clipe de filme
Os procedimentos a seguir mostram duas maneiras de obter a posição do mouse.
Criando interatividade e efeitos visuais
91
Para obter a posição atual do mouse na Timeline principal:
1 Crie duas caixas de texto dinâmicas e nomeie-as x_pos e y_pos.
2 Selecione Window > Development Panels > Actions para abrir o painel Actions se ele ainda não
estiver visível.
3 Para retornar a posição do mouse na Timeline principal, adicione o código a seguir a qualquer
quadro no SWF _level0:
x_pos = _root._xmouse;
y_pos = _root._ymouse;
As variáveis x_pos e y_pos são usadas como recipientes para armazenar os valores das posições do
mouse. Você pode usar essas variáveis em qualquer script em seu documento. No manipulador
onClipEvent() a seguir, os valores de x_pos e y_pos são atualizados sempre que o usuário move
o mouse.
onClipEvent(mouseMove){
x_pos = _root._xmouse;
y_pos = _root._ymouse;
}
Para obter a posição atual do mouse em um clipe de filme:
1 Crie um clipe de filme.
2 Selecione a instância do clipe de filme no Stage. Com o inspetor Property (Propriedades),
nomeie-a como myMovieClip.
3 Selecione Window > Development Panels > Actions para abrir o painel Actions se ele ainda não
estiver visível.
4 Use o nome da instância do clipe de filme para retornar a posição do mouse na Timeline
principal.
Por exemplo, o comando a seguir pode ser colocado em qualquer Timeline no SWF _level0
para retornar a posição _ymouse na instância myMovieClip:
x_pos = _root.myMovieClip._xmouse
y_pos = _root.myMovieClip._ymouse
O código retorna as variáveis _xpos e _ypos do mouse em relação ao ponto de registro.
5 Selecione Control > Test Movie para testar o filme.
Também é possível determinar a posição do mouse em um clipe de filme usando as propriedades
e _ymouse em um evento do clipe, conforme mostrado no código a seguir:
_xmouse
onClipEvent (enterFrame){
xmousePosition = _xmouse;
ymousePosition = _ymouse;
}
Para obter mais informações sobre as propriedades _xmouse e _ymouse, consulte
MovieClip._xmouse na página 600 e MovieClip._ymouse na página 601.
92
Capítulo 5: Criando interação com o ActionScript
Capturando pressionamentos de teclas
Use os métodos da classe Key interna para detectar a última tecla pressionada pelo usuário.
A classe Key não exige uma função construtora; para usar seus métodos, basta chamá-los na
própria classe, como mostrado no exemplo a seguir:
Key.getCode();
Você pode obter códigos de teclas virtuais ou valores ASCII (American Standard Code for
Information Interchange) de pressionamentos de teclas:
• Para obter o código de tecla virtual da última tecla pressionada, use o método getCode().
• Para obter o valor ASCII da última tecla pressionada, use o método getAscii().
Um código de tecla virtual é atribuído a cada tecla física de um teclado. Por exemplo, a tecla de
seta para esquerda tem o código de tecla virtual 37. Usar esse código garante que os controles do
arquivo SWF sejam os mesmos em todos os teclados, independentemente de linguagem ou
plataforma.
Valores ASCII são atribuídos aos primeiros 127 caracteres em cada conjunto de caracteres.
Os valores ASCII fornecem informações sobre um caractere da tela. Por exemplo, a letra “A” e a
letra “a” possuem valores ASCII diferentes.
Decida quais teclas usar e determine seus códigos de teclas virtuais usando um destes
procedimentos:
• Consulte a lista de códigos de teclas em Apêndice C, “Teclas do teclado e valores de códigos de
•
•
teclas”, na página 859.
Use uma constante da classe Key. Na caixa de ferramentas Actions, clique na categoria Built-In
Classes (Classes internas), clique em Movie, clique em Key (Tecla) e clique em Constants
(Constantes).
Atribua o manipulador onClipEvent() a seguir a um clipe de filme e, em seguida, selecione
Control > Test Movie e pressione a tecla desejada.
onClipEvent(load) {
trace(Key.getCode());
}
O código da tecla desejada é exibido no painel Output.
Criando interatividade e efeitos visuais
93
Um lugar comum para se usar os métodos da classe Key é em um manipulador de eventos.
No exemplo abaixo, o usuário move o carro usando as teclas de seta. O método Key.isDown()
indica se tecla pressionada é a seta para a direita, para a esquerda, para cima ou para baixo. O
manipulador de eventos, onEnterFrame, determina o valor Key.isDown(keyCode) a partir de
comandos if. Dependendo do valor, o manipulador instrui o Flash Player a atualizar a posição do
carro e exibir a direção.
A entrada do teclado move o carro.
O procedimento abaixo mostra como capturar pressionamentos de tecla para mover um clipe de
filme para cima, para baixo, para a esquerda ou para a direita no Stage, dependendo de qual tecla
de seta correspondente (para cima, para baixo, para a esquerda, para a direita) é pressionada.
O clipe de filme é confinado a uma área arbitrária de 400 pixels de largura e 300 pixels de altura.
Além disso, um campo de texto exibe o nome da tecla pressionada.
94
Capítulo 5: Criando interação com o ActionScript
Para criar um clipe de filme ativado por teclado:
1 No Stage, crie um clipe de filme que deverá se mover em resposta a atividades de teclas
do teclado.
Neste exemplo, o nome da instância do clipe de filme é car.
2 No Stage, crie uma caixa de texto dinâmica que será atualizada com a direção do carro.
Usando o inspetor Property, forneça a ela um nome de instância display_txt.
Observação: Não confunda nomes de variáveis com nomes de instâncias. Para obter mais
informações, consulte “Sobre a instância do campo de texto e os nomes de variáveis”
na página 136.
3 Selecione Frame 1 na Timeline; em seguida, selecione Window > Development Panels >
Actions para abrir o painel Actions, caso ele não esteja visível.
4 Para definir a distância que o carro percorre na tela com cada pressionamento de tecla, defina
uma variável distance e defina seu valor inicial como 10.
var distance = 10;
5 Para criar o manipulador de eventos para o clipe de filme do carro que verifique qual tecla de
seta (para a esquerda, para a direita, para cima ou para baixo) está pressionada, adicione este
código ao painel Actions:
car.onEnterFrame = function() {
};
6 Adicione um comando with ao corpo do manipulador onEnterFrame e especifique car como
o objeto do comando with.
O código deve ser este:
var distance = 10;
car.onEnterFrame = function() {
with (car) {
}
};
7 Para verificar se a tecla de seta para a direita está sendo pressionada, e para mover o clipe de filme
do carro de forma correspondente, adicione este código ao corpo do comando with.
distance = 10;
car.onEnterFrame = function() {
with (car) {
if (Key.isDown(Key.RIGHT)) {
_x += distance;
if (_x >= 400) {
_x = 400;
}
_root.display_txt.text = "Right";
}
};
Se a tecla de seta para a direita estiver sendo pressionada, a propriedade _x do carro será
aumentada de acordo com valor especificado pela variável distance. O próximo comando if
testa se o valor da propriedade _x do clipe é maior que ou igual a 400 (if(_x >=400)); nesse
caso, sua posição é fixada em 400. Além disso, a palavra Right deve aparecer no SWF.
Criando interatividade e efeitos visuais
95
8 Use código semelhante para testar se as teclas para a esquerda, para cima ou para baixo estão
sendo pressionadas.
distance = 10;
car.onEnterFrame = function() {
with (car) {
if (Key.isDown(Key.RIGHT)) {
_x += distance;
if (_x >= 400) {
_x = 400;
}
_root.display_txt.text = "Right";
} else if (Key.isDown(Key.LEFT)) {
_x -= distance;
if (_x < 0) {
_x = 0;
}
_root.display_txt.text = "Left";
} else if (Key.isDown(Key.UP)) {
_y -= distance;
if (_y < 0) {
_y = 0 ;
}
_root.display_txt.text = "Up";
} else if (Key.isDown(Key.DOWN)) {
_y += distance;
if (_y > 300) {
_y = 300;
}
_root.display_txt.text = "Down";
}
}
}
9 Selecione Control > Test Movie para testar o arquivo.
Para obter mais informações sobre os métodos da classe Key, consulte a entrada de Classe key em
Capítulo 12, “Dicionário do ActionScript”, na página 215.
96
Capítulo 5: Criando interação com o ActionScript
Definindo valores de cores
É possível usar os métodos da classe Color interna para ajustar a cor de um clipe de filme. O
método setRGB() atribui valores RGB (vermelho, verde, azul) hexadecimais ao clipe de filme. O
exemplo a seguir usa setRGB() para alterar a cor de um objeto com base na entrada do usuário.
A ação do botão cria um objeto Color e altera a cor do carro com base na entrada do usuário.
Para definir o valor de cor de um clipe de filme:
1 Selecione um clipe de filme no Stage.
2 No inspetor Property, insira carColor como o nome da instância.
3 Crie um botão chamado color chip, coloque quatro instâncias do botão no Stage e nomeie-as
como red, green, blue e black.
4 Selecione Frame 1 na Timeline principal e selecione Window > Development Panels > Actions.
5 Para criar um novo objeto Color que especifique o clipe de filme carColor, adicione o código
a seguir ao painel Actions:
myColor = new Color(_root.carColor);
6 Para que o botão azul altere a cor do clipe de filme carColor para azul, adicione o código a
seguir ao painel Actions:
_root.blue.onRelease = function(){
myColor.setRGB(0x0000ff)
}
Criando interatividade e efeitos visuais
97
O valor hexadecimal 0x0000ff é azul. A tabela a seguir exibe as outras cores que você usará e
seus valores hexadecimais.
Cor
Valor hexadecimal
Vermelho
0xff0000
Verde
0x00ff00
Azul
0x0000ff
Preto
0x000000
7 Repita a etapa 6 para os outros botões (vermelho, verde e preto) para alterar a cor do clipe de
filme para a cor correspondente. O código agora deve ser este:
myColor = new Color(_root.carColor)
_root.blue.onRelease = function(){
myColor.setRGB(0x0000ff)
}
_root.red.onRelease = function(){
myColor.setRGB(0xff0000)
}
_root.green.onRelease = function(){
myColor.setRGB(0x00ff00)
}
_root.black.onRelease = function(){
myColor.setRGB(0x000000)
}
8 Selecione Control > Test Movie para alterar a cor do clipe de filme.
Para obter mais informações sobre os métodos da classe Color, consulte a entrada de Classe Color
em Capítulo 12, “Dicionário do ActionScript”, na página 215.
98
Capítulo 5: Criando interação com o ActionScript
Criando controles de som
Use a classe interna Sound para controlar sons em um arquivo SWF. Para usar os métodos da
classe Sound, primeiro crie um novo objeto Sound. Depois, use o método attachSound() para
inserir um som da biblioteca em um arquivo SWF enquanto o SWF estiver em execução.
Quando o usuário solta o botão Play (Reproduzir), uma música é reproduzida pelo alto-falante.
O método setVolume() da classe Sound controla o volume, e o método setPan() ajusta o
balanço da esquerda e da direita de um som.
Quando o usuário arrasta o controle deslizante de volume, o método setVolume() é chamado.
Os procedimentos a seguir mostram como criar controles de som semelhantes aos
mostrados acima.
Criando interatividade e efeitos visuais
99
Para anexar um som a uma Timeline:
1 Selecione File > Import para importar um som.
2 Selecione um som na biblioteca, clique com o botão direito (Windows) ou, pressionando
Control, clique (Macintosh) e selecione Linkage (Vinculação).
3 Selecione Export for ActionScript (Exportar para ActionScript) e Export in First Frame
(Exportar no primeiro quadro); em seguida, especifique o identificador a_thousand_ways.
4 Adicione um botão ao Stage e nomeie-o como playButton.
5 Adicione um botão ao Stage e nomeie-o como stopButton.
6 Adicione um clipe de filme ao Stage e nomeie-o como speaker.
7 Selecione Frame 1 na Timeline principal e selecione Window > Development Panels > Actions.
Adicione este código ao painel Actions:
speaker.stop();
song = new Sound();
song.onSoundComplete = function() {
speaker.stop();
};
song.attachSound("a_thousand_ways");
playButton.onRelease = function() {
song.start();
speaker.play();
};
stopButton.onRelease = function () {
song.stop();
speaker.stop();
}
Esse código primeiro interrompe o clipe de filme speaker. Em seguida, cria um novo objeto
Sound (song) e anexa o som cujo identificador de vinculação é a_thousand_ways. Depois,
define um manipulador onSoundComplete para o objeto de música, que interrompe o clipe de
filme speaker quando o som termina. Por fim, manipuladores onRelease associados aos
objeto playButton e stopButton iniciam e interrompem o som usando os métodos
Sound.start() e Sound.stop(), além de iniciar e interromper o clipe de filme speaker.
8 Selecione Control > Test Movie para ouvir o som.
Para criar um controle de volume deslizante:
1 Arraste um botão para o Stage.
2 Selecione o botão e selecione Modify (Modificar) > Convert to Symbol (Converter em símbolo).
Tenha cuidado ao selecionar o comportamento do clipe de filme.
Isso criará um clipe de filme com o botão em seu primeiro quadro.
3 Selecione o clipe de filme e selecione Edit (Editar) > Edit Selected (Editar selecionados).
4 Selecione o botão e selecione Window > Development Panels > Actions.
100
Capítulo 5: Criando interação com o ActionScript
5 Insira as seguintes ações:
on(press){
startDrag(this, false, left, top, right, bottom);
}
on (release) {
stopDrag();
}
Os parâmetros left, top, right e bottom de startDrag() são variáveis definidas em uma
ação do clipe.
6 Selecione Edit (Editar) > Edit Document (Editar documento) para voltar à Timeline principal.
7 Selecione o clipe de filme no Stage.
8 Insira as seguintes ações:
onClipEvent (load) {
top = _y;
bottom = _y;
left = _x;
right = _x+100;
_x += 100;
}
onClipEvent (enterFrame) {
_parent.song.setVolume(_x-left);
}
9 Selecione Control > Test Movie para usar o controle deslizante de volume.
Para criar um controle de balanço deslizante:
1 Arraste um botão para o Stage.
2 Selecione o botão e selecione Insert (Inserir) > Convert to Symbol. Selecione a propriedade do
clipe de filme.
3 Selecione o clipe de filme e selecione Edit (Editar) > Edit Symbol (Editar símbolo).
4 Selecione o botão e selecione Window > Development Panels > Actions.
5 Insira as seguintes ações:
on(press){
startDrag ("", false, left, top, right, bottom);
dragging = true;
}
on (release, releaseOutside) {
stopDrag ();
dragging = false;
}
Os parâmetros left, top, right e bottom de startDrag() são variáveis definidas em uma
ação do clipe.
6 Selecione Edit (Editar) > Edit Document (Editar documento) para voltar à Timeline principal.
7 Selecione o clipe de filme no Stage.
Criando interatividade e efeitos visuais
101
8 Insira as seguintes ações:
onClipEvent(load){
top=_y;
bottom=_y;
left=_x-50;
right=_x+50;
center=_x;
}
onClipEvent (enterFrame){
if (dragging==true){
_parent.setPan((_x-center)*2);
}
}
9 Selecione Control > Test Movie para usar o controle deslizante de balanço.
Para obter mais informações sobre os métodos da classe Sound, consulte a entrada de Classe
Sound em Capítulo 12, “Dicionário do ActionScript”, na página 215.
Detectando colisões
O método hitTest() da classe MovieClip detecta colisões em um arquivo SWF. Ele verifica se
um objeto colidiu com um clipe de filme e retorna um valor booleano (true ou false).
Existem dois casos em que é necessário saber se houve colisão: para testar se o usuário chegou a
uma certa área estática no Stage, e para determinar quando um clipe de filme alcançou outro.
Com hitTest(), você pode determinar esses resultados.
Você pode usar os parâmetros de hitTest() para especificar as coordenadas x e y de uma área de
clicagem no Stage ou usar o caminho de destino de outro clipe de filme como uma área de
clicagem. Quando x e y são especificadas, hitTest() retorna true se o ponto identificado por
(x, y) não for transparente. Quando um destino é passado para hitTest(), as caixas delimitadoras
dos dois clipes de filme são comparadas. Se elas se sobreporem, hitTest() retornará true. Se não
houver uma interseção entre as duas caixas, hitTest() retornará false.
“True” aparece no campo de texto sempre que o ponteiro do mouse está sobre o corpo do carro.
102
Capítulo 5: Criando interação com o ActionScript
Você também pode usar hitTest() para testar uma colisão entre dois clipes de filme.
“True” aparece no campo de texto sempre que um clipe de filme toca no outro.
Os procedimentos a seguir mostram como detectar colisões usando o exemplo do carro.
Para detectar a colisão entre um clipe de filme e um ponto no Stage:
1 Crie um novo clipe de filme no Stage e insira box como o nome da instância no inspetor
Property.
2 Crie uma caixa de texto dinâmica no Stage e insira status como o nome da instância no
inspetor Property.
3 Selecione o primeiro quadro na Layer 1 (Camada 1) da Timeline.
4 Selecione Window > Development Panels > Actions para abrir o painel Actions se ele ainda não
estiver visível.
5 Adicione este código ao painel Actions:
box.onEnterFrame = function () {
status.text = this.hitTest(_xmouse, _ymouse, true);
}
6 Selecione Control > Test Movie e mova o mouse sobre o clipe de filme para testar a colisão.
O valor true é exibido sempre que o mouse está sobre um pixel não transparente.
Para executar a detecção de colisão em dois clipes de filme:
1 Arraste dois clipes de filme para o Stage e atribua a eles os nomes de instância car e area.
2 Crie uma caixa de texto dinâmica no Stage e insira status como o nome da instância no
inspetor Property .
3 Selecione o primeiro quadro na Layer 1 (Camada 1) da Timeline.
4 Selecione Window > Development Panels > Actions para abrir o painel Actions se ele ainda não
estiver visível.
Criando interatividade e efeitos visuais
103
5 Insira o código a seguir no painel Actions:
area.onEnterFrame = function () {
status.text=this.hitTest(car);
}
car.onPress = function (){
this.startDrag(false);
updateAfterEvent();
}
car.onRelease = function () {
this.stopDrag();
}
6 Selecione Control > Test Movie e arraste o clipe de filme para testar a detecção da colisão.
Sempre que a caixa delimitadora do carro formar uma interseção com a caixa delimitadora da
área, o status será true.
Para obter mais informações, consulte Para obter mais informações, consulte
em Capítulo 12, “Dicionário do ActionScript”, na página 215.
MovieClip.hitTest()
Criando uma ferramenta de desenho de linha simples
Use métodos da classe MovieClip para desenhar linhas e preenchimentos no Stage durante a
reprodução do arquivo SWF. Isso permite criar ferramentas de desenho para usuários e desenhar
formas no SWF em resposta a eventos. Os métodos de desenho são beginFill(),
beginGradientFill(), clear(), curveTo(), endFill(), lineTo(), lineStyle() e
moveTo(). É possível aplicar esses métodos a qualquer instância de clipe de filme (por exemplo,
myClip.lineTo()) ou a um nível do SWF (_root.curveTo()).
Os métodos lineTo() e curveTo() permitem desenhar linhas e curvas, respectivamente.
Especifique uma cor de linha, espessura e configuração alfa para uma linha ou curva com o
método lineStyle(). O método de desenho moveTo() define a posição de desenho atual como
coordenadas x e y do Stage especificadas por você.
Os métodos beginFill() e beginGradientFill() preenchem um caminho fechado com um
preenchimento sólido ou gradiente, respectivamente, e endFill() aplica o preenchimento
especificado na última chamada a beginFill() ou beginGradientFill(). O método clear()
apaga o que foi desenhado no objeto de clipe de filme especificado.
Para obter mais informações, consulte MovieClip.beginFill() na página 538,
MovieClip.beginGradientFill() na página 539, MovieClip.clear() na página 543,
MovieClip.curveTo() na página 546, MovieClip.endFill() na página 549,
MovieClip.lineTo() na página 564, MovieClip.lineStyle() na página 562 e
MovieClip.moveTo() na página 570.
104
Capítulo 5: Criando interação com o ActionScript
Para criar uma ferramenta de desenho de linha simples:
1 Em um novo documento, crie um novo botão no Stage e digite clear_btn como o nome de
instância no inspetor Property.
2 Selecione Frame 1 na Timeline; em seguida, selecione Window > Development Panels >
Actions para abrir o painel Actions se ele não estiver visível.
3 No painel Actions, digite este código:
_root.onMouseDown = function() {
_root.lineStyle(5, 0xFF0000, 100);
_root.moveTo(_root._xmouse, _root._ymouse);
isDrawing = true;
};
_root.onMouseMove = function() {
if (isDrawing == true) {
_root.lineTo(_root._xmouse, _root._ymouse);
updateAfterEvent();
}
};
_root.onMouseUp = function() {
isDrawing = false;
};
clear_btn.onRelease = function() {
_root.clear();
};
4 Selecione Control > Test Movie para testar o filme. Clique e arraste o mouse para desenhar uma
linha no Stage. Clique no botão para apagar o que foi desenhado.
Desconstruindo um script de exemplo
No arquivo SWF de exemplo zapper.swf, que pode ser exibido em Usando a Ajuda do Flash,
quando um usuário arrasta a joaninha até a tomada elétrica, a joaninha cai e a tomada treme. A
Timeline principal tem apenas um quadro e contém três objeto: a joaninha, a tomada e um botão
de redefinição. Cada um desses objeto é uma instância de clipe de filme.
Desconstruindo um script de exemplo
105
Existe um script no SWF; ele está anexado à instância bug, como mostrado no painel
Actions abaixo:
Ação
Manipulador de eventos
Evento
Variável
Comando condicional if
Painel Actions com o script anexado à instância bug
O nome de instância da joaninha é bug e o nome de instância da tomada é zapper. No script, a
referência à joaninha é feita com this, pois o script está anexado à joaninha, e a palavra reservada
this refere-se ao objeto que o contém.
Existem dois manipuladores onClipEvent() com dois eventos diferentes: load e enterFrame.
As ações no comando onClipEvent(load) são executadas somente uma vez, quando o SWF é
carregado. As ações no comando onClipEvent(enterFrame) são executadas sempre que a
reprodução entra em um quadro. Mesmo em um SWF com apenas um quadro, a reprodução
ainda entra nesse quadro repetidamente e o script é executado também repetidamente. As ações a
seguir ocorrem dentro de cada manipulador onClipEvent():
onClipEvent(load)
Duas variáveis, initx e inity, são definidas para armazenar as posições
iniciais x e y da instância de clipe de filme bug. A função é definida e atribuída ao evento
onRelease da instância Reset. Essa função é chamada todas as vezes que o botão do mouse é
pressionado e liberado sobre o botão Reset (Redefinir). A função recoloca a joaninha na posição
inicial no Stage, redefine seus valores de rotação e alfa e redefine a variável zapped como false.
106
Capítulo 5: Criando interação com o ActionScript
onClipEvent(enterFrame)
Um comando if condicional usa o método hitTest() para
verificar se a instância da joaninha entra em contato com a instância da tomada (_root.zapper).
Há dois resultados possíveis para a avaliação, true ou false:
onClipEvent (load) {
initx = _x;
inity = _y;
_root.Reset.onRelease = function() {
zapped = false;
_x = initx;
_y = inity;
_alpha = 100
_rotation = 0;
};
}
Se o método hitTest() retornar true, o método stopDrag() será chamado, a variável zapper
será definida como true, as propriedades alpha e rotation serão alteradas e a instância zapped
receberá um comando para ser executada.
Se o método hitTest() retornar false, não será executado nenhum código entre chaves {} logo
após o comando if.
Existem dois manipuladores on() anexados à instância bug com dois eventos diferentes: press e
release. As ações no comando on(press) são executadas quando o botão do mouse é
pressionado sobre a instância bug. As ações no comando on(release) são executadas quando o
botão do mouse é liberado sobre a instância bug. As ações a seguir ocorrem dentro de cada
manipulador onClipEvent():
on(press)
Uma ação startDrag() torna a joaninha arrastável. Como o script está anexado à
instância bug, a palavra-chave this indica que é a instância bug que é arrastável:
on(press){
this.startDrag();
}
on(release)
Uma ação stopDrag() interrompe a ação arrastar:
on (release) {
stopDrag();
}
Para observar o SWF ser executado, consulte a Ajuda do Guia de referência do ActionScript.
Desconstruindo um script de exemplo
107
108
Capítulo 5: Criando interação com o ActionScript
Esta parte analisa o modelo de objeto do Macromedia Flash durante a execução e seus recursos,
concentrando-se no trabalho com clipes de filmes e texto. Ela também descreve como criar classes
e interfaces próprias com o ActionScript 2.
Capítulo 6: Usando as classes internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Capítulo 7: Trabalhando com clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Capítulo 8: Trabalhando com texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Capítulo 9: Criando classes com o ActionScript 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Parte III
PARTE III
Trabalhando com objetos e classes
CAPÍTULO 6
Usando as classes internas
Além dos elementos e construções básicas do ActionScript (as repetições for e while, por
exemplo) e dos tipos de dados primitivos (números, seqüências de caracteres e arrays) descritos
anteriormente (consulte “Conceitos básicos do ActionScript” na página 21), o ActionScript
também fornece várias classes internas ou tipos de dados complexos. Essas classes oferecem vários
recursos e funcionalidades de script.
Algumas classes baseiam-se na especificação ECMAScript e são chamadas classes básicas do
ActionScript. Alguns exemplos desse tipo de classe são: Array, Boolean, Date e Math. Para obter
mais informações, consulte “Classes básicas” na página 113.)
As outras classes internas do ActionScript são específicas para o modelo de objeto do Macromedia
Flash e do Flash Player. Para entender a diferença entre as classes básicas do ActionScript e as
classes específicas do Flash, considere a distinção entre JavaScript básico e cliente: da mesma
maneira que as classes JavaScript cliente fornecem controle sobre o ambiente do cliente
(o conteúdo do navegador e da página da Web), as classes específicas do Flash oferecem controle
do tempo de execução sobre a aparência e o comportamento de um aplicativo Flash.
Este capítulo apresenta as classes internas do ActionScript, descreve as tarefas comuns que você
pode realizar com essas classes e fornece exemplos de código. Para obter uma visão geral dessas
classes, consulte “Visão geral das classes internas” na página 112. Para obter uma visão geral sobre
o trabalho com classes e objeto na programação orientada a objeto, consulte “Sobre classes e
instâncias” na página 111.
Sobre classes e instâncias
Na programação orientada a objeto, uma classe define uma categoria de objeto. Uma classe
descreve as propriedades (dados) e o comportamento (métodos) de um objeto, da mesma maneira
que uma planta arquitetônica descreve as características de uma construção. Para usar as
propriedades e os métodos definidos por uma classe, primeiro você deve criar uma instância dessa
classe. A relação entre uma instância e sua classe é semelhante à relação entre uma casa e sua planta
arquitetônica.
111
Criando um novo objeto
Para criar uma instância de uma classe do ActionScript, use o operador new para chamar a função
construtora da classe. A função construtora sempre tem o mesmo nome da classe e retorna uma
instância da classe, que você normalmente atribui a uma variável.
Por exemplo, o código a seguir cria um novo objeto Video.
var my_video = new Video();
Em alguns casos, não é necessário criar a instância de uma classe para usá-la. Para obter mais
informações, consulte “Sobre os membros de classe (estáticos)” na página 112.
Acessando propriedades de objeto
Use o operador ponto (.) para acessar o valor de uma propriedade em um objeto. Coloque o
nome do objeto à esquerda do ponto e o nome da propriedade à direita. Por exemplo,
no comando a seguir, myObject é o objeto e name é a propriedade:
myObject.name
O código a seguir cria um novo objeto TextField e define sua propriedade autoSize como true.
var my_text = new TextField();
my_text.autoSize = true;
Você também pode usar o operador de acesso de array ([]) para acessar as propriedades de um
objeto. Consulte “Operadores ponto e de acesso de array” na página 46.
Chamando métodos de objeto
Use o operador ponto (.) seguido pelo método para chamar o método de um objeto. Por
exemplo, o código a seguir cria um novo objeto Sound e chama seu método setVolume():
mySound = new Sound(this);
mySound.setVolume(50);
Sobre os membros de classe (estáticos)
Algumas classes internas do ActionScript apresentam membros de classe (ou membros estáticos).
Os membros de classe (propriedades e métodos) são acessados ou chamados não em uma
instância da classe, mas no próprio nome da classe. Ou seja, você não cria uma instância da classe
para usar essas propriedades e métodos.
Por exemplo, todas as propriedades da classe Math são estáticas. O código a seguir chama o
método max() da classe Math para determinar o maior de dois números.
var largerNumber = Math.max(10, 20);
Visão geral das classes internas
Esta seção lista todas as classes do ActionScript, incluindo uma breve descrição de cada uma delas
e referências cruzadas para outras seções relevantes da documentação.
112
Capítulo 6: Usando as classes internas
Classes básicas
As classes básicas do ActionScript são aquelas emprestadas diretamente do ECMAScript. Na caixa
de ferramentas Actions (Ações), essas classes localizam-se na subpasta Built-in Classes (Classes
internas) > Core (Básicas).
Classe
Descrição
Arguments
Um array que contém os valores passados como parâmetros para
qualquer função. Consulte a entrada Classe Arguments no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Array
A classe Array contém métodos e propriedades para o trabalho com os
objeto array. Consulte a entrada Classe Array no Capítulo 12, “Dicionário
do ActionScript”, na página 215.
Boolean
A classe Boolean é uma cobertura dos valores booleanos (true ou
false). Consulte a entrada Classe Boolean no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
Button
A classe Button fornece métodos e propriedades para o trabalho com os
objeto button. Consulte a entrada Classe Button no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Date
A classe Date fornece acesso aos valores de data e hora relativos ao
horário universal (Hora de Greenwich) ou relativos ao sistema
operacional no qual o Flash Player está em execução. Consulte a
entrada Classe Date no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Error
A classe Error contém informações sobre os erros que ocorrem nos
scripts. Em geral, use o comando throw para gerar uma condição de erro,
que você pode manipular com um comando try..catch..finally.
Consulte try..catch..finally e Classe Error no Capítulo 12, “Dicionário
do ActionScript”, na página 215.
Function
A classe Function é a representação de classe de todas as funções do
ActionScript, incluindo aquelas que são nativas do ActionScript e as que
você define. Consulte a entrada Classe Function no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Math
A classe Math permite que você acesse e manipule constantes e funções
matemáticas. Todas as propriedades e métodos da classe Math são
estáticos e devem ser chamados com a sintaxe Math.method(parâmetro)
ou Math.constant. Consulte a entrada Classe Math no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Number
A classe Number é uma cobertura do tipo de dados do número primitivo.
Consulte a entrada Classe Number no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
Visão geral das classes internas
113
Classe
Descrição
Object
A classe Object encontra-se na raiz da hierarquia de classes do
ActionScript; todas as outras classes herdam seus métodos e
propriedades. Consulte a entrada Classe Object no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
String
A classe String é uma cobertura para o tipo de dados primitivo de
seqüência de caracteres, que permite o uso dos métodos e propriedades
do objeto String para manipular tipos de valores primitivos de seqüências
de caracteres. Consulte a entrada Classe String no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Classes específicas do Flash Player
As tabelas a seguir listam as classes que são específicas do Flash Player e do modelo de tempo de
execução do Flash. Essas classes normalmente dividem-se em quatro categorias: classes de filme
(que fornecem controle geral de arquivos SWF e Flash Player), classes de mídia (para trabalhar
com som e vídeo), classes cliente/servidor (para trabalhar com XML e outras fontes de dados
externas) e classes de criação (que fornecem controle sobre o ambiente de criação do Flash).
Observação: Essa categorização afeta os locais das classes na caixa de ferramentas Actions,
mas não o modo como você usa essas classes.
Classes de filme
As classes de filme fornecem controle sobre a maioria dos elementos visuais em um arquivo SWF,
incluindo clipes de filme, campos de texto e botões. As classes de filme localizam-se na caixa de
ferramentas Actions na subpasta Built-in Classes > Movie (Filme).
114
Classe
Descrição
Accessibility
A classe Accessibility gerencia a comunicação entre os arquivos SWF e
os aplicativos de leitura de tela. Use métodos dessa classe junto com a
propriedade global _accProps para controlar as propriedades acessíveis
dos clipes de filmes, botões e campos de textos em tempo de execução.
Consulte _accProps e Classe Accessibility no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
Button
Cada botão em um SWF é uma instância da classe Button. A classe
Button fornece métodos, propriedades e manipuladores de eventos para
trabalhar com botões. Consulte a entrada Classe Button no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Color
A classe Color permite que você obtenha e defina os valores de cores
RGB dos objeto do clipe de filme. Para obter mais informações, consulte
a entrada Classe Color em Capítulo 12, “Dicionário do ActionScript”,
na página 215. Para obter um exemplo do uso da classe Color com o
objetivo de alterar a cor de clipes de filmes, consulte “Definindo valores
de cores” na página 97.
Capítulo 6: Usando as classes internas
Classe
Descrição
ContextMenu
A classe ContextMenu permite que você controle o conteúdo do menu
de contexto do Flash Player. Você pode associar os objeto ContextMenu
separados a objeto MovieClip, Button ou TextField usando a
propriedade menu disponível para essas classes. Também é possível
adicionar itens de menu personalizados a um objeto ContextMenu
usando a classe ContextMenuItem. Consulte Classe ContextMenu e as
entradas Classe ContextMenuItem no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
ContextMenuItem
A classe ContextMenuItem permite que você crie novos itens de menu
que aparecem no menu de contexto do Flash Player. Adicione novos
itens de menu criados com essa classe ao menu de contexto do Flash
Player usando a classe ContextMenu. Consulte Classe ContextMenu e
as entradas Classe ContextMenuItem no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
Key
A classe Key fornece métodos e propriedades para obter informações
sobre o teclado e os pressionamentos de tecla. Para obter mais
informações, consulte a entrada Classe key em Capítulo 12, “Dicionário
do ActionScript”, na página 215. Para obter um exemplo da captura de
pressionamentos de tecla para criar um SWF interativo, consulte
“Capturando pressionamentos de teclas” na página 93.
LocalConnection
A classe LocalConnection permite a comunicação entre dois SWFs
executados no mesmo computador. Consulte a entrada Classe
LocalConnection no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Mouse
A classe Mouse fornece controle sobre o mouse em um SWF; por
exemplo, essa classe permite que você oculte ou mostre o ponteiro do
mouse. Para obter mais informações, consulte a entrada Classe Mouse
em Capítulo 12, “Dicionário do ActionScript”, na página 215. Para obter
um exemplo do uso da classe Mouse, consulte “Criando um ponteiro de
mouse personalizado” na página 90.
MovieClip
Cada clipe de filme em um filme do Flash é uma instância da classe
MovieClip. Use os métodos e propriedades dessa classe para controlar
objeto de clipe de filme. Consulte Capítulo 7, “Trabalhando com clipes
de filme”, na página 119 e a entrada Classe MovieClip no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
MovieClipLoader
A classe MovieClipLoader permite que você acompanhe o andamento
do download de arquivos SWF e JPEG usando um mecanismo de
evento para o ouvinte. Consulte “Pré-carregando arquivos SWF e
JPEG” na página 209 e a entrada Classe MovieClipLoader no
Capítulo 12, “Dicionário do ActionScript”, na página 215.
PrintJob
A classe PrintJob permite que você imprima o conteúdo renderizado
dinamicamente e documentos de várias páginas. Consulte a entrada
Classe PrintJob no Capítulo 12, “Dicionário do ActionScript”,
na página 215 e “Using the ActionScript PrintJob class” (Usando a
classe PrintJob do ActionScript) em Usando a Ajuda do Flash.
Visão geral das classes internas
115
116
Classe
Descrição
Selection
A classe Selection permite que você obtenha e defina o foco, os
intervalos de seleção e os pontos de inserção do campo de texto.
Consulte a entrada Classe Selection no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
SharedObject
A classe SharedObject fornece o armazenamento de dados local no
computador do cliente. Consulte a entrada Classe SharedObject no
Capítulo 12, “Dicionário do ActionScript”, na página 215.
Stage
A classe Stage fornece informações sobre dimensões do arquivo SWF,
alinhamento, modos de escala e reporta eventos de redimensionamento
do Stage. Consulte a entrada Classe Stage no Capítulo 12, “Dicionário
do ActionScript”, na página 215.
System
A classe System fornece informações sobre o Flash Player e o sistema
em que o Flash Player está em execução (por exemplo, resolução da tela
e linguagem do sistema atual). Ela também permite que você mostre ou
oculte o painel Settings (Configurações) do Flash Player e modifique as
configurações de segurança do SWF. Consulte a entrada Classe
System no Capítulo 12, “Dicionário do ActionScript”, na página 215.
TextField
A classe TextField fornece controle sobre os campos de texto dinâmicos
e de entrada. Consulte Capítulo 8, “Trabalhando com texto”,
na página 135 e a entrada Classe TextField no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
TextField.StyleSheet
A classe TextField.StyleSheet (uma “classe interna” à classe TextField)
permite que você crie e aplique estilos de texto CSS ao texto em formato
HTML ou XML. Consulte “Formatando o texto com Cascading Style
Sheet” na página 139 e a entrada Classe TextField.StyleSheet no
Capítulo 12, “Dicionário do ActionScript”, na página 215.
TextFormat
A classe TextFormat permite que você aplique estilos de formatação aos
caracteres ou parágrafos em um objeto TextField. Consulte “Usando a
classe TextFormat” na página 138 e a entrada Classe TextFormat em
Capítulo 12, “Dicionário do ActionScript”, na página 215.
Capítulo 6: Usando as classes internas
Classes de mídia
As classes de mídia fornecem controle da reprodução de som e vídeo em um arquivo SWF, bem
como acesso ao microfone e à câmera do usuário, se estiverem instalados. Essas classes localizam-se
na subpasta Built-In Classes > Media (Mídia) na caixa de ferramentas Actions.
Classe
Descrição
Camera
A classe Camera fornece acesso à câmera do usuário, se houver uma
instalada. Quando usado com o Flash Communication Server MX, o
arquivo SWF pode capturar, transmitir e gravar imagens e vídeo da
câmera de um usuário. Consulte a entrada Classe Camera no
Capítulo 12, “Dicionário do ActionScript”, na página 215.
Microphone
A classe Microphone fornece acesso ao microfone do usuário, se houver
um instalado. Quando usado com o Flash Communication Server MX, o
SWF pode transmitir e gravar áudio do microfone de um usuário.
Consulte a entrada Classe Microphone no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
NetConnection
A classe NetConnection é usada para estabelecer uma conexão de fluxo
local para reproduzir um arquivo Flash Video (FLV) de um endereço
HTTP ou do sistema de arquivos local. Para obter mais informações,
consulte a entrada Classe NetConnection em Capítulo 12, “Dicionário do
ActionScript”, na página 215. Para obter mais informações sobre a
reprodução de arquivos FLV na Internet, consulte “Reproduzindo
arquivos FLV externos dinamicamente” na página 206.
NetStream
A classe NetStream é usada para controlar a reprodução de arquivos
FLV. Para obter mais informações, consulte a entrada Classe NetStream
em Capítulo 12, “Dicionário do ActionScript”, na página 215. Para obter
mais informações sobre a reprodução de arquivos FLV na Internet,
consulte “Reproduzindo arquivos FLV externos dinamicamente”
na página 206.
Sound
A classe Sound fornece controle sobre os sons em um SWF. Para obter
mais informações, consulte a entrada Classe Sound em Capítulo 12,
“Dicionário do ActionScript”, na página 215. Para obter um exemplo do
uso da classe Sound para criar controladores de volume e balanço,
consulte “Criando controles de som” na página 99.
Video
A classe Video é usada para exibir objeto de vídeo em um SWF.
Consulte a entrada Classe Video no Capítulo 12, “Dicionário do
ActionScript”, na página 215.
Visão geral das classes internas
117
Classes de cliente/servidor
A tabela a seguir lista as classes que permitem o envio e recebimento de dados de fontes externas
ou a comunicação com os servidores de aplicativos por FTP, HTTP ou HTTPS.
Observação: No Flash Player 7, um SWF pode carregar dados apenas do mesmo domínio do qual
for atendido. Para obter mais informações, consulte “Recursos de segurança do Flash Player”
na página 195 e “Sobre a autorização de acesso a dados entre domínios” na página 197.
Essas classes localizam-se na subpasta Built-In Classes > Client/Server (Cliente/Servidor) no
painel Actions.
LoadVars
A classe LoadVars é uma alternativa à ação loadVariables() para
transferir variáveis entre um arquivo SWF e um servidor em pares nome/
valor. Consulte “Usando a classe LoadVars” na página 186 e a entrada
Classe LoadVars no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
XML
A classe XML estende a classe XMLNode e fornece métodos,
propriedades e manipuladores de eventos para o trabalho com dados em
formato XML, incluindo o carregamento e a análise de XML externo, a
criação de novos documentos XML e a navegação de árvores de
documentos XML. Consulte “Usando a classe XML” na página 188 e a
entrada Classe XML no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
XMLNode
A classe XMLNode representa um único nó em uma árvore de
documentos XML. Trata-se da superclasse da classe XML. Consulte a
entrada Classe XMLNode no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
XMLSocket
A classe XMLSocket permite que você crie uma conexão de soquete
persistente com outro computador para transferência de dados de baixa
latência, como aqueles necessários para aplicativos de bate-papo em
tempo real. Consulte “Usando a classe XMLSocket” na página 191 e a
entrada Classe XMLSocket no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Classes de autoridade
As classes de criação estão disponíveis apenas no ambiente de criação do Flash. Essas classes
localizam-se na subpasta Built-In Classes > Authoring (Criação) na caixa de ferramentas Actions.
118
Classe
Descrição
CustomActions
A classe CustomActions permite que você gerencie qualquer ação do
cliente registrada com a ferramenta de criação. Consulte a entrada
Classe CustomActions no Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Live Preview
Apesar de não ser uma classe, o recurso Live Preview (Visualização ao
vivo), listado em Built-in Classes, na caixa de ferramentas Actions,
fornece uma única função chamada onUpdate, que é usada pelos
desenvolvedores de componente. Consulte onUpdate no Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Capítulo 6: Usando as classes internas
CAPÍTULO 7
Trabalhando com clipes de filme
Os clipes de filme são arquivos SWF em miniatura que funcionam independentemente uns dos
outros e da Timeline (Linha de tempo) que os contém. Por exemplo, se a Timeline principal tiver
somente um quadro, e um clipe de filme nesse quadro tiver dez quadros, cada quadro do clipe de
filme será reproduzido quando o SWF principal for reproduzido. Um clipe de filme pode, por sua
vez, conter outros clipes de filme ou clipes aninhados. Os clipes de filme aninhados dessa maneira
têm um relacionamento hierárquico, no qual o clipe pai contém um ou mais clipes filho.
Cada instância de clipe de filme tem um nome, nome da instância, que a identifica exclusivamente
como um objeto que pode ser controlado com o ActionScript. Especificamente, o nome da
instância a identifica como um objeto do tipo de classe MovieClip. Você usa as propriedades e
métodos da classe MovieClip para controlar a aparência e o comportamento dos clipes de filme
durante a execução.
Pense nos clipes de filme como objeto autônomos que podem responder aos eventos, enviar
mensagens para outros objeto do clipe de filme, manter seu estado e gerenciar seus clipes filho.
Dessa maneira, os clipes de filme fornecem o alicerce da arquitetura baseada em componente no
Macromedia Flash MX 2004 e no Macromedia Flash MX Professional 2004. Na verdade, os
componentes disponíveis no painel Components (Componentes), em Window (Janela) >
Development Panels (Painéis de desenvolvimento) > Components, são clipes de filme sofisticados
que foram projetados e programados para se parecerem e se comportarem de certas maneiras.
Para obter informações sobre a criação de componentes, consulte Usando componentes.
119
Sobre o controle de clipes de filme com o ActionScript
Você pode usar as funções globais do ActionScript ou os métodos da classe MovieClip para
realizar tarefas nos clipes de filme. Alguns métodos do MovieClip realizam as mesmas tarefas que
as funções do mesmo nome; outros métodos do MovieClip, como hitTest() e swapDepths(),
não têm nomes de função correspondentes.
O exemplo a seguir ilustra a diferença entre usar um método e usar uma função. Os dois
comandos duplicam a instância my_mc, nomeiam o novo clipe newClip e colocam-no em uma
profundidade 5.
my_mc.duplicateMovieClip("newClip", 5);
duplicateMovieClip("my_mc", "newClip", 5);
Quando uma função e um método oferecem comportamentos semelhantes, você pode controlar
os clipes de filme usando qualquer um dos dois. A opção escolhida dependerá de sua preferência e
familiaridade com a criação de scripts no ActionScript. Se você usar uma função ou um método,
a Timeline de destino deverá ser carregada no Flash Player quando a função ou o método for
chamado.
Para usar um método, chame-o usando o caminho de destino do nome da instância, seguido de
um ponto e, depois, do nome do método e dos parâmetros, como nos comandos a seguir:
myMovieClip.play();
parentClip.childClip.gotoAndPlay(3);
No primeiro comando, play() move a reprodução na instância myMovieClip. No segundo
comando, o método gotoAndPlay() envia a reprodução em childClip (que é filho da instância
parentClip) para o quadro 3 e continua a mover a reprodução.
As funções globais que controlam uma Timeline têm um parâmetro target que permite
especificar o caminho de destino para a instância que você deseja controlar. Por exemplo, no script
a seguir, startDrag() destina-se à instância customCursor e torna-a arrastável:
on(press){
startDrag("customCursor");
}
As funções a seguir destinam-se aos clipes de filme: loadMovie(), unloadMovie(),
loadVariables(), setProperty(), startDrag(), duplicateMovieClip() e
removeMovieClip(). Para usar essas funções, você deve inserir um caminho de destino no
parâmetro target da função para indicar o destino da função.
Os métodos MovieClip a seguir podem controlar clipes de filme ou níveis carregados, e não têm
funções equivalentes: MovieClip.attachMovie(), MovieClip.createEmptyMovieClip(),
MovieClip.createTextField(), MovieClip.getBounds(), MovieClip.getBytesLoaded(),
MovieClip.getBytesTotal(), MovieClip.getDepth(), MovieClip.getInstanceAtDepth(),
MovieClip.getNextHighestDepth(), MovieClip.globalToLocal(),
MovieClip.localToGlobal(), MovieClip.hitTest(), MovieClip.setMask(),
MovieClip.swapDepths().
Para obter mais informações sobre essas funções e métodos, consulte Capítulo 12, “Dicionário do
ActionScript”, na página 215.
120
Capítulo 7: Trabalhando com clipes de filme
Chamando vários métodos em um único clipe de filme
Você pode usar o comando with para endereçar um clipe de filme uma vez e executar uma série
de métodos nesse clipe. O comando with funciona com todos os objeto do ActionScript,
(por exemplo, Array, Color e Sound), e não somente com clipes de filme.
O comando with requer um objeto como parâmetro. O objeto especificado é adicionado ao final
do caminho de destino atual. Todas as ações aninhadas em um comando with são executadas no
novo caminho de destino ou escopo. Por exemplo, no script a seguir, o comando with recebe o
objeto donut.hole para alterar as propriedades de hole:
with (donut.hole){
_alpha = 20;
_xscale = 150;
_yscale = 150;
}
O script comporta-se como se os comandos dentro do comando with fossem chamados da
Timeline da instância hole. O código acima é equivalente ao seguinte:
donut.hole._alpha = 20;
donut.hole._xscale = 150;
donut.hole._yscale = 150;
O código acima também é equivalente ao seguinte:
with (donut){
hole._alpha = 20;
hole._xscale = 150;
hole._yscale = 150;
}
Carregando e descarregando arquivos SWF adicionais
Para reproduzir os arquivos SWF adicionais sem fechar o Flash Player, ou para alternar os SWFs
sem carregar outra página HTML, você pode usar a função global loadMovie() ou o método
loadMovie() da classe MovieClip. Você também pode usar loadMovie() para enviar variáveis
para um script CGI, que gera um arquivo SWF como sua saída CGI. Ao carregar um SWF, você
pode especificar um nível ou clipe de filme de destino no qual o SWF será carregado. Se você
carregar um SWF em um destino, o SWF carregado herdará as propriedades do clipe de filme de
destino. Após o filme ser carregado, você poderá alterar essas propriedades.
O método unloadMovie() remove um SWF carregado anteriormente pelo loadMovie().
Descarregar explicitamente SWFs com unloadMovie() assegura uma transição suave entre SWFs
e pode diminuir a memória exigida pelo Flash Player.
Use loadMovie() para efetuar qualquer uma das seguintes ações:
• Reproduzir uma seqüência de faixas de propaganda que sejam arquivos SWF, colocando uma
função loadMovie no final de cada arquivo SWF para carregar o próximo SWF.
• Desenvolver uma interface ramificada para permitir que o usuário escolha entre diferentes
•
arquivos SWF.
Criar uma interface de navegação com controles de navegação no nível 0 que carreguem outros
níveis. O carregamento de níveis produz transições mais suaves do que o carregamento de
novas páginas HTML em um navegador.
Para obter mais informações sobre o carregamento de filmes, consulte “Carregando SWFs e
JPEGs externos” na página 202.
Carregando e descarregando arquivos SWF adicionais
121
Especificando uma Timeline raiz para arquivos SWF carregados
A propriedade _root do ActionScript especifica ou retorna uma referência para a Timeline raiz de
um arquivo SWF. Se um SWF tem vários níveis, a Timeline raiz está no nível que contém o script
em execução atualmente. Por exemplo, se um script no nível 1 avaliar _root, será retornado
_level1. Entretanto, a Timeline especificada por _root pode mudar dependendo de o SWF
estar sendo executado independentemente (em seu próprio nível) ou de ter sido carregado em
uma instância do clipe de filme por uma chamada loadMovie().
Por exemplo, considere um arquivo container.swf que tem uma instância do clipe de filme
em sua Timeline principal. O arquivo container.swf declara uma variável userName
na Timeline principal; o mesmo script carrega outro arquivo contents.swf no clipe de filme
target_mc.
target_mc
// Em container.swf:
_root.userName = "Timóteo";
target_mc.loadMovie("contents.swf");
O SWF carregado, contents.swf, também declara uma variável userName na Timeline raiz.
// Em content.swf:
_root.userName = "Mary";
Quando o contents.swf for carregado no clipe de filme do container.swf, o valor de userName que
estiver anexado à Timeline raiz do SWF hospedeiro (container.swf ) será definido como "Mary".
Esse procedimento pode fazer com que o código de container.swf (bem como de contents.swf )
funcione inadequadamente.
Para forçar o _root a avaliar sempre na Timeline do SWF carregado, em vez de na Timeline raiz
real, use a propriedade _lockroot. Essa propriedade pode ser definida carregando o SWF ou com
o SWF sendo carregado. Quando _lockroot é definida como true em uma instância de clipe de
filme, esse clipe de filme funciona como _root de qualquer SWF carregado nele. Quando
_lockroot é definida como true em um SWF, esse SWF funciona como sua própria raiz,
independentemente do outro SWF que o carrega. Qualquer clipe de filme e número de clipe de
filme pode definir _lockroot como true. O valor predefinido dessa propriedade é false.
Por exemplo, o autor de container.swf pode anexar o seguinte código ao clipe de filme target_mc :
// Anexado ao clipe de filme target_mc:
onClipEvent (load) {
this._lockroot = true;
}
Esse procedimento garantirá que as referências a _root em contents.swf, ou qualquer SWF
carregado no target_mc, estejam relacionadas à própria Timeline, não à Timeline raiz real do
container.swf.
Da mesma maneira, o autor do contents.swf pode adicionar o código a seguir à Timeline
principal.
// Em contents.swf:
this._lockroot = true;
Esse procedimento garantirá que, independentemente de onde o contents.swf for carregado,
qualquer referência que ele fizer a _root estará relacionada à sua própria Timeline principal, e não
àquela do SWF hospedeiro.
Para obter mais informações, consulte MovieClip._lockroot na página 568.
122
Capítulo 7: Trabalhando com clipes de filme
Carregando JPEGs em clipes de filme
Você pode usar a função loadMovie(), ou o método MovieClip de mesmo nome, para carregar
os arquivos de imagem JPEG em uma instância do clipe de filme. Também é possível usar a
função loadMovieNum() para carregar um JPEG no nível SWF.
Quando você carrega uma imagem em um clipe de filme, o canto superior esquerdo da imagem é
colocado no ponto de registro do clipe de filme. Como geralmente esse ponto de registro é o
centro do clipe de filme, a imagem carregada pode não aparecer centralizada. Além disso, quando
você carrega uma imagem em uma Timeline raiz, o canto esquerdo superior da imagem é
colocado no Stage. A imagem carregada herda a rotação e o dimensionamento do clipe de filme,
mas o conteúdo original do clipe do filme é removido.
Para obter mais informações, consulte “Carregando SWFs e JPEGs externos” na página 202,
e loadMovieNum()
na página 464.
loadMovie() na página 463, MovieClip.loadMovie() na página 565
Alterando a posição e a aparência de um clipe de filme
Para alterar as propriedades de um clipe de filme durante sua reprodução, escreva um comando
que atribua um valor a uma propriedade ou use a função setProperty(). Por exemplo, o código
a seguir define a rotação da instância mc como 45:
mc._rotation = 45;
Esse código é equivalente ao código a seguir, que usa a função setProperty():
setProperty("mc", _rotation, 45);
Algumas propriedades, chamadas somente leitura, possuem valores que podem ser lidos, porém
não definidos. (Essas propriedades são especificadas como somente leitura nas entradas do
Dicionário ActionScript.) As propriedades a seguir são somente leitura: _currentframe,
_droptarget, _framesloaded, _parent, _target, _totalframes, _url, _xmouse e _ymouse.
Você pode criar comandos para definir qualquer propriedade que não seja somente leitura.
O comando a seguir define a propriedade _alpha da instância do clipe de filme wheel que é filha
da instância car:
car.wheel._alpha = 50;
Além disso, você pode criar comandos que obtenham o valor de uma propriedade do clipe de
filme. Por exemplo, o comando a seguir obtém o valor da propriedade _xmouse na Timeline do
nível atual e define a propriedade _x da instância customCursor como esse valor:
onClipEvent (enterFrame){
customCursor._x = _root._xmouse;
}
Esse código é equivalente ao código a seguir, que usa a função getProperty():
onClipEvent (enterFrame){
customCursor._x = getProperty(_root, _xmouse);
}
Alterando a posição e a aparência de um clipe de filme
123
As propriedades _x, _y, _rotation, _xscale, _yscale, _height, _width, _alpha e _visible
são afetadas pelas transformações do pai do clipe de filme e transformam o clipe de filme e todos
os seus filhos. As propriedades _focusrect, _highquality, _quality e _soundbuftime são
globais; elas pertencem somente à Timeline de nível 0. Todas as outras propriedades pertencem
aos clipes de filme ou níveis carregados.
Para obter uma lista de propriedades do clipe de filme, consulte “Resumo das propriedades da
classe MovieClip” na página 533.
Arrastando clipes de filme
Você pode usar a função global startDrag() ou o método MovieClip.startDrag() para tornar
um clipe de filme arrastável. Por exemplo, você pode criar um clipe de filme arrastável para jogos,
funções do tipo arrastar e soltar, interfaces personalizáveis, barras de rolagem e controles
deslizantes.
Um clipe de filme pode ser arrastado até ser parado explicitamente por stopDrag() ou até que
outro clipe de filme seja especificado como destino por startDrag(). Somente um clipe de filme
pode ser arrastado de cada vez.
Para criar um comportamento arrastar e soltar mais complexo, você pode avaliar a propriedade
_droptarget do clipe de filme que está sendo arrastado. Por exemplo, é possível examinar a
propriedade _droptarget para verificar se o clipe de filme foi arrastado para um clipe de filme
específico (por exemplo, um clipe de filme “lata de lixo”) e, em seguida, ativar outra ação. Para
obter informações detalhadas, consulte startDrag() na página 704 ou
MovieClip.startDrag() na página 592.
Criando clipes de filme durante a execução
Você pode não apenas criar instâncias do clipe de filme no ambiente de criação do Flash,
como também pode criá-las durante a execução. O ActionScript fornece três maneiras de criar
novos clipes de filme durante a execução:
• Criando uma instância nova e vazia do clipe de filme
• Duplicando uma instância do clipe de filme existente
• Anexando uma instância de um símbolo da biblioteca de clipes de filme no Stage
Cada instância do clipe de filme criada durante a execução deve ter um nome e um valor de
profundidade (pilha ou ordem z). A profundidade especificada determina como o novo clipe
substitui os outros clipes na mesma Timeline. (Consulte “Gerenciando profundidades do clipe de
filme” na página 128.)
124
Capítulo 7: Trabalhando com clipes de filme
Criando um clipe de filme vazio
Para criar um clipe de filme vazio no Stage, use o método createEmptyMovieClip() da classe
MovieClip. Este método cria um clipe de filme como filho do clipe que chamou o método.
O ponto de registro de um clipe de filme vazio recém-criado é o canto superior esquerdo.
Por exemplo, o código a seguir cria um novo clipe de filme filho new_mc em uma profundidade de
10 pol. no clipe de filme parent_mc.
parent_mc.createEmptyMovieClip("new_mc", 10);
O código a seguir cria um novo clipe de filme canvas_mc na Timeline raiz do SWF no qual o
script é executado, e chama o loadMovie() para carregar um JPEG externo em si mesmo.
_root.createEmptyMovieClip("canvas_mc", 10);
canvas_mc.loadMovie("flowers.jpg");
Para obter mais informações, consulte MovieClip.createEmptyMovieClip() na página 543.
Duplicando ou removendo um clipe de filme
Para duplicar ou remover instâncias do clipe de filme, use as funções globais
duplicateMovieClip() ou removeMovieClip(), ou os métodos da classe MovieClip de mesmo
nome. O método duplicateMovieClip() cria uma nova instância de uma instância existente do
clipe de filme, atribui um novo nome a ela e fornece uma profundidade ou ordem z. Um clipe de
filme duplicado sempre começa no Frame 1 (Quadro 1), mesmo que o clipe original esteja em
outro quadro quando duplicado, e está a frente de todos os clipes de filme predefinidos colocados
na Timeline.
Para excluir um clipe de filme criado com duplicateMovieClip(), use removeMovieClip().
Os clipes de filme duplicados também serão removidos se o clipe de filme pai for excluído.
Para obter mais informações, consulte duplicateMovieClip() na página 408 e removeMovieClip()
na página 657.
Anexando um símbolo de clipe de filme ao Stage
A última maneira de criar instâncias do clipe de filme durante a execução é usar o
attachMovie(). O método attachMovie() anexa a instância de um símbolo de clipe de filme na
biblioteca do SWF ao Stage. O novo clipe torna-se um clipe filho do clipe que o anexou.
Para usar o ActionScript para anexar um símbolo de clipe de filme da biblioteca, você deve
exportar o símbolo do ActionScript e atribuí-lo a um identificador de vinculação exclusivo. Para
isso, use a caixa de diálogo Linkage Properties (Propriedades de vinculação).
O padrão é que todos os clipes de filme exportados para uso com o ActionScript sejam carregados
antes do primeiro quadro do arquivo SWF que os contêm. Isso pode criar um atraso antes da
reprodução do primeiro quadro. Ao atribuir um identificador de vinculação a um elemento, você
também pode especificar se o conteúdo deverá ser adicionado antes do primeiro quadro. Se ele
não for adicionado ao primeiro quadro, será necessário incluir uma instância dele em algum outro
quadro do SWF. Caso contrário, o elemento não será exportado para o arquivo SWF.
Criando clipes de filme durante a execução
125
Para atribuir um identificador de vinculação ao clipe de filme:
1 Selecione Window > Library (Biblioteca) para abrir o painel Library.
2 Selecione um clipe de filme no painel Library.
3 No menu de opções do painel Library, selecione Linkage (Vinculação).
4
5
6
7
8
A caixa de diálogo Linkage Properties é exibida.
Em Linkage, selecione Export for ActionScript (Exportar para ActionScript).
Em Identifier (Identificador), insira uma ID para o clipe de filme.
O padrão é que o identificador seja igual ao nome do símbolo.
Opcionalmente, você pode atribuir uma classe ActionScript 2 ao símbolo de clipe de filme.
(Consulte “Atribuindo uma classe a um símbolo de clipe de filme” na página 131.)
Para não carregar o clipe de filme antes do primeiro quadro, desmarque a opção Export in First
Frame (Exportar no primeiro quadro).
Se você desmarcar essa opção, coloque uma instância do clipe de filme no quadro da Timeline
no qual você deseja que ele esteja disponível. Por exemplo, se o script que você está escrevendo
não fizer referência ao clipe de filme até o Frame 10 (Quadro 10), coloque uma instância do
símbolo no quadro ou antes dele na Timeline.
Clique em OK.
Depois de atribuir um identificador de vinculação a um clipe de filme, você pode anexar uma
instância do símbolo ao Stage durante a execução usando attachMovie().
Para anexar um clipe de filme a outro:
1 Atribua um identificador de vinculação a um símbolo da biblioteca de clipes de filme, da
2
3
4
5
maneira descrita anteriormente.
Com o painel Actions (Ações) aberto, a partir de Window > Development Panels > Actions,
selecione um quadro na Timeline.
No painel Script do painel Actions, digite o nome do clipe de filme ou nível ao qual você deseja
anexar o novo clipe de filme. Por exemplo, para anexar o clipe de filme à Timeline, digite _root.
Na caixa de ferramentas Actions (à esquerda do painel Actions), clique nas categorias Built-in
Classes (Classes internas), Movie (Filme) e MovieClip, e clique duas vezes em attachMovie().
Usando as referências de código que aparecem como guia, insira os valores dos seguintes
parâmetros:
■ Para idName, especifique o nome do identificador inserido na caixa de diálogo Linkage
Properties.
■ Para newName, insira um nome de instância para o clipe anexado a fim de designá-lo.
■ Para depth, insira o nível no qual o filme duplicado será anexado ao clipe de filme. Cada
filme anexado possui sua própria ordem de empilhamento, sendo que o nível 0 é o nível do
clipe do filme de origem. Os clipes de filme anexados estão sempre sobre o clipe de filme
original. Exemplo:
myMovieClip.attachMovie("calif", "california", 10);
Para obter mais informações, consulte MovieClip.attachMovie() na página 537.
126
Capítulo 7: Trabalhando com clipes de filme
Adicionando parâmetros aos clipes de filme criados
dinamicamente
Ao criar ou duplicar um clipe de filme dinamicamente usando MovieClip.attachMovie() e
MovieClip.duplicateMovie(), você pode preencher o clipe de filme com os parâmetros de
outro objeto. O parâmetro initObject de attachMovie() e duplicateMovie() permite que os
clipes criados dinamicamente recebam parâmetros de clipe. O parâmetro initObject é opcional.
Para obter mais informações, consulte MovieClip.attachMovie() na página 537
MovieClip.duplicateMovieClip() na página 548.
e
Para preencher um clipe de filme criado dinamicamente com os parâmetros de um objeto
específico, siga um destes procedimentos:
• Use a sintaxe a seguir com o attachMovie():
myMovieClip.attachMovie(idName, newName, depth [, initObject])
• Use a sintaxe a seguir com o duplicateMovie():
myMovieClip.duplicateMovie(idName, newName, depth [, initObject])
O parâmetro initObject especifica o nome do objeto cujos parâmetros você deseja usar para
preencher o clipe de filme criado dinamicamente.
Para preencher um clipe de filme com parâmetros usando attachMovie():
1 Em um novo documento Flash, crie um novo símbolo de clipe de filme selecionando Insert
(Inserir) > New Symbol (Novo símbolo). Digite dynamic na caixa de texto Symbol Name
(Nome do símbolo) e selecione o comportamento Movie Clip (Clipe de filme).
2 Dentro do símbolo, crie um campo de texto dinâmico no Stage com um nome de instância
name_txt.
3 Selecione o primeiro quadro da Timeline do clipe de filme e abra o painel Actions, em
Window > Development Panels > Actions.
4 Crie uma nova variável name e atribua seu valor à propriedade text de name_txt, como
descrito aqui:
var name:String;
name_txt.text = name;
5 Selecione Edit (Editar) > Edit Document (Editar documento) para voltar à Timeline principal.
6 Selecione o símbolo de clipe de filme na biblioteca e selecione Linkage Properties no menu de
opções do painel Library.
A caixa de diálogo Linkage Properties é exibida.
7 Selecione a opção Export for ActionScript e clique em OK.
8 Selecione o primeiro quadro da Timeline principal e adicione o código a seguir ao painel Script
do painel Actions:
_root.attachMovie("dynamic", "newClipName", 10, {name:"Erick"});
9 Teste o filme em Control (Controlar) > Test Movie (Testar filme). O nome especificado em
attachMovie()
é exibido no novo campo de texto do clipe de filme.
Adicionando parâmetros aos clipes de filme criados dinamicamente
127
Gerenciando profundidades do clipe de filme
Cada clipe de filme tem seu próprio espaço de ordem z que determina como os objeto são
sobrepostos no SWF pai ou no clipe de filme. Cada clipe de filme tem um valor de profundidade
associado, que determina se ele será renderizado na frente ou atrás de outros clipes de filme na
mesma Timeline do clipe de filme. Ao criar um novo clipe de filme durante a execução usando
MovieClip.attachMovie(), MovieClip.duplicateMovieClip() ou
MovieClip.createEmptyMovieClip(), especifique sempre uma profundidade para o novo clipe
como um parâmetro de método. Por exemplo, o código a seguir anexa um novo clipe de filme à
Timeline de um clipe de filme chamado container_mc, com um valor de profundidade 10.
container_mc.attachMovie("symbolID", "clip_1", 10);
Esse procedimento cria um novo clipe de filme com uma profundidade 10 no espaço da ordem z
de container_mc.
Por exemplo, o código a seguir anexa dois novos clipes de filme ao container_mc. O primeiro
clipe, o clip_1, será renderizado depois do clip_2, porque ele recebeu um valor de profundidade
inferior.
container_mc.attachMovie("symbolID", "clip_1", 10);
container_mc.attachMovie("symbolID", "clip_2", 15);
Os valores de profundidade para clipes de filme podem variar de -16384 a 1048575.
A classe MovieClip fornece vários métodos para gerenciar as profundidades do clipe de filme:
consulte MovieClip.getNextHighestDepth() na página 555,
MovieClip.getInstanceAtDepth() na página 554, MovieClip.getDepth() na página 554 e
MovieClip.swapDepths() na página 594.
Determinando a próxima profundidade mais alta disponível
Para determinar a próxima profundidade mais alta disponível em um clipe de filme, use
O valor inteiro retornado por esse método indica a
próxima profundidade disponível que será renderizada na frente de todos os outros objeto no
clipe de filme.
MovieClip.getNextHighestDepth().
O código a seguir cria um novo clipe de filme com uma profundidade 10, na Timeline do clipe de
filme menus_mc. Ele determina a próxima profundidade mais alta disponível no mesmo clipe de
filme e cria um novo clipe de filme nessa profundidade.
menus_mc.attachMovie("menuClip","file_menu", 10);
var nextDepth = menus_mc.getNextHighestDepth();
menus_mc.attachMovie("menuClip", "edit_menu", nextDepth);
Nesse caso, a variável nextDepth contém o valor 11, porque essa é a próxima profundidade mais
alta disponível para o clipe de filme menus_mc.
Para obter a profundidade ocupada mais alta atual, subtraia 1 do valor retornado por
getNextHighestDepth(), como descrito na próxima seção (consulte “Determinando a instância
em uma profundidade particular” na página 129).
128
Capítulo 7: Trabalhando com clipes de filme
Determinando a instância em uma profundidade particular
Para determinar a instância em uma profundidade particular, use
Esse método retorna uma referência para a instância na
profundidade especificada.
MovieClip.getInstanceAtDepth().
O código a seguir combina getNextHighestDepth() e getInstanceAtDepth() para determinar
o clipe de filme na profundidade ocupada mais alta (atual) na Timeline raiz.
var highestOccupiedDepth = _root.getNextHighestDepth() - 1;
var instanceAtHighestDepth = _root.getInstanceAtDepth(highestOccupiedDepth);
Para obter mais informações, consulte MovieClip.getInstanceAtDepth() na página 554.
Determinando a profundidade de uma instância
Para determinar a profundidade de uma instância do clipe de filme, use MovieClip.getDepth().
O código a seguir faz a iteração de todos os clipes de filme em uma Timeline principal do SWF e
exibe cada nome de instância do clipe e o valor da profundidade no painel Output (Saída).
for(each in _root) {
var obj = _root[each];
if(obj instanceof MovieClip) {
var objDepth = obj.getDepth();
trace(obj._name + ":" + objDepth)
}
}
Para obter mais informações, consulte MovieClip.getDepth() na página 554.
Trocando profundidades do clipe de filme
Para trocar as profundidades de dois clipes de filme na mesma Timeline, use
Para obter mais informações, consulte MovieClip.swapDepths()
na página 594.
MovieClip.swapDepths().
Desenhando formas com o ActionScript
Você pode usar métodos da classe MovieClip para desenhar linhas e preenchimentos no Stage.
Isso permite criar ferramentas de desenho para usuários e desenhar formas no filme em resposta a
eventos. Os métodos de desenho são beginFill(), beginGradientFill(), clear(),
curveTo(), endFill(), lineTo(), lineStyle() e moveTo().
Você pode usar os métodos de desenho com qualquer clipe de filme. No entanto, se usar os
métodos de desenho com um clipe de filme criado no modo de criação, esses métodos serão
executados antes de o clipe ser desenhado. Ou seja, o conteúdo criado no modo de criação é
desenhado por cima do conteúdo desenhado com os métodos de criação.
É possível usar clipes de filme com métodos de desenho como máscaras, porém, como em todas as
máscaras de clipes de filme, os traços são ignorados.
Desenhando formas com o ActionScript
129
Para desenhar uma forma:
1 Use createEmptyMovieClip() para criar um clipe de filme vazio no Stage.
O novo clipe de filme é um filho de um clipe de filme existente ou da Timeline principal,
como no exemplo a seguir:
_root.createEmptyMovieClip ("triangle", 1);
2 Use o clipe de filme vazio para chamar métodos de desenho.
O exemplo a seguir desenha um triângulo com linhas em magenta de cinco pontos e nenhum
preenchimento:
with (_root.triangle) {
lineStyle (5, 0xFF00FF, 100);
moveTo( 200, 200 );
lineto(300,300);
lineto(100,300);
lineTo( 200, 200 );
}
Para obter informações detalhadas sobre esses métodos, consulte as entradas em Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Usando clipes de filme como máscaras
É possível usar um clipe de filme como máscara para criar um furo pelo qual o conteúdo de outro
clipe de filme fica visível. O clipe de filme da máscara reproduz todos os quadros na sua Timeline
como em um clipe de filme comum. Você pode tornar o clipe de filme da máscara arrastável,
animá-lo ao longo de uma guia de movimento, usar formas separadas dentro de uma única
máscara ou redimensionar uma máscara dinamicamente. Pode também usar o ActionScript para
ativar ou desativar uma máscara.
Não é possível usar uma máscara para mascarar outra máscara. Também não é possível definir a
propriedade _alpha de um clipe de filme de máscara. Somente preenchimentos são usados em
um clipe de filme de máscara. Os traços são ignorados.
Para criar uma máscara:
1 No Stage, escolha um clipe de filme a ser mascarado.
2 No inspetor Property (Propriedades), insira um nome de instância para o clipe de filme,
3
4
5
6
como image.
Crie um clipe de filme para ser uma máscara. Forneça a ele um nome de instância no inspetor
Properties, como mask.
O clipe de filme mascarado será revelado em todas as áreas opacas (não transparentes) do clipe
de filme que está funcionando como uma máscara.
Selecione Frame 1 na Timeline.
Abra o painel Actions em Window > Development Panels > Actions se ainda não estiver aberto.
No painel Actions, insira o seguinte código:
image.setMask(mask);
Para obter informações detalhadas, consulte MovieClip.setMask() na página 591.
130
Capítulo 7: Trabalhando com clipes de filme
Sobre a máscara de fontes de dispositivo
Você pode usar um clipe de filme para mascarar o texto que é definido em uma fonte de
dispositivo. Para que a máscara do clipe de filme de uma fonte de dispositivo funcione
adequadamente, o usuário deve ter a versão 40 ou superior do Flash Player 6.
Quando você usa um clipe de filme para mascarar o texto definido em uma fonte de dispositivo,
a caixa delimitadora retangular da máscara é usada como forma. Ou seja, se você criar uma
máscara do clipe de filme não retangular para o texto da fonte de dispositivo no ambiente de
criação do Flash, a máscara que aparece no SWF terá a forma da caixa delimitadora retangular da
máscara, não a forma da própria máscara.
Você só pode mascarar as fontes de dispositivo usando um clipe de filme como máscara. Não é
possível mascarar as fontes de dispositivo usando uma camada de máscara no Stage.
Identificando eventos do clipe de filme
Os clipes de filme podem responder aos eventos do usuário, como cliques do mouse e
pressionamentos de tecla, bem como aos eventos no nível do sistema, como o carregamento inicial
de um clipe de filme no Stage. O ActionScript fornece duas maneiras de identificar os eventos do
clipe de filme: por meio dos métodos do identificador de eventos e por meio dos identificadores
de eventos onClipEvent() e on(). Para obter mais informações, consulte Capítulo 4,
“Manipulando eventos”, na página 79.
Atribuindo uma classe a um símbolo de clipe de filme
Usando o ActionScript 2, você pode criar sua própria classe, que prolonga o comportamento da
classe interna MovieClip, e atribuir essa classe a um símbolo da biblioteca de clipes de filme
usando a caixa de diálogo Linkage Properties. Sempre que você criar uma instância do clipe de
filme à qual a classe é atribuída, ela assumirá as propriedades e comportamentos definidos pela
classe atribuída a ela. (Para obter mais informações sobre o ActionScript 2, consulte Capítulo 9,
“Criando classes com o ActionScript 2”, na página 159.)
Em uma subclasse da classe MovieClip, você pode fornecer definições de método para os métodos
internos MovieClip e identificadores de eventos, como onEnterFrame e onRelease.
No procedimento a seguir, você criará uma classe MoveRight que prolonga a classe MovieClip; a
MoveRight define um identificador onPress que move os 20 pixels do clipe para a direita sempre
que o usuário clica no clipe de filme. No segundo procedimento, você criará um símbolo de clipe
de filme em um novo documento Flash (FLA) e atribuirá a classe MoveRight a esse símbolo.
Atribuindo uma classe a um símbolo de clipe de filme
131
Para criar uma subclasse de clipe de filme:
1 Crie uma nova pasta BallTest.
2 Crie um novo arquivo ActionScript seguindo um destes procedimentos:
No Flash MX Professional 2004, selecione File (Arquivo) > New (Novo), e selecione o
arquivo ActionScript da lista de tipos de documento.
■ No Flash MX 2004, crie um novo arquivo de texto no seu editor de texto preferido.
3 Insira o código a seguir no script:
■
// classe MoveRight -- move o clipe para a direita 5 pixels a cada quadro
class MoveRight extends MovieClip {
function onPress() {
this._x += 20;
}
}
4 Salve o documento como MoveRight.as na pasta BallTest.
Para atribuir a classe a um símbolo de clipe de filme:
1 No Flash, selecione File > New, selecione Flash Document (Documento do Flash) na lista de
2
3
4
5
6
7
8
132
tipos de arquivo e clique em OK.
Usando a ferramenta Oval, desenhe um círculo no Stage.
Selecione o círculo e, em seguida, Modify (Modificar) > Convert to Symbol (Converter em
símbolo). Na caixa de diálogo Convert to Symbol, selecione Movie Clip como comportamento
do símbolo e insira Ball (Bola) na caixa de texto Name (Nome).
Abra o painel Library em Window > Library e selecione o símbolo Ball.
Selecione Linkage no menu de opções do painel Library para abrir a caixa de diálogo Linkage
Properties.
Na caixa de diálogo Linkage Properties, selecione a opção Export for ActionScript e digite
MoveRight na caixa de texto AS 2.0 Class. Clique em OK.
Salve o arquivo como Ball.fla na pasta BallTest (a mesma pasta que contém o
arquivo MoveRight.as).
Teste o filme em Control > Test Movie.
Sempre que você clicar no clipe de filme ball, ele se moverá 20 pixels para a direita.
Capítulo 7: Trabalhando com clipes de filme
Inicializando as propriedades de classe
No exemplo apresentado anteriormente, você adicionou a instância do símbolo Ball ao Stage
manualmente, ou seja, durante a criação. Como foi discutido anteriormente (consulte
“Adicionando parâmetros aos clipes de filme criados dinamicamente” na página 127), é possível
atribuir parâmetros aos clipes criados durante a execução usando o parâmetro initObject de
attachMovie() e duplicateMovie(). Você pode usar esse recurso para inicializar as
propriedades de classe que está atribuindo a um clipe de filme.
Por exemplo, a classe MoveRightDistance é uma variação da classe MoveRight discutida
anteriormente (consulte “Atribuindo uma classe a um símbolo de clipe de filme” na página 131).
A diferença é uma nova propriedade distance, cujo valor determina quantos pixels um clipe de
filme se move quando é clicado.
// classe MoveRightDistance -- move o clipe para a direita 5 pixels a cada
quadro
class MoveRightDistance extends MovieClip {
// a propriedade distance determina quantos
// pixels o clipe deve se mover a cada pressionamento do mouse
var distance:Number;
function onPress() {
this._x += distance;
}
}
Supondo que essa classe seja atribuída a um símbolo com um identificador de vinculação Ball,
o código a seguir cria duas novas instâncias do símbolo na Timeline raiz do SWF. A primeira
instância, ball_50, move-se 50 pixels sempre que é clicada; a segunda, ball_125, move-se 125
pixels quando é clicada.
_root.attachMovie("Ball", "ball_50", 10, {distance:50});
_root.attachMovie("Ball", "ball_125", 20, {distance:125});
Inicializando as propriedades de classe
133
134
Capítulo 7: Trabalhando com clipes de filme
CAPÍTULO 8
Trabalhando com texto
Um campo de texto dinâmico ou de entrada é uma instância da classe TextField do ActionScript.
Ao criar um campo de texto, você pode atribuir um nome de instância a ele no inspetor Property
(Propriedades). É possível usar o nome de instância em comandos ActionScript para definir,
alterar e formatar o campo de texto e seu conteúdo usando as classes TextField e TextFormat.
Os métodos da classe TextField permitem definir, selecionar e manipular o texto de um campo de
texto dinâmico ou de entrada gerado durante a criação ou execução. Para obter mais informações,
consulte “Usando a classe TextField” na página 136.
O ActionScript também oferece várias maneiras de formatar o texto durante a execução. A classe
TextFormat permite definir a formatação de caractere e parágrafo dos objeto TextField (consulte
“Usando a classe TextFormat” na página 138). O Flash Player também oferece suporte a um
subconjunto de marcas HTML que você pode usar para formatar o texto (consulte “Usando o
texto em formato HTML” na página 148). O Flash Player 7 e versões posteriores oferecem
suporte à marca HTML <img>, que permite incorporar não apenas imagens externas, mas
também arquivos SWF externos e clipes de filme que residam na biblioteca (consulte “Marca
de imagem (<img>)” na página 150).
No Flash Player 7 e versões posteriores, você pode aplicar os estilos CSS (Cascading Style Sheets Folhas de estilos em cascata) aos campos de texto usando a classe TextField.StyleSheet. Você pode
usar as CSS para atribuir estilo às marcas HTML internas, definir novas marcas de formatação ou
aplicar estilos. Para obter mais informações sobre como usar CSS, consulte “Formatando o texto
com Cascading Style Sheet” na página 139.
Também é possível atribuir um texto em formato HTML, que pode opcionalmente usar estilos
CSS, diretamente a um campo de texto. No Flash Player 7 e versões posteriores, o texto HTML
que você atribui a um campo de texto pode conter mídia incorporada (clipes de filme, SWFs e
JPEGs). O texto envolverá a mídia incorporada, como o navegador da Web envolve o texto em
torno da mídia incorporada em um documento HTML. Para obter mais informações, consulte
“Marca de imagem (<img>)” na página 150.
135
Usando a classe TextField
A classe TextField representa qualquer campo de texto dinâmico ou selecionável (editável) criado
com a ferramenta Text (Texto) no Flash. Use os métodos e as propriedades dessa classe para
controlar os campos de texto durante a execução. Os objeto TextField oferecem suporte às
mesmas propriedades que os objeto MovieClip, com exceção das propriedades _currentframe,
_droptarget, _framesloaded e _totalframes. Você pode obter e definir as propriedades,
e chamar os métodos dos campos de texto dinamicamente.
Para controlar um campo de texto dinâmico ou de entrada usando o ActionScript, atribua a ele
um nome de instância no inspetor Property. Em seguida, você pode fazer referência ao campo de
texto com o nome da instância, e usar os métodos e propriedades da classe TextField para
controlar o conteúdo ou a aparência básica do campo de texto. Pode também criar objeto
TextField durante a execução e atribuir a eles nomes de instâncias, usando o método
MovieClip.createTextField(). Para obter mais informações, consulte “Criando campo de
texto durante a execução” na página 137.
Atribuindo texto a um campo de texto durante a execução
Para atribuir texto a um campo de texto, use a propriedade TextField.text.
Para atribuir texto a um campo de texto durante a execução:
1 Usando a ferramenta Text, crie um novo campo de texto no Stage (Palco).
2 Com o campo de texto selecionado, no inspetor Property, em Window (Janela) > Properties,
insira headline_txt na caixa de texto Instance Name (Nome da instância), diretamente abaixo
do menu pop-up Text Type (Tipo de texto) à esquerda do inspetor.
Nomes de instâncias só podem ser compostos de letras, sublinhados (_) e cifrões ($).
3 Na Timeline, selecione o primeiro quadro em Layer 1 e abra o painel Actions, em Window >
Development Panels > Actions.
4 Insira o código a seguir no painel Actions.
headline_txt.text = "O Brasil vence a Copa do mundo";
5 Selecione Control > Test Movie para testar o filme.
Sobre a instância do campo de texto e os nomes de variáveis
No inspetor Property, você pode atribuir um nome de variável, bem como um nome de instância,
a um campo de texto dinâmico ou de entrada. Em seguida, pode fazer referência ao nome da
variável no campo de texto no ActionScript, cujo valor determina o conteúdo do campo de texto.
Entretanto, o nome da instância e o nome da variável de um campo de texto não devem ser
confundidos.
Use o nome de instância atribuído a um campo de texto para chamar métodos, bem como para
obter e definir propriedades nesse campo de texto. Um nome de variável de um campo de texto é
simplesmente uma referência variável ao texto contido nesse campo, e não uma referência a
um objeto.
136
Capítulo 8: Trabalhando com texto
Por exemplo, se você atribuiu a um campo de texto o nome de variável mytextVar, poderá definir
o conteúdo desse campo usando o seguinte código:
var mytextVar = "Este é o texto que aparecerá no campo de texto";
Entretanto, você não pode usar a variável mytextVar para definir a mesma propriedade de texto
para parte do texto de um campo de texto.
//Este exemplo não funcionará
myTextVar.text = "Uma variável de campo de texto não é uma referência de
objeto";
Em geral, use a propriedade TextField.text para controlar o conteúdo de um campo de texto, a
menos que esteja definindo uma versão do Flash Player que não ofereça suporte à classe TextField.
Isso diminuirá as chances de um conflito de nome de variável, que pode resultar em
comportamento inesperado durante a execução.
Criando campo de texto durante a execução
Você pode usar o método createTextField() da classe MovieClip para criar um campo de texto
novo e vazio no Stage durante a execução. O novo campo de texto é anexado à Timeline do clipe
de filme que chama o método. O método createTextField() usa a seguinte sintaxe:
movieClip.createTextField(instanceName, depth, x, y, width, height)
Por exemplo, o código a seguir cria um campo de texto de 300 x 100 pixels chamado test_txt
no ponto (0,0) e uma profundidade (ordem z) de 10.
_root.createTextField("test_txt", 10, 0, 0, 300, 100);
Você usa o nome da instância especificado na chamada createTextField() para acessar os
métodos e propriedades da classe TextField. Por exemplo, o código a seguir cria um novo campo
de texto, test_txt, e modifica suas propriedades para torná-lo um campo de texto com quebra
automática e várias linhas, que se expande para acomodar o texto inserido. Por último, ele atribui
um texto à propriedade text do campo de texto.
_root.createTextField("test_txt", 10, 0, 0, 100, 50);
test_txt.multiline = true;
test_txt.wordWrap = true;
test_txt.autoSize = true;
test_txt.text = "Crie novos campos de texto com o método
MovieClip.createTextField.";
Você pode usar o método TextField.removeTextField() para remover um campo de texto
criado com createTextField(). O método removeTextField() não funciona em um campo
de texto colocado pela Timeline durante a criação.
Para obter mais informações, consulte MovieClip.createTextField() na página 544 e
TextField.removeTextField() na página 763.
Criando campo de texto durante a execução
137
Usando a classe TextFormat
Você pode usar a classe TextFormat do ActionScript para definir as propriedades de formatação de
um campo de texto. A classe TextFormat incorpora as informações de formatação de caractere e
parágrafo. As informações de formatação de caractere descrevem a aparência de caracteres
individuais: nome da fonte, tamanho do ponto, cor e um URL associado. As informações de
formatação de parágrafo descrevem a aparência de um parágrafo: margem esquerda, margem
direita, recuo da primeira linha e alinhamento à esquerda, à direita ou centralizado.
Para usar a classe TextFormat, crie primeiro um objeto TextFormat e defina seus estilos de
formatação de caractere e parágrafo. Aplique o objeto TextFormat a um campo de texto usando o
método TextField.setTextFormat() ou TextField.setNewTextFormat().
O método setTextFormat() altera o formato de texto aplicado a caracteres isoladamente, a
grupos de caracteres ou a todo o corpo de texto em um campo de texto. No entanto, um texto
inserido posteriormente, por um usuário ou com o ActionScript, não assume a formatação
especificada por uma chamada setTextFormat(). Para especificar a formatação padrão do texto
inserido posteriormente, use TextField.setNewTextFormat(). Para obter mais informações,
consulte TextField.setTextFormat() na página 767 e TextField.setNewTextFormat()
na página 766.
Para formatar um campo de texto com a classe TextFormat:
1 Em um novo documento Flash, crie um novo campo de texto no Stage usando a ferramenta
Text. Digite algum texto no campo de texto no Stage, como “Texto em negrito, itálico,
tamanho 24”.
2 No inspetor Property, digite myText_txt na caixa de texto Instance Name, selecione Dynamic
(Dinâmica) no menu pop-up Text Type e selecione Multiline (Multilinha) no menu pop-up
Line Type (Tipo de linha).
3 Na Timeline, selecione o primeiro quadro em Layer 1 e abra o painel Actions, em Window >
Development Panels > Actions.
4 Digite o código a seguir no painel Actions para criar um novo objeto TextFormat, e defina as
propriedades bold e italic como true, e a propriedade size como 24.
// Cria um objeto TextFormat
var txtfmt_fmt = new TextFormat();
// Especifica a formatação de parágrafo e caractere
txtfmt_fmt.bold = "true";
txtfmt_fmt.italic = "true";
txtfmt_fmt.size = "24"
5 Aplique o objeto TextFormat ao campo de texto criado na etapa 1 usando
TextField.setTextFormat().
myText_txt.setTextFormat(txtfmt_fmt);
Essa versão de setTextFormat() aplica-se à formatação especificada para o campo de texto
inteiro. Há duas outras versões desse método que permite a aplicação de formatação a
caracteres individuais ou grupos de caracteres. Por exemplo, o código a seguir aplica formatação
negrito, itálico, tamanho 24, aos quatro primeiros caracteres inseridos no campo de texto.
myText_txt.setTextFormat(txtfmt_fmt, 0, 3);
Para obter mais informações, consulte TextField.setTextFormat() na página 767.
6 Selecione Control > Test Movie para testar o filme.
138
Capítulo 8: Trabalhando com texto
Propriedades padrão dos novos campos de texto
Os campos de texto criados durante a execução com createTextField() recebem um objeto
TextFormat padrão com as seguintes propriedades:
font = "Times New Roman"
size = 12
textColor = 0x000000
bold = false
italic = false
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (empty array)
Para obter uma lista completa dos métodos TextFormat e suas descrições, consulte a entrada
Classe TextFormat no Capítulo 12, “Dicionário do ActionScript”, na página 215.
Obtendo informações métricas do texto
Você pode usar o método TextFormat.getTextExtent() para obter medidas de texto detalhadas
de uma seqüência de caracteres de texto com formatação específica aplicada. Por exemplo,
suponha que você precise criar, durante a execução, um novo objeto TextField que contenha uma
quantidade arbitrária de texto formatado em tamanho 24, negrito, fonte Arial e recuo de 5 pixels.
Você precisa determinar a largura ou a altura que o novo objeto TextField deve ter para exibir todo
o texto. O método getTextExtent() fornece medidas como, ascensão, descensão, largura e altura.
Para obter mais informações, consulte TextFormat.getTextExtent() na página 788.
Formatando o texto com Cascading Style Sheet
Cascading Style Sheets são um mecanismo de criação de estilos de texto que pode ser aplicado a
documentos HTML ou XML. Uma folha de estilos é uma coleção de regras de formatação que
especifica como formatar elementos HTML ou XML. Cada regra está associada a um nome de
estilo, ou seletor, com uma ou mais propriedades de estilo e seus valores. Por exemplo, o estilo a
seguir define um seletor bodyText.
bodyText { text-align: left}
Você pode criar estilos que redefinem marcas de formatação HTML internas usadas pelo Flash
Player (como <p> e <li>), criar “classes” de estilo que podem ser aplicadas a elementos HTML
específicos, usando o atributo class da marca <p> ou <span>, ou definir novas marcas.
Você usa a classe TextField.StyleSheet para trabalhar com folhas de estilos de texto. É possível
carregar estilos de um arquivo CSS externo ou criá-los de maneira nativa usando o ActionScript.
Para aplicar uma folha de estilos a um campo de texto que contém texto em formato HTML ou
XML, use a propriedade TextField.styleSheet. Os estilos definidos na folha de estilos são
mapeados automaticamente para as marcas definidas no documento HTML ou XML.
Formatando o texto com Cascading Style Sheet
139
O uso de folhas de estilos envolve três etapas básicas:
• Criar um objeto de folha de estilos da classe TextField.StyleSheet. Consulte “Criando um
•
•
objeto de folha de estilos” na página 141.
Adicionar estilos ao objeto de folha de estilos, importando-os de um arquivo CSS externo ou
definindo-os com o ActionScript. Consulte “Carregando arquivos CSS externos”
na página 141 e “Criando novos estilos com o ActionScript” na página 142.
Atribuir o objeto de folha de estilos a um campo de texto que contém texto em formato XML
ou HTML. Consulte “Aplicando estilos a um objeto TextField” na página 142, “Um exemplo
do uso de estilos com HTML” na página 145 e “Um exemplo do uso de estilos com XML”
na página 147.
Propriedades CSS suportadas
O Flash Player oferece suporte a um subconjunto de propriedades na especificação CSS1 original
(www.w3.org/TR/REC-CSS1). A tabela a seguir mostra as propriedades e os valores de CSS
suportados e os nomes de propriedades do ActionScript correspondentes. (Cada nome de
propriedade do ActionScript é derivado do nome de propriedade CSS correspondente; o hífen é
omitido e o caractere seguinte fica em letra maiúscula.)
140
Propriedade
CSS
Propriedade do
ActionScript
Uso e valores suportados
text-align
textAlign
Os valores reconhecidos são left, center e right.
font-size
fontSize
Apenas a parte numérica dos valores é usada;
as unidades (px, pt) não são analisadas; pixels e
pontos são equivalentes.
text-decoration
textDecoration
Os valores reconhecidos são none e underline.
margin-left
marginLeft
Apenas a parte numérica do valor é usada.
As unidades (px, pt) não são analisadas; pixels e
pontos são equivalentes.
margin-right
marginRight
Apenas a parte numérica do valor é usada. As
unidades (px, pt) não são analisadas; pixels e pontos
são equivalentes.
font-weight
fontWeight
Os valores reconhecidos são normal e bold.
font-style
fontStyle
Os valores reconhecidos são normal e italic.
text-indent
textIndent
Apenas a parte numérica do valor é usada.
As unidades (px, pt) não são analisadas; pixels e
pontos são equivalentes.
font-family
fontFamily
Uma lista de fontes separadas por vírgulas para usar,
em ordem decrescente de interesse. Qualquer nome
de família de fonte pode ser usado. Se você
especificar um nome de fonte genérica, ela será
convertida em uma fonte de dispositivo apropriada.
As seguintes conversões de fonte estão disponíveis:
mono é convertida em _typewriter, sans-serif, em
_sans e serif, em _serif.
Capítulo 8: Trabalhando com texto
Propriedade
CSS
Propriedade do
ActionScript
Uso e valores suportados
color
color
Apenas valores de cores hexadecimais são
suportados. Cores com nome (como blue) não são
suportadas.
display
display
Os valores suportados são inline, block e none.
Criando um objeto de folha de estilos
As folhas de estilos CSS são representadas no ActionScript pela classe TextField.StyleSheet.
Essa classe só está disponível para SWFs que se destinam ao Flash Player 7 ou versão posterior.
Para criar um novo objeto de folha de estilos, chame a função construtora da classe
TextField.StyleSheet.
var newStyle = new TextField.StyleSheet();
Para adicionar estilos a um objeto de folha de estilos, você pode carregar um arquivo CSS externo
no objeto ou definir os estilos no ActionScript. Consulte “Carregando arquivos CSS externos”
na página 141 e “Criando novos estilos com o ActionScript” na página 142.
Carregando arquivos CSS externos
Você pode definir estilos em um arquivo CSS externo e carregar esse arquivo em um objeto de
folha de estilos. Os estilos definidos no arquivo CSS são adicionados ao objeto de folha de estilos.
Para carregar um arquivo CSS externo, use o método load() da classe TextField.StyleSheet.
Para determinar quando o arquivo CSS finalizou a carga, use o manipulador de retorno de
chamada onLoad do objeto de folha de estilos.
No exemplo a seguir, você criará e carregará um arquivo CSS externo e usará o método
para recuperar os nomes dos estilos carregados.
TextField.StyleSheet.getStyleNames()
Para carregar uma folha de estilos externa:
1 No editor de texto ou XML preferido, crie um novo arquivo.
2 Adicione as seguintes definições de estilo ao arquivo:
// Nome do arquivo: styles.css
bodyText {
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
}
headline {
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
}
3 Salve o arquivo CSS como styles.css.
4 No Flash, crie um novo documento FLA.
5 Na Timeline (Window > Timeline), selecione Layer 1.
6 Abra o painel Actions (Window > Development Panels > Actions).
Formatando o texto com Cascading Style Sheet
141
7 Adicione o código a seguir ao painel Actions:
var css_styles = new TextField.StyleSheet();
css_styles.load("styles.css");
css_styles.onLoad = function(ok) {
if(ok) {
// exibe nomes de estilos
trace(this.getStyleNames());
} else {
trace("Erro ao carregar o arquivo CSS.");
}
}
8 Salve o arquivo na mesma pasta que contém o styles.css.
9 Teste o filme em Control > Test Movie.
Você deve verificar os nomes dos dois estilos exibidos no painel Output (Saída):
body
headLine
Se a mensagem “Erro ao carregar o arquivo CSS” for exibida no painel Output, verifique se o
FLA e o arquivo CSS estão na mesma pasta e se você digitou o nome do arquivo CSS
corretamente.
Como com todos os outros métodos do ActionScript que carregam dados pela rede, o arquivo
CSS deve ser redimensionado no mesmo domínio que o SWF que está carregando o arquivo.
(Consulte “Sobre a autorização de acesso a dados entre domínios” na página 197.)
Criando novos estilos com o ActionScript
Você pode criar novos estilos de texto com o ActionScript usando o método setStyle() da classe
TextField.StyleSheet. Este método tem dois parâmetros: o nome do estilo e um objeto que define
as propriedades desse estilo.
Por exemplo, o código a seguir cria um objeto de folha de estilos styles que define dois estilos
idênticos àqueles importados anteriormente (consulte “Carregando arquivos CSS externos”
na página 141).
var styles = new TextField.StyleSheet();
styles.setStyle("bodyText",
{fontFamily: 'Arial,Helvetica,sans-serif',
fontSize: '12px'}
);
styles.setStyle("headline",
{fontFamily: 'Arial,Helvetica,sans-serif',
fontSize: '24px'}
);
Aplicando estilos a um objeto TextField
Para aplicar um objeto de folha de estilos a um campo de texto, atribua esse objeto à propriedade
do campo de texto.
styleSheet
textObj_txt.styleSheet = styleSheetObj;
Observação: Cuidado para não confundir a propriedade TextField.styleSheet com a classe
TextField.StyleSheet. O uso de maiúsculas ou minúsculas indica a diferença.
142
Capítulo 8: Trabalhando com texto
Quando você atribui um objeto de folha de estilos a um objeto TextField, as seguintes alterações
ocorrem no comportamento normal do campo de texto:
• As propriedades text e htmlText do campo de texto, e qualquer variável associada ao campo
de texto, sempre contêm o mesmo valor e comportam-se de maneira idêntica.
• O campo de texto torna-se somente leitura e não pode ser editado pelo usuário.
• Os métodos setTextFormat() e replaceSel() da classe TextField não funcionam mais com
o campo de texto. A única maneira de alterar o campo é alterando as propriedades text ou
do campo de texto, ou alterando a variável associada ao campo de texto.
Qualquer texto atribuído às propriedades text e htmlText do campo de texto ou à variável
associada é armazenado literalmente; tudo que for escrito em uma dessas propriedades pode ser
recuperado na forma original do texto.
htmlText
•
Combinando estilos
Os estilos CSS no Flash Player são aditivos, ou seja, quando os estilos são aninhados, cada nível de
aninhamento pode contribuir com informações de estilo adicionais, que são acrescentadas juntas
para resultar na formatação final.
Veja um exemplo de dados XML atribuídos a um campo de texto:
<sectionHeading>Esta é uma seção</sectionHeading>
<mainBody>Aqui fica um texto de corpo principal com uma palavra
<emphasized>enfatizada</emphasized>.</mainBody>
Na palavra enfatizada no texto anterior, o estilo emphasized é aninhado no estilo mainBody.
O estilo mainBody contribui com regras de cor, tamanho de fonte e formatação. O estilo
emphasized adiciona uma regra de espessura de fonte a essas regras. A palavra enfatizada será
formatada usando uma combinação das regras especificadas por mainBody e emphasized.
Usando classes de estilo
Você pode criar “classes” de estilo que podem ser aplicadas a uma marca <p> ou <span> usando o
atributo class da marca. Quando aplicado a uma marca <p>, o estilo é aplicado no parágrafo
inteiro. Você também pode atribuir estilo a um intervalo de texto que use uma classe de estilo
usando a marca <span>.
Por exemplo, a folha de estilos a seguir define duas classes de estilo: mainBody e emphasis.
.mainBody {
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
}
.emphasis {
color: #666666;
font-style: italic;
}
No texto HTML que você atribui a um campo de texto, é possível aplicar esses estilos a marcas
<p> e <span>, como exibido a seguir.
<p class="mainBody">Isto é <span class="emphasis">realmente entusiasmante!</
span></p>
Formatando o texto com Cascading Style Sheet
143
Atribuindo estilo às marcas HTML internas
O Flash Player oferece suporte a um subconjunto de marcas HTML. Para obter mais
informações, consulte “Usando o texto em formato HTML” na página 148.) Você pode atribuir
um estilo CSS a cada instância de uma marca HTML interna que aparece em um campo de texto.
Por exemplo, a seguir há uma definição de estilo da marca HTML <p> interna. Todas as instâncias
dessa marca receberão estilo da maneira especificada pela regra de estilo.
p {
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
display: inline;
}
A tabela a seguir mostra as marcas HTML internas que podem receber estilo e como cada estilo
é aplicado.
144
Nome do
estilo
Como o estilo se aplica
p
Afeta todas as marcas <p>.
body
Afeta todas as marcas <body>. O estilo p, se especificado, tem precedência sobre o
estilo body.
li
Afeta todas as marcas de bullet <li>.
a
Afeta todas as marcas de âncora <a>.
a:link
Afeta todas as marcas de âncora <a>. Este estilo é aplicado após qualquer estilo a.
a:hover
Aplicado a uma marca de âncora <a> quando o mouse está passando pelo link.
Este estilo é aplicado após qualquer estilo a e a:link.
Quando o mouse sai de cima do link, o estilo a:hover é removido do link.
a:active
Aplicado a uma marca de âncora <a> quando o usuário clica no link. Este estilo é
aplicado após qualquer estilo a e a:link.
Depois que o botão do mouse é liberado, o estilo a:active é removido do link.
Capítulo 8: Trabalhando com texto
Um exemplo do uso de estilos com HTML
Esta seção apresenta um exemplo de uso de estilos com marcas HTML. Você criará uma folha de
estilos que atribui estilo a algumas marcas internas e define algumas classes de estilo. Em seguida,
você aplicará essa folha de estilos a um objeto TextField que contém texto em formato HTML.
Para formatar HTML com uma folha de estilos, siga este procedimento:
1 No editor de texto preferido, crie um novo arquivo.
2 Adicione a seguinte definição de folha de estilos ao arquivo:
p {
color: #000000;
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
display: inline;
}
a:link {
color: #FF0000;
}
a:hover{
text-decoration: underline;
}
.headline {
color: #000000;
font-family: Arial,Helvetica,sans-serif;
font-size: 18px;
font-weight: bold;
display: block;
}
.byline {
color: #666600;
font-style: italic;
font-weight: bold;
display: inline;
}
3
4
5
6
7
8
Essa folha de estilos define estilos para duas marcas HTML internas (<p> e <a>) que serão
aplicadas a todas as instâncias dessas marcas. Ela também define duas classes de estilos
(.headline e .byline) que serão aplicadas a parágrafos específicos e intervalos de texto.
Salve o arquivo como html_styles.css.
No Flash, crie um novo arquivo FLA.
Usando a ferramenta Text, crie um campo de texto de cerca de 400 pixels de largura e 300 pixels
de altura.
Abra o inspetor Property (Window > Properties) e selecione o campo de texto.
No inspetor Property, selecione Dynamic Text no menu Text Type, selecione Multiline no
menu Line Type, selecione a opção Render Text as HTML e digite news_txt na caixa de texto
Instance Name.
Selecione o primeiro quadro na Layer 1 da Timeline (Window > Timeline).
Formatando o texto com Cascading Style Sheet
145
9 Abra o painel Actions (Window > Development Panels > Actions) e adicione o código a seguir
a ele:
// Cria um novo objeto de folha de estilos
var style_sheet = new TextField.StyleSheet();
// Localização do arquivo CSS que define estilos
var css_url = "html_styles.css";
// Cria um texto HTML para exibir
var storyText:String = "<p class='headline'>Agora, o Flash Player oferece
suporte a Cascading Style Sheets!</p><p><span class='byline'>San
Francisco, CA</span>--A Macromedia Inc. anunciou hoje uma nova versão do
Flash Player que oferece suporte a estilos de texto CSS (Cascading Style
Sheet). Para obter mais informações, visite o site do Macromedia Flash em
<a href='http://www.macromedia.com'>na Web.</a></p>";
// Carrega o arquivo CSS e define o manipulador onLoad:
style_sheet.load(css_url);
style_sheet.onLoad = function(ok) {
if (ok) {
// Se a folha de estilos tiver sido carregada sem erros,
// atribua-a ao objeto de texto
// e atribua o texto HTML ao campo de texto.
news_txt.styleSheet = style_sheet;
news_txt.text = storyText;
}
};
Observação: Para obter simplicidade, o texto HTML que está recebendo estilo é “codificado” no
script; em um aplicativo do mundo real você provavelmente desejará carregar o texto de um
arquivo externo. Para obter informações sobre o carregamento de dados externos, consulte
Capítulo 10, “Trabalhando com dados externos”, na página 183.
10 Salve o arquivo como news_html.fla na mesma pasta que contém o arquivo CSS
criado anteriormente.
11 Execute o filme (Control > Test Movie) para ver os estilos aplicados ao texto
HTML automaticamente.
Usando estilos para definir novas marcas
Se você definir um novo estilo em uma folha de estilos, esse estilo poderá ser usado como marca,
como você usaria uma marca HTML interna. Por exemplo, se uma folha de estilos definir um
estilo CSS sectionHeading, você poderá usar <sectionHeading> como elemento em qualquer
campo de texto associado à folha de estilos. Esse recurso permite atribuir qualquer texto em
formato XML diretamente ao campo de texto, de maneira que o texto seja formatado
automaticamente usando as regras na folha de estilos.
Por exemplo, a folha de estilos a seguir cria os novos estilos sectionHeading, mainBody
e emphasized.
sectionHeading {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 18px; display: block
}
mainBody {
color: #000099;
text-decoration: underline;
font-size: 12px; display: block
}
emphasized {
font-weight: bold; display: inline
}
146
Capítulo 8: Trabalhando com texto
Você pode preencher um campo de texto associado a essa folha de estilos com o seguinte texto em
formato XML:
<sectionHeading>Esta é uma seção</sectionHeading>
<mainBody>Este é o texto de corpo principal,
com uma palavra <emphasized>enfatizada</emphasized>.
</mainBody>
Um exemplo do uso de estilos com XML
Nesta seção, você criará o mesmo arquivo FLA criado anteriormente (consulte “Um exemplo do
uso de estilos com HTML” na página 145) mas com texto em formato XML. Neste exemplo,
você criará a folha de estilos usando o ActionScript, em vez de importar estilos do arquivo CSS.
Para formatar XML com uma folha de estilo:
1 No Flash, crie um novo arquivo FLA.
2 Usando a ferramenta Text, crie um campo de texto de cerca de 400 pixels de largura e 300 pixels
3
4
5
6
de altura.
Abra o inspetor Property (Window > Properties) e selecione o campo de texto.
No inspetor Property, selecione Dynamic Text no menu Text Type, selecione Multiline no
menu Line Type, selecione a opção Render Text as HTML e digite news_txt na caixa de texto
Instance Name.
Na Layer 1 da Timeline (Window > Timeline), selecione o primeiro quadro.
Para criar o objeto de folha de estilos, abra o painel Actions (Window > Development Panels >
Actions) e adicione o seguinte código:
var xml_styles = new TextField.StyleSheet();
xml_styles.setStyle("mainBody", {
color:'#000000',
fontFamily:'Arial,Helvetica,sans-serif',
fontSize:'12',
display:'block'
});
xml_styles.setStyle("title", {
color:'#000000',
fontFamily:'Arial,Helvetica,sans-serif',
fontSize:'18',
display:'block',
fontWeight:'bold'
});
xml_styles.setStyle("byline", {
color:'#666666',
fontWeight:'bold',
fontStyle:'italic',
display:'inline'
});
xml_styles.setStyle("a:link", {
color:'#FF0000'
});
xml_styles.setStyle("a:hover", {
textDecoration:'underline'
});
Esse código cria um novo objeto de folha de estilos xml_styles que define estilos usando o
método setStyle(). Os estilos correspondem exatamente àqueles criados em um arquivo CSS
externo, anteriormente neste capítulo.
Formatando o texto com Cascading Style Sheet
147
7 Para criar o texto XML para atribuir ao campo de texto, adicione o código a seguir ao painel
Actions:
var storyText = "<title>Agora, o Flash Player oferece suporte a Cascading
Style Sheets</title><mainBody><byline>San Francisco, CA</byline>--A
Macromedia Inc. anunciou hoje uma nova versão do Flash Player que oferece
suporte a estilos de texto CSS (Cascading Style Sheet). Para obter mais
informações, visite o site do Macromedia Flash em <a href=\"http://
www.macromedia.com\">na Web</a></mainBody>";
8 Por último, adicione o código a seguir para aplicar o objeto de folha de estilos à propriedade
styleSheet
do campo de texto e atribuir o texto XML ao campo de texto.
news_txt.styleSheet = xml_styles;
news_txt.text = storyText;
9 Salve o arquivo como news_xml.fla.
10 Execute o filme (Control > Test Movie) para ver os estilos aplicados automaticamente ao texto
no campo.
Usando o texto em formato HTML
O Flash Player oferece suporte a um subconjunto de marcas HTML padrão, como <p> e <li>,
que você pode usar para atribuir um estilo a um texto em qualquer campo de texto dinâmico ou
de entrada. Os campos de texto no Flash Player 7 e versões posteriores também oferecem suporte
à marca <img>, o que permite a incorporação de JPEGs, SWFs e clipes de filme no campo de
texto. O Flash Player envolverá automaticamente o texto em torno das imagens incorporadas nos
campos de texto, de maneira muito parecida com um navegador da Web que envolve o texto em
torno de imagens incorporadas em uma página HTML. Para obter mais informações, consulte
“Incorporando imagens, SWFs e clipes de filme aos campos de texto” na página 154.
O Flash Player também oferece suporte à marca <textformat>, que permite a aplicação de estilos
de formatação de parágrafo da classe TextFormat em campos de texto ativados por HTML.
Para obter mais informações, consulte “Usando a classe TextFormat” na página 138.
Visão geral do uso de texto em formato HTML
Para usar HTML em um campo de texto, você deve ativar a formatação HTML do campo de
texto selecionando a opção Render Text as HTML no inspetor Property ou definindo a
propriedade html do campo de texto como true. Para inserir HTML em um campo de texto,
use a propriedade TextField.htmlText.
Por exemplo, o código a seguir ativa a formatação HTML para um campo de texto
e atribui um código HTML ao campo de texto.
headline_txt
headline_txt.html = true;
headline_txt.htmlText = "<font face='Times New Roman' size='24'>É assim que
você atribui um texto HTML a um campo de texto.</font>";
Os atributos das marcas HTML devem estar entre aspas simples ou duplas. Os valores de
atributos sem aspas podem produzir resultados inesperados, como renderização de texto
imprópria. Por exemplo, o trecho de HTML a seguir não será renderizado adequadamente pelo
Flash Player porque o valor atribuído ao atributo align (left) não está entre aspas:
textField.htmlText = "<p align=left>Este texto está alinhado à esquerda</p>";
148
Capítulo 8: Trabalhando com texto
Se você colocar os valores do atributo entre aspas duplas, deverá acrescentar um caractere de
“escape” para fechar as aspas (\"). Por exemplo, qualquer exemplo a seguir é aceitável:
textField.htmlText = "<p align='left'>Este texto contém aspas simples</p>";
textField.htmlText = "<p align=\"left\">Este texto contém aspas duplas com
caractere de escape</p>";
Você não precisará acrescentar um caractere de escape para fechar as aspas duplas se estiver
carregando o texto de um arquivo externo; só se você estiver atribuindo uma seqüência de
caracteres de texto no ActionScript.
Marcas HTML suportadas
Esta seção lista as marcas HTML internas suportadas pelo Flash Player. Você também pode criar
novos estilos e marcas usando Cascading Style Sheets; consulte “Formatando o texto com
Cascading Style Sheet” na página 139.
Marca de âncora (<a>)
A marca <a> cria um hiperlink e oferece suporte aos seguintes atributos:
•
•
Especifica o URL da página que será carregada no navegador. O URL pode ser absoluto
ou relativo ao local do SWF que está carregando a página.
target Especifica o nome da janela de destino na qual a página será carregada.
href
Por exemplo, o trecho de código HTML a seguir cria o link “Vá para a página principal”, que abre
o site www.macromedia.com em uma nova janela do navegador.
<a href="../home.htm" target="_blank">Vá para a página principal</a>
Você também pode definir os estilos a:link, a:hover e a:active para marcas de âncora usando
a folha de estilos. Consulte “Atribuindo estilo às marcas HTML internas” na página 144.
Marca de negrito (<b>)
A marca <b> renderiza o texto como negrito. Um tipo em negrito deve estar disponível para a
fonte usada para exibir o texto.
<b>Isto é um texto em negrito.</b>
Marca de quebra (<br>)
A marca <br> cria uma quebra de linha no campo de texto, como mostra este exemplo:
Uma linha de texto<br>Outra linha de texto<br>
Usando o texto em formato HTML
149
Marca de fonte (<font>)
A marca <font> especifica uma fonte ou lista de fontes para exibir o texto.
A marca font oferece suporte aos seguintes atributos:
•
Apenas valores de cor hexadecimais (#FFFFFF) são suportados. Por exemplo, o código
HTML a seguir cria texto vermelho.
color
<font color="#FF0000">Este texto está em vermelho</font>
•
Especifica o nome da fonte que será usada. Você também pode especificar uma lista de
nomes de fontes separados por vírgula, em cada caso o Flash Player escolhe a primeira fonte
disponível. Se a fonte especificada não estiver instalada no sistema de reprodução ou não estiver
incorporada no SWF, o Flash Player escolherá uma fonte substituta.
Exemplo:
face
<font face="Times, Times New Roman">Este texto pode ser em Times ou Times
New Roman..</font>
•
Para obter mais informações sobre a incorporação de fontes em aplicativos Flash, consulte
TextField.embedFonts na página 749 e “Setting dynamic and input text options” (Definindo
opções de texto dinâmico e de entrada) em Usando a Ajuda do Flash.
size Especifica o tamanho da fonte, em pixels. Você também pode usar tamanhos de pontos
relativos (+2 ou -4).
<font size="24" color="#0000FF">Este texto está em verde, tamanho 24</font>
Marca de imagem (<img>)
A marca <img> permite incorporar JPEGs, SWFs e clipes de filme externos a campos de texto.
O texto flui automaticamente em torno de imagens incorporadas nos campos de texto.
Essa marca é suportada somente em campos de texto dinâmicos ou de entrada com várias linhas e
quebra de texto.
Para criar um campo de texto de várias linhas com quebra automática de linha, siga um
destes procedimentos:
• No ambiente de criação do Flash, selecione um campo de texto no Stage e, no inspetor
Property, selecione Multiline no menu pop-up Text Type.
• Para um campo de texto criado durante a execução com MovieClip.createTextField(),
defina as novas instâncias do campo de texto TextField.multiline e as propriedades
TextField.wordWrap como true.
A marca <img> tem um atributo obrigatório, src, que especifica o caminho para um arquivo
JPEG, um arquivo SWF ou o identificador de vinculação de um símbolo do clipe de filme.
Todos os outros atributos são opcionais.
As marcas <img> oferecem suporte aos seguintes atributos:
•
Especifica o URL para um arquivo JPEG ou SWF, ou o identificador de vinculação
para um símbolo do clipe de filme na biblioteca. Este atributo é obrigatório; todos os outros
atributos são opcionais. Os arquivos externos (JPEGs e SWFs) não são exibidos até que o
download seja concluído.
src
Observação: O Flash Player não oferece suporte a JPEGs progressivos.
150
Capítulo 8: Trabalhando com texto
•
•
•
•
•
•
id Especifica o nome da instância do clipe de filme (criado pelo Flash Player) que contém o
JPEG, SWF ou clipe de filme incorporado. É útil para controlar o conteúdo incorporado com
o ActionScript.
width A largura da imagem, SWF ou clipe de filme, em pixels.
height A altura da imagem, SWF ou clipe de filme que está sendo inserido, em pixels.
align Especifica o alinhamento horizontal da imagem incorporada no campo de texto.
Os valores válidos são left e right. O valor padrão é left.
hspace Especifica a quantidade de espaço horizontal em torno da imagem onde nenhum
texto aparecerá. O valor padrão é 8.
vspace Especifica a quantidade de espaço vertical em torno da imagem onde nenhum texto
aparecerá. O valor padrão é 8.
Para obter mais informações e exemplos do uso da marca <img>, consulte “Incorporando
imagens, SWFs e clipes de filme aos campos de texto” na página 154.
Marca de itálico (<i>)
A marca <i> exibe o texto marcado em itálico. Um tipo itálico deve estar disponível para a fonte
usada.
Isto é muito <i>interessante</i>
O código anterior será renderizado assim:
Isto é muito interessante.
Marca de item de lista (<li>)
A marca <li> coloca um bullet na frente do texto que inclui.
Lista de alimentos:
<li>Maçãs</li>
<li>Laranjas</li>
<li>Limões</li>
O código anterior será renderizado assim:
Lista de alimentos:
■ Maçãs
■ Laranjas
■ Limões
Usando o texto em formato HTML
151
Marca de parágrafo (<p>)
A marca <p> cria um novo parágrafo. Ela oferece suporte aos seguintes atributos:
•
align
center.
•
class Especifica uma classe de estilo CSS definida por uma instância da classe
TextField.StyleSheet. Para obter mais informações, consulte “Usando classes de estilo”
na página 143.)
O exemplo a seguir usa o atributo align para alinhar o texto no lado direito de um campo
de texto.
Especifica o alinhamento do texto no parágrafo; os valores válidos são left, right e
textField.htmlText = "<p align='right'>Este texto é alinhado no lado direito
do campo de texto</p>";
O exemplo a seguir usa o atributo class para atribuir uma classe de estilo de texto a uma
marca <p>.
var myStyleSheet = new TextField.StyleSheet();
myStyleSheet.secreateTextField("test", 10, 0,0, 300,100);
createTextField("test", 10, 0,0, 300,100);
test.styleSheet = myStyleSheet;
test.htmlText = "<p class='body'>Este texto tem estilo de corpo.</p>.";
Marca de intervalo (<span>)
A marca <span> está disponível somente para uso com os estilos de texto CSS. Para obter mais
informações, consulte “Formatando o texto com Cascading Style Sheet” na página 139.) Ela
oferece suporte ao seguinte atributo:
•
class Especifica uma classe de estilo CSS definida por uma instância da classe
TextField.StyleSheet. Para obter mais informações sobre a criação de classes de estilo de texto,
consulte “Usando classes de estilo” na página 143.
Marca de formatação de texto (<textformat>)
A marca <textformat> permite usar um subconjunto das propriedades de formatação de
parágrafo da classe TextFormat nos campos de texto HTML, incluindo entrelinhamento, recuo,
margens e interrupções de tabulação. Você pode combinar marcas <textformat> com as marcas
HTML internas.
A marca <textformat> tem os seguintes atributos:
•
•
•
•
152
blockindent Especifica o recuo do bloco em pontos; corresponde a
TextFormat.blockIndent. (Consulte TextFormat.blockIndent na página
786.)
Especifica o recuo do primeiro caractere no parágrafo em relação à margem esquerda;
corresponde a TextFormat.indent. (Consulte TextFormat.indent na página 790.)
leading Especifica a quantidade de espaço vertical entre as linhas; corresponde ao
TextFormat.leading. (Consulte TextFormat.leading na página 791.)
leftmargin Especifica a margem esquerda do parágrafo, em pontos; corresponde ao
TextFormat.leftMargin. (Consulte TextFormat.leftMargin na página 791.)
indent
Capítulo 8: Trabalhando com texto
•
rightmargin Especifica a margem direita do parágrafo, em pontos; corresponde
TextFormat.rightMargin. (Consulte TextFormat.rightMargin na página 791.)
•
tabstops Especifica as interrupções de tabulação personalizadas como um array de inteiros
não negativos; corresponde ao TextFormat.tabStops. (Consulte TextFormat.tabStops
na página 792.)
ao
O exemplo de código a seguir usa o atributo tabstops da marca <textformat> para criar uma
tabela de dados com cabeçalhos de linha em negrito, como apresentado abaixo:
Nome
Idade
Departamento
Tim
32
IMD
Edwin
46
Engenharia
Para criar uma tabela formatada de dados usando interrupções de tabulação:
1 Usando a ferramenta Text, crie um campo de texto dinâmico que tenha aproximadamente 300
pixels de largura e 100 pixels de altura.
2 No inspetor Property, digite table_txt na caixa de texto Instance Name, selecione Multiline
no menu Line Type e selecione a opção Render Text as HTML.
3 Na Timeline, selecione o primeiro quadro na Layer 1.
4 Abra o painel Actions (Window > Development Panels > Actions) e digite o código a seguir:
var rowHeaders = "<b>Nome\t</b><b>Idade\t</b><b>Departamento";
var row_1 = "Tim\t31\tIMD";
var row_2 = "Edwin\t42\tQA";
table_txt.htmlText = "<textformat tabstops='[100, 200]'>";
table_txt.htmlText += rowHeaders;
table_txt.htmlText += row_1;
table_txt.htmlText += row_2 ;
table_txt.htmlText += "</textformat>";
Observe o uso da seqüência de escape do caractere de tabulação (\t) para adicionar tabulações
entre cada “coluna” da tabela.
5 Selecione Control > Test Movie para testar o filme.
Marca de sublinhado (<u>)
A marca <u> sublinha o texto marcado.
Este texto está <u>sublinhado</u>
O código anterior será renderizado assim:
Este texto está sublinhado.
Usando o texto em formato HTML
153
Incorporando imagens, SWFs e clipes de filme aos campos de texto
No Flash Player 7 e versões posteriores, você pode usar a marca <img> para incorporar JPEGs,
SWFs e clipes de filmes a campos de texto dinâmicos e de entrada. (Para obter uma lista completa
de atributos da marca <img>, consulte “Marca de imagem (<img>)” na página 150.)
O padrão é o Flash exibir a mídia incorporada em um campo de texto com tamanho completo.
Para especificar as dimensões da mídia incorporada, use os atributos height e width da marca
<img>. (Consulte “Especificando os valores de altura e largura” na página 154.)
Em geral, uma imagem incorporada em um campo de texto aparece na linha seguinte à marca
<img>. Entretanto, quando a marca <img> é o primeiro caractere no campo de texto, a imagem
aparece na primeira linha do campo de texto.
Incorporando SWFs e JPEGs
Para incorporar um arquivo JPEG ou SWF a um campo de texto, especifique o caminho absoluto
ou relativo para o arquivo JPEG ou SWF no atributo src da marca <img>. Por exemplo, o código
a seguir insere um JPEG localizado na mesma pasta que o SWF.
textField_txt.htmlText = "<p>Aqui está uma foto das minhas últimas férias:<img
src='beach.jpg'>";
Incorporando símbolos do clipe de filme
Para incorporar um símbolo do clipe de filme a um campo de texto, você especifica o
identificador de vinculação do símbolo para o atributo src da marca <img>. (Para obter
informações sobre a definição de um identificador de vinculação, consulte “Anexando um
símbolo de clipe de filme ao Stage” na página 125.)
Por exemplo, o código a seguir insere um símbolo do clipe de filme com o identificador de
vinculação symbol_ID.
textField_txt.htmlText = "<p>Aqui está um símbolo de clipe:<img
src='symbol_ID'>";
Para que um clipe de filme incorporado seja exibido adequada e completamente, o ponto de
registro de seu símbolo deve ser um ponto (0,0).
Especificando os valores de altura e largura
Se você especificar os atributos width e height para uma marca <img>, o espaço é reservado no
campo de texto para o JPEG, SWF ou clipe de filme. Após o download completo de um arquivo
JPEG ou SWF, ele é exibido no espaço reservado. O Flash dimensiona a mídia para cima ou para
baixo de acordo com os valores height e width.
Se você não especificar os valores height e width, nenhum espaço será reservado para a mídia
incorporada. Após o download completo de um arquivo JPEG ou SWF, o Flash insere-o no
campo de texto com tamanho completo e quebra novamente o texto em torno dele.
154
Capítulo 8: Trabalhando com texto
Controlando a mídia incorporada com o ActionScript
O Flash Player cria um novo clipe de filme para cada marca <img> e incorpora esse clipe ao objeto
TextField. O atributo id da marca <img> permite atribuir um nome de instância ao clipe de filme
criado. Assim, é possível controlar o clipe de filme com o ActionScript.
O clipe de filme criado pelo Flash Player é adicionado como um clipe de filme filho ao campo de
texto que contém a imagem.
Por exemplo, o código a seguir incorpora um arquivo SWF animation.swf ao campo de texto
no nível 0 e atribui o nome de instância animation_mc ao clipe de filme que
contém o SWF.
textField_txt
_level0.textField_txt.htmlText = "Aqui está uma animação interessante: <img
src='animation.swf' id='animation_mc'>
Nesse caso, o caminho totalmente qualificado para o clipe de filme criado recentemente é
_level0.textField_txt.animation_mc. Por exemplo, você pode anexar o código a seguir a um
botão (na mesma Timeline que textField_txt) que interromperá a reprodução do SWF
incorporado.
on(press){
textField_txt.animation_mc.stop();
}
Criando hiperlinks fora da mídia incorporada
Para criar um hiperlink fora de um JPEG, SWF ou clipe de filme incorporado, inclua a marca
<img> em uma marca <a>:
textField.htmlText = "Clique na imagem para voltar para a página principal<a
href='home.htm'><img src='home.jpg'></a>";
Quando o mouse está sobre uma imagem, SWF ou clipe de filme entre marcas <a>, o ponteiro do
mouse muda para um ícone de “mão”, como os hiperlinks padrão. Observe que a interatividade,
como cliques de mouse e pressionamentos de tecla, não é registrada nos SWFs e clipes de filmes
que estão entre marcas <a>.
Criando texto de rolagem
Há varias maneiras de criar texto de rolagem no Flash. Os campos de texto dinâmico e de entrada
poderão ser roláveis se você selecionar a opção Scrollable Mode (Modo rolável) do menu Text ou
do menu de contexto, ou, pressionando a tecla Shift, clicar duas vezes na alça do bloco de texto.
É possível usar as propriedades scroll e maxscroll do objeto TextField para controlar a rolagem
vertical, e as propriedades hscroll e maxhscroll para controlar a rolagem horizontal em um
bloco de texto. As propriedades scroll e hscroll especificam as posições de rolagem vertical e
horizontal atuais, respectivamente; você pode ler e escrever essas propriedades. As propriedades
maxscroll e maxhscroll especificam as posições de rolagem vertical e horizontal máximas,
respectivamente; você só pode ler essas propriedades.
O componente TextArea no Flash MX 2004 fornece uma maneira fácil de criar campos de texto
de rolagem com um mínimo de script escrito. Para obter informações, consulte a entrada do
componente TextArea em Usando a Ajuda dos componentes.
Criando texto de rolagem
155
Para criar um bloco de texto dinâmico rolável, execute um dos seguintes procedimentos:
• Pressione a tecla Shift e clique duas vezes na alça do bloco de texto dinâmico.
• Selecione o bloco de texto dinâmico com a ferramenta Arrow (Seta) e selecione Text >
Scrollable.
• Selecione o bloco de texto dinâmico com a ferramenta Arrow. Clique com o botão direito do
mouse (Windows) ou, pressionando Control, clique (Macintosh) no bloco de texto dinâmico e
escolha Text > Scrollable.
Para usar a propriedade scroll para criar texto de rolagem:
1 Siga um destes procedimentos:
• Use a ferramenta Text para arrastar um campo de texto no Stage. Atribua ao campo de texto o
nome de instância textField no inspetor Property.
• Use o ActionScript para criar um campo de texto dinamicamente com o método
MovieClip.createTextField(). Atribua ao campo de texto o nome de instância textField
como parâmetro do método.
2 Crie um botão Up (Para cima) e um botão Down (Para baixo) ou escolha Window > Other
Panels (Outros painéis) > Common Libraries (Bibliotecas comuns) > Buttons e arraste os botões
para o Stage.
Esses botões serão usados para rolar o texto para cima e para baixo.
3 Selecione o botão Down no Stage.
4 No painel Actions (Window > Development Panels > Actions), digite o código a seguir para
rolar o texto para baixo no campo de texto:
on(press){
textField.scroll += 1;
}
5 Selecione o botão Up no Stage.
6 No painel Actions, digite o código a seguir para rolar o texto para cima:
on(press){
textField.scroll += 1;
}
156
Capítulo 8: Trabalhando com texto
Exibindo as propriedades do campo de texto para depuração
Para obter informações depuradas sobre os objeto TextField, você pode usar o comando Debug
(Depurar) > List Variables (Listar variáveis) no modo testar filme. O painel Output usa as
seguintes convenções na exibição de objeto TextField:
•
•
•
•
•
•
Se uma propriedade não for encontrada no objeto, ela não será exibida.
Não mais de quatro propriedades são exibidas em uma linha.
Uma propriedade com um valor de seqüência de caracteres é exibida em uma linha separada.
Se houver alguma outra propriedade definida para o objeto após as propriedades internas serem
processadas, elas serão adicionadas à exibição usando as regras no segundo e terceiro pontos
acima.
As propriedades de cor são exibidas como números hexadecimais (0x00FF00).
As propriedades são exibidas na seguinte ordem: variable, text, htmlText, html,
textWidth, textHeight, maxChars, borderColor, backgroundColor, textColor, border,
background, wordWrap, password, multiline, selectable, scroll, hscroll, maxscroll,
maxhscroll, bottomScroll, type, embedFonts, restrict, length, tabIndex, autoSize.
O comando Debug > List Objects no modo de teste lista os objeto TextField. Se um nome de
instância for especificado para um campo de texto, o painel Output exibirá o caminho de destino
completo incluindo o nome de instância da seguinte forma:
Target = "target path"
Para obter mais informações sobre o comando List Variables ou List Objects, consulte “Usando o
painel Output” na página 73.
Exibindo as propriedades do campo de texto para depuração
157
158
Capítulo 8: Trabalhando com texto
CAPÍTULO 9
Criando classes com o ActionScript 2
O ActionScript 2 é uma reestruturação da linguagem do ActionScript que contém vários novos
recursos de programação eficientes encontrados em outras linguagens de programação, como Java.
O ActionScript 2 incentiva estruturas de programa reutilizáveis, dimensionáveis, resistentes e
fáceis de manter. Ele também diminui o tempo de desenvolvimento fornecendo aos usuários
assistência de código completa e informações de depuração. O ActionScript 2 está em
conformidade com os padrões existentes e baseia-se na proposta ECMAScript 4
(www.mozilla.org/js/language/es4/).
Os recursos do ActionScript 2 são descritos posteriormente.
Modelo familiar OOP (object-oriented programming - programação orientada a objeto)
O recurso primário do ActionScript 2 é um modelo familiar para a criação de programas orientados
a objeto. O ActionScript 2 introduz vários novos conceitos e palavras-chave orientados a objeto,
como class, interface e packages, que parecerão familiares se você já tiver programado com Java.
O modelo OOP fornecido pelo ActionScript 2 é uma “formalização sintática” do método de
encadeamento de protótipo usado nas versões anteriores do Macromedia Flash para criar objeto e
estabelecer herança.
Atribuição estrita de tipo de dados
O ActionScript 2 também permite especificar
explicitamente os tipos de dados para variáveis, parâmetros de função e tipos de retorno de
função. Por exemplo, o código a seguir declara uma variável userName de tipo String (um tipo de
dados interno do ActionScript ou classe).
var userName:String = "";
Os dois recursos anteriores permitem que a ferramenta de
criação e o compilador forneçam mensagens de aviso e erro do compilador que ajudam a
encontrar falhas nos aplicativos mais rápido que anteriormente no Flash.
Avisos e erros do compilador
Princípios da programação orientada a objeto
Esta seção fornece uma breve introdução aos princípios envolvidos no desenvolvimento de
programas orientados a objeto. Esses princípios são descritos mais profundamente no restante
deste capítulo, junto com os detalhes sobre como eles são implementados no Macromedia Flash
MX 2004 e no Macromedia Flash MX Professional 2004.
159
Objeto
Pense em um objeto do mundo real, por exemplo, um gato. Pode-se dizer que um gato tem
propriedades (ou estados) como nome, idade e cor; um gato também tem comportamentos, como
dormir, comer e ronronar. No mundo da programação orientada a objeto, os objeto também têm
propriedades e comportamentos. Com as técnicas orientadas a objeto, você pode modelar um
objeto do mundo real (como um gato) ou um objeto mais abstrato (como um processo químico).
Classes e membros de classes
Continuando com a analogia do mundo real, considere que há gatos de cores, idades e nomes
diferentes, com maneiras diferentes de comer e ronronar. Mas todos os gatos pertencem a uma
certa classe de objeto, um objeto do tipo “gato”. Cada gato individual (mundo real) é uma
instância do tipo de classe gato.
Da mesma maneira, em uma programação orientada a objeto, uma classe define um projeto de
arquitetura de um tipo de objeto. As características e comportamentos que pertencem a uma
classe são tratadas como membros dessa classe. As características (no exemplo do gato, nome, idade
e cor) são chamadas de propriedades da classe, que são representadas como variáveis; os
comportamentos (comer, dormir) são chamados de métodos da classe e são representados como
funções.
Por exemplo, você pode criar uma classe Person e criar um indivíduo que será uma instância dessa
classe. A instância da pessoa conterá todas as propriedades e métodos da classe Person.
No ActionScript, você define uma classe com o comando class (consulte “Criando e usando
classes” na página 165). O ActionScript inclui várias classes internas, como MovieClip, TextField
e String. Para obter mais informações, consulte Capítulo 6, “Usando as classes internas”,
na página 111.
Herança
Uma das principais vantagens da programação orientada a objeto é que você cria subclasses de uma
classe; a subclasse herda todas as propriedades e métodos da superclasse. A subclasse normalmente
define métodos e propriedades adicionais ou estende a superclasse. As subclasses também
substituem (fornecem suas próprias definições para) os métodos herdados de uma superclasse.
Por exemplo, você pode criar uma classe Mamífero, que define certas propriedades e
comportamentos comuns a todos os mamíferos. Você pode criar uma classe Gato que estenda a
classe Mamífero. Dessa maneira, a herança pode promover a reutilização do código: em vez de
recriar todos os códigos comuns às duas classes, você pode simplesmente estender uma classe
existente. Outra subclasse, por sua vez, pode estender a classe Gato etc. Em um aplicativo
complexo, determinar como estruturar a hierarquia das classes é uma grande parte do projeto.
No ActionScript, você usa a palavra-chave extends para estabelecer a herança entre uma classe e
sua superclasse. Para obter mais informações, consulte “Criando subclasses” na página 167.
160
Capítulo 9: Criando classes com o ActionScript 2
Interfaces
As interfaces em programação orientada a objeto podem ser descritas como classes cujos métodos
não são implementados (definidos). Outra classe pode implementar os métodos declarados pela
interface.
Também é possível considerar uma interface como um “contrato de programação” que pode ser
usado para impor os relacionamentos entre classes não relacionadas de outra maneira. Por
exemplo, suponha que você esteja trabalhando com uma equipe de programadores, cada um
responsável por uma parte diferente (classe) do mesmo aplicativo. Ao projetar o aplicativo, você
estabelece um conjunto de métodos que as diferentes classes usarão para se comunicar. Portanto,
você cria uma interface que declara esses métodos, seus parâmetros e tipos de retorno. Qualquer
classe que implemente essa interface deve fornecer definições para esses métodos; caso contrário,
ocorrerá um erro do compilador.
Você também pode usar as interfaces para fornecer um forma limitada de “herança múltipla”, que
não é permitida no ActionScript 2. Na herança múltipla, uma classe estende mais de uma classe.
Por exemplo, no C++, a classe Gato pode estender a classe Mamífero, bem como uma classe
Brincalhão, que contém os métodos PerseguirCauda e ComerComidaGato. O ActionScript 2,
como o Java, não permite que uma classe estenda várias classes diretamente. Entretanto, você
pode criar uma interface Brincalhão que declara os métodos PerseguirCauda e
ComerComidaGato. Uma classe Gato, ou qualquer outra classe, pode implementar essa interface
e fornecer definições para esses métodos.
Usando classes: um exemplo simples
Para os que são novos em programação orientada a objeto, esta seção fornece uma visão geral do
fluxo de trabalho envolvido na criação e no uso de classes no Flash. Esse fluxo de trabalho inclui,
pelo menos, as seguintes etapas:
1 Definir uma classe em um arquivo de classes do ActionScript.
2 Salvar o arquivo de classes em uma pasta do caminho de classe designado (um local em que o
Flash procure as classes).
3 Criar uma instância da classe em outro script, em um documento do Flash (FLA) ou em um
arquivo de script externo, ou criar uma subclasse baseada na classe original.
Nesta seção também é analisado um novo recurso do ActionScript 2 denominado atribuição
estrita de tipos de dados, que permite especificar o tipo de dados para uma variável, um parâmetro
de função ou um tipo de retorno de função.
Apesar de esta seção abordar apenas classes, o fluxo de trabalho geral é o mesmo para usar
interfaces. Para obter mais informações, consulte “Criando e usando interfaces” na página 171.
Usando classes: um exemplo simples
161
Criando um arquivo de classes
Para criar uma classe, primeiro você deve criar um arquivo externo do ActionScript (AS).
As classes (e interfaces) só podem ser definidas em arquivos de script externos. Por exemplo, você
não pode definir uma classe em um script anexado a um quadro ou botão em um documento do
Flash (FLA). Para criar um arquivo externo AS, use o editor ActionScript incluído no Flash ou o
seu editor de código ou texto preferido.
Observação: O código do ActionScript em arquivos externos é compilado em um arquivo SWF
quando você publica, exporta, testa ou depura um arquivo FLA. Portanto, se você fizer alguma
alteração em um arquivo externo, precisará salvar o arquivo e recompilar os arquivos FLA que
o usam.
Nas etapas posteriores, você criará uma classe Person com duas propriedades (age e name) e um
único método (showInfo()) que exibe os valores dessas propriedades no painel Output (Saída).
Para criar o arquivo de classes:
1 Crie uma nova pasta no disco rígido e chame-a de PersonFiles. Essa pasta conterá todos os
arquivos desse projeto.
2 Siga um destes procedimentos:
■ Crie um novo arquivo no editor de texto ou código preferido.
■ (Somente para Flash MX Professional) Selecione File (Arquivo) > New (Novo) para abrir a
caixa de diálogo New Document (Novo documento), selecione ActionScript File (Arquivo
do ActionScript) na lista de tipos de arquivos e clique em OK. A janela Script é aberta com
um arquivo em branco.
3 Salve o arquivo como Person.as na pasta PersonFiles.
4 Na janela Script, digite o código a seguir:
class Person {
}
Essa é a classe declaration. Na sua forma mais básica, uma classe declaration consiste na palavrachave class, seguida pelo nome da classe (Person, neste caso) e chaves ({}). Tudo entre as
chave chama-se corpo da classe e é onde as propriedades e os métodos da classe são definidos.
Observação: O nome da classe (Person) corresponde ao nome do arquivo AS que a contém
(Person.as). Isso é muito importante; se esses dois nomes não corresponderem, a classe não será
compilada.
5 Para criar as propriedades da classe Person, use a palavra-chave var para definir duas variáveis
age
e name, como mostrado posteriormente.
class Person {
var age:Number;
var name:String;
}
Dica: Por convenção, as propriedades da classe são definidas na parte superior do corpo da
classe, o que facilita o entendimento do código, mas isso não é obrigatório.
162
Capítulo 9: Criando classes com o ActionScript 2
Observe a sintaxe dos dois pontos (var age:Number e var name:String) usada nas
declarações de variáveis. Esse é um exemplo de atribuição estrita de tipo de dados. Quando
você atribui um tipo a uma variável dessa maneira (var variableName:variableType), o
compilador do ActionScript 2 verifica se os valores atribuídos a essa variável correspondem ao
tipo especificado. Apesar de essa sintaxe não ser obrigatória, ela é recomendável e pode facilitar
a depuração de scripts. Para obter mais informações, consulte “Atribuição estrita de tipos de
dados” na página 35.)
6 Em seguida, você criará o método showInfo(), que retorna uma seqüência de caracteres préformatada com os valores das propriedades age e name. Adicione a definição da função
showInfo() ao corpo da classe, como mostrado a seguir.
class Person {
var age:Number;
var name:String;
// Método para retornar valores de propriedades
function showInfo():String {
return("Olá, meu nome é " + name + " e eu tenho " + age + " anos.");
}
}
Observe o uso da atribuição de tipo de dados (opcional mas recomendada) na definição
da função.
function showInfo():String {...}
Nesse caso, está sendo atribuído um tipo ao valor de retorno da função showInfo()
(uma seqüência de caracteres).
7 A última parte do código que você adicionará nesta seção é uma função especial que se chama
construtora. Em programação orientada a objeto, a função construtora inicializa cada nova
instância de uma classe.
A função construtora sempre tem o mesmo nome da classe. Para criar a função construtora da
classe, adicione o código a seguir:
class Person {
var age:Number;
var name:String;
// Método para retornar valores de propriedades
function showInfo():String {
return("Olá, meu nome é " + name + " e eu tenho " + age + "anos.");
}
// Função construtora
function Person (myName:String, myAge:Number) {
name = myName;
age = myAge;
}
}
A função construtora Person() pega dois parâmetros, myName e myAge e os atribui às
propriedades name e age. São atribuídos os tipos de dados String e Number, respectivamente,
aos dois parâmetros da função. Para obter mais informações sobre as funções construtoras,
consulte “Funções construtoras” na página 167.
Observação: Se você não criar uma função construtora, uma função vazia é criada
automaticamente durante a compilação.
Usando classes: um exemplo simples
163
8 Salve o arquivo como Person.as na pasta PersonFiles criada na etapa 1.
Se você estiver usando o Flash MX 2004 (não o Flash MX Professional), vá para a próxima
seção (consulte “Criando uma instância da classe Person” na página 164.)
9 (Somente Flash MX Professional) Verifique a sintaxe do arquivo de classes selecionando Tools
(Ferramentas)> Check Syntax (Verificar sintaxe) ou pressionando Control+T (Windows) ou
Command+T (Macintosh).
Se algum erro for informado no painel Output, compare o código no script com o código final
na etapa 7 anterior. Se você não conseguir corrigir os erros do código, copie o código completo
na etapa 7 do painel Help (Ajuda).
Criando uma instância da classe Person
A próxima etapa é criar uma instância da classe Person em outro script, como um script de quadro
em um documento Flash (FLA) ou outro script AS, e atribuí-la a uma variável. Para criar uma
instância de uma classe personalizada, use o operador new, como faria ao criar uma instância de
uma classe interna ActionScript (como a classe XML ou TextField).
Por exemplo, o código a seguir cria uma instância da classe Person e a atribui à variável
newPerson.
var newPerson:Person = new Person("Nate", 32);
Este código chama a função construtora da classe Person, passando como parâmetros os valores
"Nate" e 32.
A variável newPerson é considerada um objeto Person. A atribuição de um tipo aos objeto
permite ao compilador garantir que você não tentará acessar as propriedades ou os métodos que
não estão definidos na classe. (A exceção é se você declarar a classe como dinâmica usando a
palavra-chave dynamic. Consulte “Criando classes dinâmicas” na página 178.)
Para criar uma instância da classe Person no documento Flash:
1 No Flash, selecione File > New e Flash Document (Documento do Flash) na lista de tipos de
documentos e clique em OK.
2 Salve o arquivo como createPerson.fla na pasta PersonFiles criada anteriormente.
3 Selecione Layer 1 (Camada 1) na Timeline (Linha de tempo) e abra o painel Actions, em
Window (Janela) > Development Panels (Painéis de desenvolvimento) > Actions.
4 No painel Actions, insira o seguinte código:
var person_1:Person = new Person("Nate", 32);
var person_2:Person = new Person("Jane", 28);
trace(person_1.showInfo());
trace(person_2.showInfo());
O código anterior cria duas instâncias da classe Person, person_1 e person_2, e chama o
método showInfo() em cada instância.
5 Salve o seu trabalho e selecione Control (Controlar) > Test Movie (Testar filme). Você deve ver
o seguinte no painel Output :
Olá, meu nome é Nate e eu tenho 32 anos.
Olá, meu nome é Jane e eu tenho 28 anos.
164
Capítulo 9: Criando classes com o ActionScript 2
Quando você cria uma instância de uma classe chamando sua função construtora, o Flash procura
um arquivo AS de nome igual ao do construtor em um conjunto de locais de pasta
predeterminados. Esse grupo de locais de pasta é conhecido coletivamente como caminho de classe
(consulte “Noções básicas de caminho de classe” na página 173).
Agora você deve ter uma idéia geral de como criar e usar classes nos documentos do Flash. No
restante deste capítulo você encontrará informações mais detalhadas sobre as classes e interfaces.
Criando e usando classes
Como discutido anteriormente, uma classe consiste em duas partes: a declaração e o corpo.
A declaração da classe consiste pelo menos no comando class, seguido por um identificador do
nome da classe e chaves. Tudo que está entre as chaves é o corpo da classe.
class className {
// corpo da classe
}
Você pode definir classes somente nos arquivos ActionScript (AS). Por exemplo, não é possível
definir uma classe em um script de quadro no arquivo FLA. Além disso, o nome da classe
especificado deve corresponder ao nome do arquivo AS que o contém. Por exemplo, se você criar
uma classe Shape, o arquivo AS que contém a definição da classe deve ser chamado Shape.as.
// No arquivo Shape.as
class Shape {
// corpo da classe Shape
}
Todos os arquivos da classe AS criados devem ser salvos em uma das pastas do caminho de classe
designado — pastas em que o Flash procura definições de classe ao compilar os scripts. (Consulte
“Noções básicas de caminho de classe” na página 173.)
Criando propriedades e métodos
Um membro da classe consiste em propriedades (declarações de variáveis) e métodos (declarações
de função). Você deve declarar todas as propriedades e métodos dentro do corpo da classe
(as chaves); caso contrário, ocorrerá um erro durante a compilação.
Qualquer variável declarada em uma classe, mas fora de uma função, é uma propriedade da classe.
Por exemplo, a classe Person analisada anteriormente tem duas propriedades, age e name, de tipo
Number e String, respectivamente.
class Person {
var age:Number;
var name:String;
}
Igualmente, qualquer função declarada em uma classe é considerada um método da classe.
No exemplo da classe Person, você criou um único método showInfo().
class Person {
var age:Number;
var name:String;
function showInfo() {
// definição do método showInfo()
}
}
Criando e usando classes
165
Inicializando as propriedades inline
Você pode inicializar as propriedades inline, quando as declara, com os valores padrão,
como mostrado aqui:
class Person {
var age:Number = 50;
var name:String = "John Doe";
}
Quando você inicializa as propriedades inline, a expressão à direita de uma atribuição deve ser
uma constante de tempo de compilação. Ou seja, a expressão não pode se referir a algo definido
durante a execução. As constantes de tempo de compilação incluem valores literais da seqüência
de caracteres, números, valores booleanos, null, e undefined, bem como funções construtoras
para as seguintes classes internas: Array, Boolean, Number, Object e String.
Por exemplo, a definição de classe a seguir inicializa várias propriedades inline:
class
var
var
var
var
var
CompileTimeTest {
foo:String = "my foo"; // OK
bar:Number = 5; // OK
bool:Boolean = true; // OK
name:String = new String("Jane"); // OK
who:String = foo; // OK, porque ‘foo’ é uma constante
var whee:String = myFunc(); // erro! não é uma expressão constante em tempo
de compilação
var lala:Number = whee; // erro! não é uma expressão constante em tempo de
compilação
var star:Number = bar + 25; // OK, ‘bar’ e ‘25’ são constantes
function myFunc() {
return "Olá mundo";
}
}
Essa regra aplica-se apenas a variáveis da instância (variáveis que são copiadas em cada instância de
uma classe), e não a variáveis de classe (variáveis que pertencem à própria classe). Para obter mais
informações sobre esses tipos de variáveis, consulte “Membros de instâncias e classes”
na página 169.
166
Capítulo 9: Criando classes com o ActionScript 2
Criando subclasses
Em programação orientada a objeto, uma subclasse pode herdar as propriedades e os métodos de
outra classe, a superclasse. Para criar esse tipo de relacionamento entre duas classes, use a cláusula
extends do comando class. Para especificar uma superclasse, use a seguinte sintaxe.
class SubClass extends SuperClass {}
A classe especificada em SubClass herda todas as propriedades e métodos definidos pela
superclasse. Por exemplo, você pode criar uma classe Mamífero, que defina certas propriedades e
métodos comuns a todos os mamíferos. Para criar uma variação da classe Mamífero, por exemplo,
uma classe Marsupial, você estenderá a classe Mamífero, ou seja, criará uma subclasse da classe
Mamífero.
class Marsupial extends Mamífero {}
A subclasse herda todas as propriedades e métodos da superclasse, incluindo as propriedades ou os
métodos declarados como privados usando a palavra-chave private. (Para obter mais
informações sobre variáveis privadas, consulte “Controlando o acesso de membros”
na página 168.)
A herança múltipla, ou herança de mais de uma classe, não é permitida. Uma classe só pode
estender uma única superclasse. Você pode estender suas próprias classes personalizadas, bem
como qualquer classe interna do ActionScript, como classe XML, Sound ou MovieClip. Quando
você estende uma classe interna do ActionScript, a classe personalizada herda todos os métodos e
propriedades da classe interna.
Por exemplo, o código a seguir define a classe JukeBox, que estende a classe interna Sound.
Ele define um array songList e um método playSong() que toca uma música e chama o
método loadSound(), que herda da classe Sound.
class JukeBox extends Sound {
var songList:Array = new Array("beethoven.mp3", "bach.mp3", "mozart.mp3");
function playSong(songID:Number) {
this.loadSound(songList[songID]);
}
}
Funções construtoras
Uma função construtora de classe é uma função especial chamada automaticamente quando você
cria uma instância de uma classe usando o operador new. A função construtora tem o mesmo
nome da classe que a contém. Por exemplo, a classe Person criada anteriormente continha a
seguinte função construtora:
// Função construtora da classe Person
function Person (myName:String, myAge:Number) {
name = myName;
age = myAge;
}
Se nenhuma função construtora for explicitamente declarada, ou seja, se você não criar uma
função cujo nome corresponda ao da classe, o compilador automaticamente criará uma função
construtora vazia.
Uma classe pode conter apenas uma função construtora; funções construtoras sobrecarregadas não
são permitidas no ActionScript 2.
Criando e usando classes
167
Controlando o acesso de membros
O padrão é que qualquer propriedade ou método de uma classe possa ser acessado por qualquer
outra classe: todos os membros de uma classe são públicos por padrão. Entretanto, em alguns casos
você pode querer proteger os dados ou métodos de uma classe do acesso de outras classes. Você
precisará tornar esses membros privados, disponíveis apenas para a classe que os declara ou define.
Especifique membros públicos ou privados usando o atributo de membro public ou private.
Por exemplo, o código a seguir declara uma variável privada (uma propriedade) e um método
privado (uma função).
Por exemplo, a classe a seguir (LoginClass) define uma propriedade privada userName e um
método privado getUserName().
class LoginClass {
private var userName:String;
private function getUserName() {
return userName;
}
// Construtor:
function LoginClass(user:String) {
this.userName = user;
}
}
Os membros privados (propriedades e métodos) são acessíveis apenas para a classe que define esses
membros e para as subclasses dessa classe original. As instâncias da classe original, ou as instâncias
das subclasses dessa classe, não podem acessar as propriedades e os métodos declarados
privadamente; ou seja, os membros privados são acessíveis somente nas definições da classe, e não
no nível da instância.
Por exemplo, você pode criar uma subclasse de LoginClass chamada NewLoginClass. Essa
subclasse pode acessar a propriedade privada (userName) e o método (getUserName()) definidos
pela LoginClass.
class NewLoginClass extends LoginClass {
// pode acessar userName e getUserName()
}
Entretanto, uma instância da LoginClass ou NewLoginClass não pode acessar esses membros
privados. Por exemplo, o código a seguir, adicionado a um script de quadro em um arquivo FLA,
resultará em um erro do compilador indicando que o getUserName() é privado e não pode ser
acessado.
var loginObject:LoginClass = new LoginClass("Maxwell");
var user = loginObject.getUserName();
Observe também que o controle de acesso de membro é um único recurso de tempo de
compilação; durante a execução, o Flash Player não distingue entre membros privados
ou públicos.
168
Capítulo 9: Criando classes com o ActionScript 2
Membros de instâncias e classes
Na programação orientada a objeto, os membros (propriedades ou métodos) de uma classe podem
ser membros da instância ou membros da classe. Os membros da instância são criados e copiados,
para cada instância da classe; em contraste, os membros da classe são criados apenas uma vez por
classe. (Os membros da classe também são conhecidos como membros estáticos.)
Para chamar um método da instância ou acessar uma propriedade da instância, você faz referência
a uma instância da classe. Por exemplo, o código a seguir chama o método showInfo() em uma
instância da classe MovieClip clip_mc:
clip_mc.showInfo();
Os membros da classe (estática), entretanto, são atribuídos à própria classe, e não a uma instância
da classe. Para chamar um método da classe ou acessar uma propriedade da classe, você faz
referência ao próprio nome da classe, em vez de uma instância específica da classe:
ClassName.classMember;
Por exemplo, a classe Math do ActionScript consiste apenas em métodos e propriedades estáticos.
Para chamar qualquer um dos seus métodos, você não cria uma instância da classe Math. Em vez
disso, basta chamar os métodos na própria classe Math. O código a seguir chama o método
sqrt() da classe Math:
var square_root:Number = Math.sqrt(4);
Criando membros de classe
Para especificar que uma propriedade de uma classe é estática, use o modificador static, como
mostrado a seguir.
static var variableName;
Você também pode declarar que os métodos de uma classe sejam estáticos.
static function functionName() {
// corpo da função
}
Os métodos da classe (estáticos) só podem acessar as propriedades da classe (estática), e não as
propriedades da instância. Por exemplo, o código a seguir resultará em um erro do compilador,
porque o método da classe getName() faz referência à variável da instância name.
class StaticTest {
var name="Ted";
static function getName() {
var local_name = name;
// Erro! Não é possível acessar variáveis de instância em funções
estáticas.
}
}
Para resolver esse problema, você pode transformar o método em um método da instância ou
transformar a variável em uma variável da classe.
Membros de instâncias e classes
169
Usando membros de classe: um exemplo simples
É possível usar os membros de classe para manter as informações de estado de uma classe e suas
instâncias. Por exemplo, para acompanhar o número de instâncias que foram criadas de uma
determinada classe. Uma maneira fácil de fazer isso é usar uma propriedade da classe que é
incrementada sempre que uma nova instância é criada.
No exemplo a seguir, você criará uma classe Widget que define um contador de instância simples
e estático chamado widgetCount. Sempre que uma nova instância da classe for criada, o valor de
widgetCount será incrementado em 1, e o valor atual de widgetCount será exibido no painel
Output.
Para criar um contador de instância usando uma variável da classe:
1 Crie um novo arquivo ActionScript (AS).
2 Adicione o código a seguir ao arquivo:
class Widget {
static var widgetCount:Number = 0; // inicializar a variável de classe
function Widget() {
trace("Creating widget #" + widgetCount);
widgetCount++;
}
}
3
4
5
6
A variável widgetCount é declarada como estática, portanto, é inicializada como 0 somente
uma vez. Sempre que a função construtora da classe Widget é chamada, ela adiciona 1 à
widgetCount e exibe o número da instância atual que está sendo criada.
Salve o arquivo como Widget.as.
Crie um novo documento Flash (FLA) e salve-o como createWidget.fla no mesmo diretório do
Widget.as.
Nesse arquivo, você criará novas instâncias da classe Widget.
Em createWidget.fla, selecione Layer 1 na Timeline e abra o painel Actions (Window >
Development Panels > Actions).
Adicione o código a seguir ao painel Actions.
// Antes que você crie qualquer instância da classe,
// widgetCount é zero (0)
trace("Widget count at start: " + Widget.widgetCount);
var widget_1 = new Widget();
var widget_2 = new Widget();
var widget_3 = new Widget();
7 Salve o arquivo e teste-o (Control > Test Movie).
Você deve ver o seguinte no painel Output:
Widget count at
Creating widget
Creating widget
Creating widget
170
start: 0
# 0
# 1
# 2
Capítulo 9: Criando classes com o ActionScript 2
Membros de classe e subclasses
Os membros da classe propagam-se para as subclasses da superclasse que define esses membros.
No exemplo anterior (consulte “Usando membros de classe: um exemplo simples”
na página 170), você usou uma propriedade de classe que acompanha o número de instâncias
dessa classe criada. Você pode criar uma subclasse da classe Widget, como mostrado a seguir.
class SubWidget extends Widget {
function SubWidget() {
trace("Creating subwidget # "+Widget.widgetCount);
}
}
Criando e usando interfaces
Uma interface na programação orientada a objeto é como uma classe cujos métodos foram
declarados, mas que não tem qualquer outra finalidade. Ou seja, uma interface consiste em
métodos “vazios”.
Uma utilidade das interfaces é impor um protocolo entre classes não relacionadas de outra
maneira, como analisado a seguir. Por exemplo, suponha que você faça parte de uma equipe de
programadores, cada um trabalhando em uma parte diferente, ou seja, em uma classe diferente,
de um grande aplicativo. A maioria dessas classes não está relacionada, mas você precisa fazer com
que elas se comuniquem. Ou seja, você precisa definir uma interface ou um protocolo de
comunicação, ao qual todas as classes devem aderir.
Uma maneira de fazer isso é criar uma classe Communication que defina todos esses métodos e
em seguida, fazer com que cada classe seja estendida ou herdada dessa superclasse. Como o
aplicativo consiste em classes que não estão relacionadas, não faz sentido impor uma hierarquia de
classe comum a elas. Uma solução melhor é criar uma interface que declare os métodos que essas
classes usarão para se comunicar e, em seguida, cada classe implementa (fornece suas próprias
definições para) esses métodos.
Normalmente, você pode programar bem sem usar interfaces. Entretanto, quando usadas
apropriadamente, as interfaces podem tornar o projeto dos aplicativos mais elegante,
dimensionável e fácil de manter.
Criando uma interface
O processo de criação de uma interface é igual ao de criação de uma classe. Assim como as classes,
você só pode definir interfaces nos arquivos ActionScript (AS) externos. Você declara uma
interface usando a palavra-chave interface, seguida pelo nome da interface e por chaves, que
definem o corpo da interface.
interface interfaceName {
// declarações de método de interface
}
Uma interface só pode conter declarações de métodos (funções), incluindo parâmetros, tipos de
parâmetro e tipos de retorno de função.
Por exemplo, o código a seguir declara uma interface MyInterface com dois métodos,
method_1() e method_2(). O primeiro método não tem parâmetros e tipo de retorno
(especificado como Void). A segunda declaração de método tem um único parâmetro de tipo
String e especifica um tipo de retorno Boolean.
Criando e usando interfaces
171
interface MyInterface {
function method_1():Void;
function method_2(param:String):Boolean;
}
As interfaces não podem conter declarações de variável ou atribuições. As funções declaradas em
uma interface não podem conter chaves. Por exemplo, a interface a seguir não será compilada.
interface BadInterface{
// Erro do compilador. Declarações de variáveis não permitidas em
interfaces.
var illegalVar;
// Erro do compilador. Corpos de função não permitidos em interfaces.
function illegalMethod(){
}
}
Interfaces como tipos de dados
Como uma classe, uma interface define um novo tipo de dados. Qualquer classe que implemente
uma interface poderá ser considerada como do tipo definido pela interface. Esse recurso é útil para
determinar se um objeto específico implementa uma dada interface. Por exemplo, considere as
seguinte interface.
interface Movable {
function moveUp();
function moveDown();
}
Agora considere a classe Box que implementa a interface Movable.
class Box implements Movable {
var x_pos, y_pos;
function moveUp() {
// definição de método
}
function moveDown() {
// definição de método
}
}
Em seguida, em outro script onde você criou uma instância da classe Box, é possível declarar uma
variável do tipo Movable.
var newBox:Movable = new Box();
Durante a execução, no Flash Player 7 e versões posteriores, você pode distribuir uma expressão
para um tipo de interface. Se a expressão for um objeto que implemente a interface ou tenha uma
superclasse que implemente a interface, o objeto será retornado. Caso contrário, será retornado
null. Esse recurso é útil para verificar se um determinado objeto implementa uma interface
específica.
Por exemplo, o código a seguir verifica primeiro se o nome do objeto someObject implementa a
interface Movable antes de chamar o método moveUp() no objeto.
if(Movable(someObject) != null) {
someObject.moveUp();
}
172
Capítulo 9: Criando classes com o ActionScript 2
Noções básicas de caminho de classe
Para usar uma classe ou interface definida, o Flash deve poder localizar os arquivos AS externos
que contêm a definição da classe ou interface. A lista de pastas na qual o Flash procura as
definições de classe e interface chama-se caminho de classe.
Quando você cria um arquivo de classes ActionScript, é preciso salvar o arquivo em uma das
pastas especificadas no caminho de classe ou em uma subpasta. (Você pode modificar o caminho
de classe para incluir o caminho da pasta desejada; consulte “Modificando o caminho de classe”
na página 174.) Caso contrário, o Flash não poderá resolver ou localizar a classe ou interface
especificada no script. As subpastas criadas em uma pasta do caminho de classe chamam-se pacotes
e permitem organizar as classes. Para obter mais informações, consulte “Usando pacotes”
na página 175.
Caminhos de classe globais e em nível de documento
O Flash tem duas configurações de caminho de classe: um caminho de classe global e um
caminho de classe em nível de documento. O caminho de classe global aplica-se a arquivos AS e
FLA externos e é definido na caixa de diálogo Preferences, em Edit (Editar) > Preferences
(Preferências). O caminho de classe em nível de documento aplica-se apenas a arquivos FLA e é
definido na caixa de diálogo Publish Settings, em File > Publish Settings (Configurações de
publicação), de um determinado FLA.
O padrão é que os caminhos de classe globais contenham dois caminhos de pasta: um caminho
relativo que aponte para a pasta que contém o documento atual, e a pasta Classes localizada na
pasta de configuração do usuário instalada com o Flash. O local desta pasta é mostrado aqui:
• Windows 2000 ou XP: C:\Documents and Settings\<user>\Local Settings\Application
•
•
Data\Macromedia\Flash 2004\<language>\Configuration\
Windows 98: C:\Windows\Application Data\Macromedia\Flash 2004\
<language>\Configuration\
Macintosh OS X: Hard Drive/Users/Library/Application Support/Macromedia/Flash 2004/
<language>/Configuration/
O padrão é que o caminho de classe em nível de documento fique vazio.
Como o compilador resolve as referências de classe
Quando o Flash tenta resolver as referências de classe em um script FLA, ele busca primeiro o
caminho de classe em nível de documento especificado para esse FLA. Se a classe não se encontrar
nesse caminho de classe, ou se esse caminho de classe estiver vazio, o Flash pesquisará o caminho
de classe global. Se a classe não se encontrar no caminho de classe global, ocorrerá um erro do
compilador.
Quando o Flash tenta resolver as referências de classe em um script AS, ele pesquisa apenas as
pastas do caminho de classe global, já que os arquivos AS não têm caminho de classe de
documento associado.
Noções básicas de caminho de classe
173
Modificando o caminho de classe
Você pode modificar o caminho de classe global usando a caixa de diálogo Preferences. Para
modificar a configuração do caminho de classe em nível de documento, use a caixa de diálogo
Publish Settings para o arquivo FLA. Você pode adicionar caminhos de pasta absolutos (por
exemplo, C:/my_classes) e caminhos de pasta relativos (por exemplo, ../my_classes ou “.”).
Por padrão, o caminho de classe global contém um caminho absoluto (a pasta Classes na pasta de
configuração do usuário) e um caminho de classe relativo, indicado por um único ponto (.), que
aponta para a pasta de documentos atual. Saiba que os caminhos de classe relativos podem
apontar para pastas diferentes, dependendo do local do documento que está sendo compilado ou
publicado. Para obter mais informações, consulte “Caminhos de classe globais e em nível de
documento” na página 173.
Para modificar o caminho de classe global:
1 Selecione Edit > Preferences para abrir a caixa de diálogo Preferences.
2 Clique na guia ActionScript e no botão ActionScript 2.0 Settings (Configurações do
ActionScript 2.0).
3 Utilize um dos seguintes procedimentos:
■
■
■
Para adicionar uma pasta ao caminho da classe, clique no botão Browse to Path, procure a
pasta desejada e clique em OK.
A alternativa é clicar no botão Add New Path para adicionar uma nova linha à lista de
caminhos de classe. Clique duas vezes na nova linha, digite um caminho relativo ou absoluto
e clique em OK.
Para editar uma pasta de caminhos de classe existente, selecione o caminho na lista
Classpath e clique no botão Browse to Path, procure a pasta desejada e clique em OK.
A alternativa é clicar duas vezes no caminho na lista Classpath, digitar o caminho desejado e
clicar em OK.
Para excluir uma pasta do caminho de classe, selecione o caminho na lista Classpath e clique
no botão Remove from Path.
Para modificar o caminho de classe em nível de documento:
1 Selecione File > Publish Settings para abrir a caixa de diálogo Publish Settings.
2 Clique na guia Flash.
3 Clique no botão Settings perto do menu pop-up ActionScript Version (Versão do ActionScript).
4 Utilize um dos seguintes procedimentos:
■
■
■
174
Para adicionar uma pasta ao caminho da classe, clique no botão Browse to Path, procure a
pasta desejada e clique em OK.
A alternativa é clicar no botão Add New Path para adicionar uma nova linha à lista de
caminhos de classe. Clique duas vezes na nova linha, digite um caminho relativo ou absoluto
e clique em OK.
Para editar uma pasta de caminhos de classe existente, selecione o caminho na lista
Classpath e clique no botão Browse to Path, procure a pasta desejada e clique em OK.
A alternativa é clicar duas vezes no caminho na lista Classpath, digitar o caminho desejado e
clicar em OK.
Para excluir uma pasta do caminho de classe, selecione o caminho na lista Classpath e clique
no botão Remove from Path.
Capítulo 9: Criando classes com o ActionScript 2
Usando pacotes
Você pode organizar os arquivos de classe do ActionScript em pacotes. Um pacote é uma pasta
que contém um ou mais arquivos de classe e reside em uma pasta designada do caminho da classe.
(Consulte “Noções básicas de caminho de classe” na página 173.) Um pacote pode, por sua vez,
conter outros pacotes, chamados subpacotes, cada um com seus próprios arquivos de classe.
Os pacotes normalmente são usados para organizar classes relacionadas. Por exemplo, você pode
ter três classes relacionadas, Square, Circle e Triangle, que são definidas em Square.as, Circle.as e
Triangle.as. Suponha que você tenha salvo os arquivos AS em uma pasta especificada no caminho
de classe.
// Em Square.as:
class Square {}
// Em Circle.as:
class Circle {}
// Em Triangle.as:
class Triangle {}
Como esses três arquivos de classe estão relacionados, você pode decidir colocá-los em um pacote
(pasta) Shapes. Nesse caso, o nome da classe totalmente qualificado conterá o caminho do pacote
e o nome da classe simples. Os caminhos do pacote são denotados com a sintaxe de ponto, na qual
cada ponto indica uma subpasta.
Por exemplo, se você colocou cada arquivo AS que define uma forma na pasta Shapes, será
necessário alterar o nome de cada arquivo de classe para refletir o novo local, da seguinte maneira:
// Em Shapes/Square.as:
class Shapes.Square {}
// Em Shapes/Circle.as:
class Shapes.Circle {}
// Em Shapes/Triangle.as:
class Shapes.Triangle {}
Para fazer referência a uma classe que se encontre em uma pasta de pacotes, você poderá
especificar o nome da classe totalmente qualificado ou importar o pacote usando o comando
import. Para obter mais informações, consulte “Importando classes” na página 175.
Importando classes
Para fazer referência a uma classe em outro script, você deve prefixar o nome da classe com o
caminho do pacote de classe. A combinação do nome de uma classe e o caminho do pacote é o
nome de classe totalmente qualificado da classe. Se uma classe estiver em uma pasta do caminho de
classe de nível superior, e não em uma subpasta na pasta do caminho de classe, seu nome de classe
totalmente qualificado será o nome da classe.
Para especificar os caminhos do pacote, use a notação de ponto para separar os nomes de pastas do
pacote. Os caminhos do pacote são hierárquicos, nos quais cada ponto representa uma pasta
aninhada. Por exemplo, suponha que você tenha criado uma classe Data que se encontre em com/
network/ package no caminho de classe. Para criar uma instância dessa classe, você pode
especificar o nome da classe totalmente qualificado, da seguinte maneira:
var dataInstance = new com.network.Data();
Importando classes
175
Você também pode usar o nome da classe totalmente qualificado para digitar as suas variáveis:
var dataInstance:com.network.Data = new Data();
Você pode usar o comando import para importar pacotes para um script, o que permite usar o
nome abreviado de uma classe em vez do nome totalmente qualificado. Pode também usar o
caractere curinga (*) para importar todas as classes de um pacote.
Por exemplo, suponha que você tenha criado uma classe UserClass que esteja incluída no caminho
da pasta de pacotes macr/util/users:
// No arquivo macr/util/users/UserClass.as
class macr.util.users.UserClass { ... }
Suponha que, em outro script, você tenha importado essa classe da maneira a seguir usando o
comando import:
import macr.util.users.UserClass;
Depois, no mesmo script, você pode fazer referência a essa classe pelo seu nome abreviado:
var myUser:UserClass = new UserClass();
Você também pode usar o caractere curinga (*) para importar todas as classes de um pacote
específico. Por exemplo, suponha que você tenha um pacote macr.util com dois arquivos de
classes ActionScript, foo.as e bar.as. Em outro script, você pode importar as duas classes desse
pacote usando o caractere curinga, da maneira mostrada a seguir.
import macr.util.*;
No mesmo script, você pode fazer referência à classe foo ou bar diretamente.
var myFoo:foo = new foo();
var myBar:bar = new bar();
O comando import aplica-se apenas ao script atual (quadro ou objeto) no qual ele é chamado.
Por exemplo, suponha que você importe todas as classes do pacote macr.util no Frame 1 de um
documento do Flash. Nesse quadro, você pode fazer referência às classes desse pacote por seus
nomes simples.
// No Quadro 1 de um FLA:
import macr.util.*;
var myFoo:foo = new foo();
Em outro script do quadro, entretanto, você precisará fazer referência às classes desse pacote por
seus nomes totalmente qualificados (var myFoo:foo = new macr.util.foo();) ou adicionar
um comando import ao outro quadro que importe as classes desse pacote.
Se uma classe importada não for usada em um script, a classe não será incluída no código de byte
do SWF resultante.
176
Capítulo 9: Criando classes com o ActionScript 2
Métodos get/set implícitos
A prática da programação orientada a objeto não aconselha o acesso direto às propriedades de uma
classe. As classes normalmente definem os métodos “get”, que fornecem acesso de leitura, e os
métodos “set”, que fornecem acesso de gravação, a uma propriedade específica. Por exemplo,
imagine uma classe que contenha uma propriedade userName:
var userName:String;
Em vez de permitir que as instâncias da classe acessem diretamente essa propriedade
(obj.userName = "Jody", por exemplo), a classe pode ter dois métodos, getUserName e
setUserName, que serão implementados da seguinte maneira:
function getUserName:String() {
return userName;
}
function setUserName(name:String): {
userName = name;
}
Como você pode ver, getUserName retorna o valor atual de userName, e setUserName define o
valor de userName como o parâmetro da seqüência de caracteres passado para o método.
Uma instância da classe usará a seguinte sintaxe para obter ou definir a propriedade userName.
// chamando o método "get"
var name = obj.getUserName();
// chamando o método "set"
obj.setUserName("Jody");
Entretanto, se você quiser usar uma sintaxe mais concisa, use os métodos get/set implícitos.
Os métodos get/set implícitos permitem acessar as propriedades da classe de uma maneira direta
e, ao mesmo tempo, manter-se de acordo com os princípios da OOP.
Para definir esses métodos, use os atributos de método get e set. Você cria métodos que obtêm ou
definem o valor de uma propriedade e adiciona a palavra-chave get ou set antes do nome do método.
function get user():String {
return userName;
}
function set user(name:String):Void {
userName = name;
}
Um método get não deve ter parâmetros. Um método set deve ter exatamente um parâmetro
obrigatório. Um método set pode ter o mesmo nome de um método get no mesmo escopo.
Os métodos get/set não podem ter o mesmo nome de outras propriedades. Por exemplo, no
código do exemplo anterior que define os métodos get e set chamados user, você não pode ter
também uma propriedade chamada user na mesma classe.
Ao contrário dos métodos simples, os métodos get/set são chamados sem parênteses ou
argumentos. Por exemplo, agora é possível usar a sintaxe a seguir para acessar ou modificar o valor
de userName com os métodos get/set definidos anteriormente.
var name = obj.user;
obj.user = "Jack";
Observação: Os métodos get/set implícitos são abreviações sintáticas do método
Object.addProperty() no ActionScript 1. Consulte “Adicionando propriedades de apanhador/
definidor a objeto no ActionScript 1” na página 875.
Métodos get/set implícitos
177
Criando classes dinâmicas
O padrão é que as propriedades e os métodos de uma classe sejam fixos. Ou seja, uma instância de
uma classe não pode criar ou acessar as propriedades ou os métodos que não foram originalmente
declarados ou definidos pela classe. Por exemplo, considere uma classe Person que defina duas
propriedades, name e age:
class Person {
var name:String;
var age:Number;
}
Se, em outro script, você criar uma instância da classe Person e tentar acessar uma propriedade da
classe que não existe, o compilador gerará um erro. Por exemplo, o código a seguir cria uma nova
instância da classe Person (a_person) e tenta atribuir um valor a uma propriedade hairColor,
que não existe.
var a_person:Person = new Person();
a_person.hairColor = "blue"; // erro do compilador
Esse código gera um erro do compilador porque a classe Person não declarou uma propriedade
hairColor. Na maioria dos casos, é exatamente isso que você deseja que aconteça.
Em alguns casos, entretanto, você pode adicionar e acessar propriedades ou métodos de uma
classe durante a execução, que não foram definidos na classe original. O modificador de classe
dynamic permite que você faça exatamente isso. Por exemplo, o código a seguir adiciona o
modificador dynamic à classe Person discutida anteriormente:
dynamic class Person {
var name:String;
var age:Number;
}
Agora, as instâncias da classe Person podem adicionar e acessar propriedades e métodos que não
foram definidos na classe original.
var a_person:Person = new Person();
a_person.hairColor = "blue"; // nenhum erro de compilador porque a classe é
dinâmica
178
Capítulo 9: Criando classes com o ActionScript 2
Como as classes são compiladas e exportadas
O padrão é que as classes usadas por um arquivo SWF sejam empacotadas e exportadas no
primeiro quadro do SWF. Você também pode especificar o quadro onde as classes são empacotas e
exportadas. Esse recurso é útil, por exemplo, quando um arquivo SWF usa muitas classes que
exigem muito tempo de download. Se as classes forem exportadas no primeiro quadro, o usuário
deverá aguardar o download de todos os códigos das classes antes de o quadro aparecer.
Especificando um quadro posterior na Timeline, você pode exibir uma curta animação do
carregamento nos primeiros quadros da Timeline durante o download do código das classes do
quadro posterior.
Para especificar o quadro de exportação das classes de um documento Flash:
1 Com um arquivo FLA aberto, selecione File > Publish Settings.
2 Na caixa de diálogo Publish Settings, clique na guia Flash.
3 Clique no botão Settings perto do menu pop-up da versão do ActionScript para abrir a caixa de
diálogo ActionScript Settings.
4 Na caixa de texto Export Frame for Classes (Exportar quadro para classes), digite o número do
quadro para o qual deseja exportar o código das classes.
Se o quadro especificado não existir na Timeline, você receberá uma mensagem de erro ao
publicar o SWF.
5 Clique em OK, para escolher a caixa de diálogo ActionScript Settings, e em OK, para fechar a
caixa de diálogo Publish Settings.
Como as classes são compiladas e exportadas
179
180
Capítulo 9: Criando classes com o ActionScript 2
Esta parte descreve como incorporar mídia e dados externos aos aplicativos do Macromedia Flash.
Capítulo 10: Trabalhando com dados externos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Capítulo 11: Trabalhando com mídia externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Parte IV
PARTE IV
Trabalhando com mídia e dados externos
CAPÍTULO 10
Trabalhando com dados externos
No Macromedia Flash MX 2004 e no Macromedia Flash MX Professional 2004, você pode usar o
ActionScript para carregar dados de origens externas em um arquivo SWF. Pode também enviar
dados de um arquivo SWF para processamento por um servidor de aplicativos (como Macromedia
ColdFusion MX ou Macromedia JRun) ou outro tipo de script do servidor, como PHP ou Perl.
O Flash Player pode enviar e carregar dados através do HTTP, HTTPS ou de um arquivo de texto
local. Você pode criar conexões persistentes de soquete TCP/IP para aplicativos que exijam baixa
latência, por exemplo, aplicações de bate-papo ou um serviço de cotação de ações.
É possível formatar os dados carregados ou enviados de um arquivo SWF como XML (Extensible
Markup Language) ou como pares nome/valor.
O Flash Player também pode enviar e receber dados do ambiente de host, um navegador da Web,
por exemplo, ou de outra instância do Flash Player no mesmo computador.
Por padrão, um arquivo SWF só pode acessar dados residentes no mesmo domínio (por exemplo,
www.macromedia.com) no qual o filme do Flash foi originado. Para obter mais informações,
consulte “Recursos de segurança do Flash Player” na página 195.)
Enviando e carregando variáveis para/de uma origem remota
Um SWF é uma janela para a captura e a exibição de informações, que se assemelha a uma página
HTML. Contudo, os arquivos SWF podem permanecer carregados no navegador e ser
constantemente atualizados com novas informações sem a necessidade do recarregamento da
página inteira. Com as funções e os métodos do ActionScript, você pode enviar e receber
informações de scripts do servidor, arquivos de texto e arquivos XML.
Além disso, os scripts do servidor podem solicitar informações específicas de um banco de dados e
retransmiti-las para um arquivo SWF. Os scripts do servidor podem ser escritos em diversas
linguagens: as mais comuns são CFML, Perl, ASP (Microsoft Active Server Pages) e PHP.
Ao armazenar as informações em um banco de dados e recuperá-las, você pode criar um conteúdo
dinâmico e personalizado para o SWF. Por exemplo, pode criar um quadro de mensagens, perfis
pessoais de usuários ou um carrinho de compras que controle o que o usuário comprou para
poder determinar suas preferências.
183
Várias funções e métodos do ActionScript permitem transferir informações para/de um SWF.
Cada função ou método usa um protocolo para transferir as informações e requer que elas sejam
formatadas de uma determinada maneira.
• As funções e os métodos de MovieClip que usam o protocolo HTTP ou HTTPS para enviar
•
•
•
informações em um formato de código URL são getURL(), loadVariables(),
loadVariablesNum(), loadMovie() e loadMovieNum().
Os métodos LoadVars que usam o protocolo HTTP ou HTTPS para enviar e carregar
informações em formato de código URL são load(), send() e sendAndLoad().
Os métodos que usam o protocolo HTTP ou HTTPS para enviar e carregar informações como
XML são XML.send(), XML.load() e XML.sendAndLoad().
Os métodos que criam e usam uma conexão de soquete TCP/IP para enviar e carregar
informações como XML são XMLSocket.connect() e XMLSocket.send().
Verificando os dados carregados
Todas as funções ou métodos que carregam dados em um arquivo SWF (exceto
XMLSocket.send()) são assíncronas: os resultados da ação são retornados em um momento
indeterminado.
Antes de usar os dados em um SWF, verifique se eles foram carregados. Por exemplo, não é
possível carregar variáveis e manipular seus valores no mesmo script. No script a seguir, você só
poderá usar a variável lastFrameVisited após certificar-se de que ela tenha sido carregada a
partir do arquivo myData.txt:
loadVariables("myData.txt", 0);
gotoAndPlay(lastFrameVisited);
Cada função ou método possui uma técnica específica que pode ser usada para verificar os dados
que foram carregados. Se você usar loadVariables() ou loadMovie(), poderá carregar
informações no destino de um clipe de filme e usar o evento data do manipulador
onClipEvent() para executar um script. Se você usar loadVariables() para carregar os dados,
o manipulador onClipEvent(data) será executado quando a última variável for carregada.
Se você usar loadMovie() para carregar os dados, o manipulador onClipEvent(data) será
executado sempre que um fragmento do SWF for enviado ao Flash Player.
Por exemplo, a ação do botão a seguir carrega as variáveis do arquivo myData.txt no clipe de
filme loadTargetMC:
on (release) {
loadVariables("myData.txt", _root.loadTargetMC);
}
Um manipulador onClipEvent() atribuído à instância loadTargetMC usa a variável
lastFrameVisited, que é carregada a partir do arquivo myData.txt. A ação a seguir só será
executada depois que todas as variáveis, incluindo lastFrameVisited, tiverem sido carregadas:
onClipEvent(data) {
goToAndPlay(lastFrameVisited);
}
184
Capítulo 10: Trabalhando com dados externos
Se você usar os métodos XML.load(), XML.sendAndLoad() e XMLSocket.connect(), deverá
definir um manipulador para processar os dados quando eles chegarem. Um manipulador é uma
propriedade do objeto XML ou XMLSocket à qual você atribui uma função definida.
Os manipuladores são chamados automaticamente quando as informações são recebidas. Para o
objeto XML, use XML.onLoad() ou XML.onData(). Para o objeto XMLSocket,
use XMLSocket.onConnect().
Para obter mais informações, consulte “Usando a classe XML” na página 188 e “Usando a classe
XMLSocket” na página 191.
Usando HTTP para conectar a scripts do servidor
As funções loadVariables(), loadVariablesNum(), getURL(), loadMovie() e
loadMovieNum() e os métodos MovieClip.loadVariables(), MovieClip.loadMovie() e
MovieClip.getURL() podem se comunicar com scripts do servidor através dos protocolos
HTTP ou HTTPS. Essas funções enviam todas as variáveis da Timeline (Linha do tempo) às
quais elas estão anexadas. Quando usadas como métodos do objeto MovieClip, as funções
loadVariables(), getURL() e loadMovie() enviam todas as variáveis do clipe de filme
especificado; cada função (ou método) manipula sua resposta da seguinte maneira:
•
•
•
retorna todas as informações para uma janela do navegador e não para o
Flash Player.
loadVariables() carrega as variáveis em uma Timeline ou em um nível especificado do
Flash Player.
loadMovie() carrega um SWF em um nível especificado ou um clipe de filme do Flash Player.
getURL()
Ao usar a ação loadVariables(), getURL() ou loadMovie(), você pode especificar
vários parâmetros:
•
•
•
é o arquivo onde residem as variáveis remotas.
é o nível ou o destino no SWF que recebe as variáveis. (A função getURL() não requer
esse parâmetro.)
Para obter mais informações sobre níveis e destinos, consulte “About multiple Timelines and
levels” (Sobre várias Timelines e níveis) em Usando a Ajuda do Flash.
Variables define o método HTTP, GET ou POST, através do qual as variáveis serão enviadas.
Quando omitido, o Flash Player adota como padrão GET, mas nenhuma variável é enviada.
URL
Local
Por exemplo, para controlar as pontuações mais altas de um jogo, você pode armazená-las em um
servidor e usar uma função loadVariables() para carregá-las no SWF sempre que alguém jogar
esse jogo. A chamada de função seria:
loadVariables("http://www.mySite.com/scripts/high_score.php", _root.scoreClip,
GET);
Essa ação carrega as variáveis do script PHP chamado high_score.php na instância do clipe de
filme scoreClip usando o método HTTP GET.
Enviando e carregando variáveis para/de uma origem remota
185
Todas as variáveis carregadas com a função loadVariables() devem estar no formato padrão de
aplicativo MIME/x-www-form-urlencoded (um formato padrão usado pelos scripts CGI).
O arquivo especificado no parâmetro URL de loadVariables() deve criar os pares de valores e de
variáveis nesse formato para que o Flash possa lê-los. O arquivo pode especificar qualquer número
de variáveis; os pares de valores e de variáveis devem ser separados com um E comercial (&) e as
palavras dentro de um valor devem ser separadas com um sinal de mais (+). Por exemplo, esta frase
define diversas variáveis:
highScore1=54000&playerName1=rockin+good&highScore2=53455&playerName2=
bonehelmet&highScore3=42885&playerName3=soda+pop
Para obter mais informações, consulte loadVariables() na página 465, getURL()
na página 432, loadMovie() na página 463 e a entrada Classe LoadVars em Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Usando a classe LoadVars
Para transferir variáveis entre um arquivo SWF e um servidor, use a classe LoadVars em vez da
função loadVariables(). A classe LoadVars permite enviar todas as variáveis de um objeto para
um URL especificado e carregar todas as variáveis de um URL especificado em um objeto.
A resposta do servidor ativa o método LoadVars.onLoad() e define as variáveis no destino.
Use LoadVars para obter informações de erro e indicações de andamento, e para criar um fluxo de
dados durante o download.
A classe LoadVars é semelhante à classe XML; ela usa os métodos load(), send() e
sendAndLoad() para iniciar a comunicação com o servidor. A principal diferença entre as classes
LoadVars e XML é que os dados de LoadVars são uma propriedade do objeto LoadVars, em vez de
uma árvore DOM XML armazenada no objeto XML.
Crie uma nova instância da classe LoadVars para chamar seus métodos. Essa instância é um
recipiente que mantém dados carregados.
O procedimento a seguir mostra como usar um objeto LoadVars para carregar variáveis de um
arquivo de texto e exibi-las em um campo de texto.
Para carregar dados com o objeto LoadVars:
1 Em um editor de texto como o Bloco de Notas ou SimpleText, crie um novo arquivo de texto
e adicione o seguinte texto ao arquivo:
day=11&month=July&year=2003
2 Salve o arquivo como date.txt.
3 No Flash, crie um novo documento.
4 Crie um campo de texto dinâmico no Stage (Palco) e atribua a ele o nome de instância
data_txt.
5 Selecione Frame 1 (Quadro 1) na Timeline e abra o painel Actions (Ações), em Window
(Janela) > Development Panels (Painéis de desenvolvimento) > Actions, caso ainda não esteja
aberto.
186
Capítulo 10: Trabalhando com dados externos
6 Insira o código a seguir no painel Actions:
var dateVars = new LoadVars();
dateVars.onLoad = function(ok) {
if (ok) {
date_txt.text = dateVars.day+"/"+dateVars.month+"/"+dateVars.year;
}
};
dateVars.load("data.txt");
Esse código carrega as variáveis de data.txt (day, month, year) e, em seguida, formata-as e
exibe-as no campo de texto date_txt.
7 Salve o documento como dateReader.fla na mesma pasta que contém data.txt (o arquivo de
texto que você salvou na etapa 3).
8 Selecione Control (Controlar) > Test Movie (Testar filme) para testar o documento.
Para obter mais informações, consulte a entrada Classe LoadVars em Capítulo 12, “Dicionário do
ActionScript”, na página 215.
Sobre XML
O XML (Extensible Markup Language) está se tornando o padrão para o intercâmbio de dados
estruturados em aplicativos de Internet. É possível integrar dados no Flash com servidores que
usam a tecnologia XML para criar aplicativos sofisticados, como sistemas de bate-papo ou de
corretagem.
No XML, assim como no HTML, use marcas para marcar ou especificar um corpo de texto.
No HTML, use as marcas predefinidas para indicar como o texto deve aparecer no navegador da
Web (por exemplo, a marca <b> indica que o texto deve estar em negrito). No XML, defina as
marcas que identificam o tipo dos dados (por exemplo, >password<VerySecret</password>).
O XML separa a estrutura das informações da forma como elas são exibidas, de modo que o
mesmo documento XML possa ser usado e reutilizado em ambientes diferentes.
Toda marca XML é chamada de nó ou elemento. Cada nó possui um tipo (1, que indica um
elemento XML, ou 3, que indica um nó de texto), e os elementos também podem ter atributos.
Um nó aninhado em outro nó é denominado childNode. Essa estrutura de árvore hierárquica de
nós é denominada DOM XML, semelhante ao DOM JavaScript, que é a estrutura de elementos
de um navegador da Web.
No exemplo a seguir, <PORTFOLIO> é o nó pai; ele não possui atributo algum e contém o nó filho
<HOLDING>, que possui os atributos SYMBOL, QTY, PRICE e VALUE:
<PORTFOLIO>
<HOLDING SYMBOL="RICH"
QTY="75"
PRICE="245.50"
VALUE="18412.50" />
</PORTFOLIO>
Enviando e carregando variáveis para/de uma origem remota
187
Usando a classe XML
Os métodos da classe ActionScript XML (por exemplo, appendChild(), removeNode() e
permitem estruturar os dados XML no Flash para enviá-los a um servidor e
para manipular e interpretar os dados XML descarregados.
insertBefore())
Os métodos da classe XML a seguir enviam e carregam dados XML em um servidor usando o
método POST HTTP:
•
•
•
faz o download do XML de um URL e coloca-o em um objeto ActionScript XML.
envia um objeto XML para um URL. Todas as informações retornadas são enviadas
para outra janela do navegador.
sendAndLoad() envia um objeto XML para um URL. Todas as informações retornadas são
colocadas em um objeto ActionScript XML.
load()
send()
Por exemplo, é possível criar um sistema de corretagem para a venda de títulos que armazene
todas as informações (nomes de usuários, senhas, identificações de sessões, títulos em carteira e
informações sobre transações) em um banco de dados.
O script do servidor que transfere as informações entre o Flash e o banco de dados lê e grava os
dados no formato XML. O ActionScript pode ser usado para converter as informações obtidas no
SWF (por exemplo, um nome de usuário e uma senha) em um objeto XML e enviar os dados para
o script do servidor como um documento XML. Você também pode usar o ActionScript para
carregar o documento XML retornado pelo servidor em um objeto XML para ser usado no SWF.
loginReplyXM
L
Documento
XML
Resposta
loginXML
Documento
XML
Solicitação
SQL
Script do servidor
username Jean Smith
password •••••••
Submit
Banco
de dados
Filme do Flash
Player
O fluxo e a conversão de dados entre um filme do Flash, um script do servidor e um banco de dados
A validação da senha no sistema de corretagem requer dois scripts: uma função definida no Frame
1 e um script que cria e envia os objeto XML anexados ao botão Submit (Enviar) no formulário.
Quando os usuários inserem suas informações nos campos de texto do SWF com as variáveis
username e password, essas variáveis devem ser convertidas em XML antes de serem enviadas ao
servidor. A primeira seção do script carrega as variáveis em um objeto XML criado recentemente
chamado loginXML. Quando o usuário clica no botão Submit, o objeto loginXML é convertido
em uma seqüência de caracteres do XML e enviado para o servidor.
188
Capítulo 10: Trabalhando com dados externos
O script a seguir é anexado ao botão Submit. Para compreender esse script, leia as linhas
comentadas (indicadas pelos caracteres //):
on (release) {
// A. Cria um documento XML com um elemento LOGIN
loginXML = new XML();
loginElement = loginXML.createElement("LOGIN");
loginElement.attributes.username = username;
loginElement.attributes.password = password;
loginXML.appendChild(loginElement);
// B. Cria um objeto XML para armazenar a resposta do servidor
loginReplyXML = new XML();
loginReplyXML.onLoad = onLoginReply;
// C. Envia o elemento LOGIN para o servidor,
//
coloca a resposta em loginReplyXML
loginXML.sendAndLoad("https://www.imexstocks.com/main.cgi",
loginReplyXML);
}
A primeira seção do script gera o seguinte XML quando o usuário clica no botão Submit:
<LOGIN USERNAME="JeanSmith" PASSWORD="VerySecret" />
O servidor recebe o XML, gera uma resposta XML e envia-a novamente ao SWF. Se a senha for
aceita, o servidor responderá da seguinte maneira:
<LOGINREPLY STATUS="OK" SESSION="rnr6f7vkj2oe14m7jkkycilb" />
Esse XML inclui um atributo SESSION que contém a identificação de uma sessão exclusiva, gerada
aleatoriamente, que será usada em todas as comunicações entre o cliente e o servidor no restante
da sessão. Se a senha for rejeitada, o servidor responderá com a seguinte mensagem:
<LOGINREPLY STATUS="FAILED" />
O nó XML LOGINREPLY deve ser carregado em um objeto XML em branco no SWF. O comando
a seguir cria o objeto XML loginreplyXML para receber o nó XML:
// B. Cria um objeto XML para armazenar a resposta do servidor
loginReplyXML = new XML();
loginReplyXML.onLoad = onLoginReply;
O segundo comando atribui a função onLoginReply() ao manipulador
loginReplyXML.onLoad.
Enviando e carregando variáveis para/de uma origem remota
189
O elemento XML LOGINREPLY chega de modo assíncrono, de maneira semelhante aos dados de
uma função loadVariables() e é carregado no objeto loginReplyXML. Quando os dados
chegam, o manipulador onLoad do objeto loginReplyXML é chamado. Você deve definir a função
onLoginReply() e atribuí-la ao manipulador loginReplyXML.onLoad para que processe o
elemento LOGINREPLY. Além disso, deve atribuir a função onLoginReply() ao quadro que
contém o botão Submit.
A função onLoginReply() é definida no primeiro quadro do SWF. (Para compreender esse script,
leia as linhas comentadas.)
function onLoginReply() {
// Obtém o primeiro elemento XML
var e = this.firstChild;
// Se o primeiro elemento XML for um elemento LOGINREPLY com
// status OK, vai para a tela do portfólio. Caso contrário,
// vai para a tela de falha de login e permite que o usuário tente novamente.
if (e.nodeName == "LOGINREPLY" && e.attributes.status == "OK") {
// Salva a identificação de sessão para comunicação futura com o servidor
sessionID = e.attributes.session;
// Vai para a tela de exibição do portfólio
gotoAndStop("portfolioView");
else {
// Falha no login! Vai para a tela de falha de login.
gotoAndStop("loginFailed");
}
}
A primeira linha dessa função, var e = this.firstChild, usa a palavra-chave this para se
referir ao objeto XML loginReplyXML que acabou de ser carregado com o XML do servidor.
É possível usar this porque onLoginReply() foi chamada como loginReplyXML.onLoad;
portanto, embora onLoginReply() seja aparentemente uma função simples, ela se comporta
realmente como um método de loginReplyXML.
190
Capítulo 10: Trabalhando com dados externos
Para enviar o nome do usuário e a senha como XML para o servidor e carregar uma resposta XML
novamente no SWF, use o método sendAndLoad(), conforme mostrado a seguir:
// C. Envia o elemento LOGIN para o servidor,
//
coloca a resposta em loginReplyXML
loginXML.sendAndLoad("https://www.imexstocks.com/main.cgi", loginReplyXML);
Observação: Esse design é apenas um exemplo, e a Macromedia não oferece garantia alguma
quanto ao nível de segurança proporcionado. Se você estiver implementando um sistema seguro
protegido por senha, deverá ter um bom conhecimento de segurança de rede.
Para obter mais informações, consulte “Integrating XML and Flash in a Web Application”
(Integrando XML e o Flash em um aplicativo da Web) em www.macromedia.com/support/flash/
interactivity/xml/ e a Classe XML entrada em Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Usando a classe XMLSocket
O ActionScript oferece uma classe XMLSocket interna que permite a abertura de uma
conexão contínua com um servidor. Uma conexão de soquete permite que o servidor publique
(ou "envie") informações ao cliente assim que elas estiverem disponíveis. Sem uma
conexão contínua, o servidor deve aguardar uma solicitação HTTP. Essa conexão aberta elimina
os problemas de latência e é normalmente usada para aplicativos em tempo real, como aplicativos
de bate-papo. Os dados são enviados através da conexão de soquete como uma seqüência de
caracteres e devem estar no formato XML. Você pode usar a classe XML para estruturar os dados.
Para criar uma conexão de soquete, é necessário criar um aplicativo do servidor para aguardar a
solicitação dessa conexão e enviar uma resposta ao arquivo SWF. É possível criar esse tipo de
aplicativo de servidor em uma linguagem de programação, como Java.
Você pode usar os métodos connect() e send() da classe XMLSocket para transferir XML para/
de um servidor através de uma conexão de soquete. O método connect() estabelece uma
conexão de soquete com uma porta do servidor da Web. O método send() envia um objeto
XML para o servidor especificado na conexão de soquete.
Quando você chama o método connect(), o Flash Player abre uma conexão TCP/IP com o
servidor e mantém a conexão aberta até que ocorra uma das seguintes situações:
•
•
•
•
O método close() da classe XMLSocket é chamado.
Não existe mais nenhuma referência ao objeto XMLSocket.
O Flash Player é encerrado.
A conexão é interrompida (por exemplo, o modem é desconectado).
Enviando e carregando variáveis para/de uma origem remota
191
O exemplo a seguir cria uma conexão de soquete XML e envia os dados do objeto XML myXML.
Para compreender o script, leia as linhas comentadas (indicadas pelos caracteres //):
// Cria um novo objeto XMLSocket
sock = new XMLSocket();
// Chama o seu método connect() para estabelecer uma conexão com a porta 1024
// do servidor no URL
sock.connect("http://www.myserver.com", 1024);
// Define uma função para atribuir o objeto de soquete que manipula a
// resposta do servidor. Se a conexão for bem sucedida, envia o
// objeto myXML. Se falhar, fornece uma mensagem de erro em um campo
// de texto.
function onSockConnect(success){
if (success) {
sock.send(myXML);
else {
msg="Erro ao conectar ao "+serverName;
}
}
// Atribui a função onSockConnect() à propriedade onConnect
sock.onConnect = onSockConnect;
Para obter mais informações, consulte a entrada Classe XMLSocket em Capítulo 12, “Dicionário
do ActionScript”, na página 215.
Enviando mensagens para/do Flash Player
Para enviar mensagens de um arquivo SWF para o seu ambiente de host (por exemplo, um
navegador da Web, um filme do Macromedia Director ou o Flash Player independente), use a
função fscommand(). Essa função permite estender o seu SWF usando os recursos do host.
Por exemplo, você pode enviar uma função fscommand() para uma função JavaScript em uma
página HTML que abra uma nova janela do navegador com propriedades específicas.
Para controlar um SWF do Flash Player a partir de linguagens de script do navegador da Web,
como JavaScript, VBScript e Microsoft JScript, você pode usar os métodos do Flash Player,
funções que enviam mensagens de um ambiente de host para o SWF. Por exemplo, você pode ter
um link em uma página HTML que envie o SWF para um quadro específico.
192
Capítulo 10: Trabalhando com dados externos
Usando fscommand()
Use a função fscommand() para enviar uma mensagem para qualquer programa que esteja
hospedando o Flash Player. A função fscommand() tem dois parâmetros: command e arguments.
Para enviar uma mensagem para a versão independente do Flash Player, use comandos e
argumentos predefinidos. Por exemplo, a ação a seguir define o exibidor independente para
dimensionar o SWF para o tamanho de tela cheia quando o usuário solta o botão:
on (release) {
fscommand("fullscreen", "true");
}
A tabela a seguir mostra os valores que podem ser especificados para os parâmetros command e
arguments da função fscommand() para controlar um SWF reproduzido no exibidor
independente (incluindo projetores):
Command
Arguments
Objetivo
quit
Nenhum
Fecha o projetor.
fullscreen
true ou false
A especificação de true define o Flash Player no modo de tela
cheia. A especificação de false retorna o exibidor para a
exibição normal de menu.
allowscale
true ou false
A especificação de false define o exibidor para que o SWF seja
sempre desenhado em seu tamanho original e nunca
dimensionado. A especificação de true faz com que o SWF
seja dimensionado para 100% do exibidor.
showmenu
true ou false
A especificação de true ativa o conjunto completo de itens do
menu de contexto. A especificação de false torna esmaecidos
todos os itens do menu de contexto, exceto Settings
(Configurações) e About Flash Player (Sobre o Flash Player).
exec
Caminho para o Executa um aplicativo no projetor.
aplicativo
Para usar fscommand() para enviar uma mensagem para uma linguagem de script como
JavaScript em um navegador da Web, passe dois parâmetros quaisquer em command e arguments.
Esses parâmetros podem ser seqüências de caracteres ou expressões e serão usados em uma função
JavaScript que “captura” ou manipula a função fscommand().
Uma função fscommand() chama a função JavaScript moviename_DoFSCommand na página
HTML que incorpora o SWF, onde moviename é o nome do Flash Player atribuído pelo atributo
NAME da marca EMBED ou pelo atributo ID da marca OBJECT. Se o nome atribuído ao Flash Player
for myMovie, a função JavaScript chamada será myMovie_DoFSCommand.
Enviando mensagens para/do Flash Player
193
Para usar fscommand() para abrir uma caixa de mensagem em um SWF na página HTML
através de JavaScript:
1 Na página HTML que incorpora o SWF, adicione o seguinte código JavaScript:
function theMovie_DoFSCommand(command, args) {
if (command == "messagebox") {
alert(args);
}
}
Na publicação do SWF usando o Flash com o modelo FSCommand na caixa de diálogo
HTML Publish Settings (Configurações de publicação HTML), esse código será inserido
automaticamente. Os atributos NAME e ID do SWF serão o nome do arquivo. Por exemplo,
para o arquivo myMovie.fla, os atributos serão definidos como myMovie. (Para obter mais
informações sobre publicação, consulte “Publishing” (Publicando) em Usando a Ajuda do
Flash.)
Como alternativa, nos aplicativos do Microsoft Internet Explorer, é possível anexar um
manipulador de eventos na marca <SCRIPT>, como mostrado neste exemplo:
<Script Language = "JavaScript" event="FSCommand (comando, args)" for=
"theMovie">
...
</Script>
2 No documento do Flash, adicione a função fscommand() a um botão, como mostrado
neste exemplo:
on(press){
fscommand("messagebox", "Esta é uma caixa de mensagem chamada no Flash.");
}
Além disso, é possível usar expressões para fscommand() e parâmetros, como no exemplo
a seguir:
fscommand("messagebox", "Olá, " + nome + ", bem-vindo(a) ao nosso site na
Web!")
3 Escolha File (Arquivo) > Publish Preview (Visualizar publicação) > HTML para testar o
documento.
A função fscommand() pode enviar mensagens ao Macromedia Director que são interpretadas
pelo Lingo como seqüências de caracteres, eventos ou código Lingo executável. Se a mensagem for
uma seqüência de caracteres ou um evento, você deverá criar o código Lingo para recebê-la a
partir da ação fscommand() e executar uma ação no Director. Para obter mais informações,
consulte o Director Support Center em www.macromedia.com/support/director.
No Visual Basic, Visual C++ e em outros programas que podem hospedar controles ActiveX,
fscommand() envia um evento VB com duas seqüências de caracteres que podem ser manipuladas
na linguagem de programação do ambiente. Para obter mais informações, use as palavras-chaves
método do Flash e faça uma pesquisa no Centro de Suporte Flash em www.macromedia.com/
support/flash.
194
Capítulo 10: Trabalhando com dados externos
Sobre os métodos do Flash Player
Você pode usar os métodos do Flash Player para controlar um arquivo SWF no Flash Player a
partir de linguagens de script de navegador da Web, como JavaScript e VBScript. Como ocorre
em outros métodos, é possível usar os métodos do Flash Player para enviar chamadas aos arquivos
SWF do Flash a partir de um ambiente de script diferente do ActionScript. Cada método possui
um nome, e a maioria dos métodos contém parâmetros. Um parâmetro especifica o valor com que
o método opera. O cálculo executado por alguns métodos retorna um valor que pode ser usado
pelo ambiente de script.
Há duas tecnologias distintas que permitem a comunicação entre o navegador e o Flash Player:
LiveConnect (Netscape Navigator 3.0 ou posterior no Windows 95/98/2000/NT ou Power
Macintosh) e ActiveX (Internet Explorer 3.0 e posterior no Windows 95/98/2000/NT). Embora
as técnicas de script sejam semelhantes para todos os navegadores e linguagens, há propriedades e
eventos adicionais disponíveis para uso com os controles ActiveX.
Para obter mais informações, incluindo uma lista completa dos métodos de script do Flash Player,
use as palavras-chaves método do Flash para pesquisar o Centro de Suporte Flash em
www.macromedia.com/support/flash.
Sobre o uso de métodos do Flash JavaScript com o Flash Player
O Flash Player 6 versão 40 e posteriores oferece suporte aos métodos do Flash JavaScript e ao
FSCommand no Netscape 6.2 e versões posteriores. As versões anteriores não oferecem suporte
aos métodos do Flash JavaScript e ao FSCommand no Netscape 6.2 ou versões posteriores.
Para o Netscape 6.2 e versões posteriores, não é necessário definir swLiveConnect como true.
Entretanto, a definição de swLiveConnect como true não tem efeitos adversos.
Recursos de segurança do Flash Player
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
guia Help (Ajuda).
Por padrão, o Flash Player 7 e versões posteriores impedem que um arquivo SWF de um domínio
acesse os dados fornecidos por outro domínio. Por padrão, os SWFs pertencentes a domínios
distintos não podem acessar os objeto e variáveis uns dos outros. Nem um SWF pertencente a um
domínio pode carregar dados de outro domínio (usando loadVariables(), por exemplo).
Endereços IP numéricos idênticos são compatíveis. Contudo, o nome de domínio não é
compatível com o endereço IP, mesmo que o nome do domínio corresponda ao mesmo endereço IP.
A tabela a seguir mostra exemplos de domínios compatíveis:
www.macromedia.com
www.macromedia.com
data.macromedia.com
data.macromedia.com
65.57.83.12
65.57.83.12
A tabela a seguir mostra exemplos de domínios incompatíveis:
www.macromedia.com
data.macromedia.com
macromedia.com
www.macromedia.com
Recursos de segurança do Flash Player
195
www.macromedia.com
macromedia.com
65.57.83.12
www.macromedia.com (mesmo que esse domínio corresponda a
65.57.83.12 )
www.macromedia.com
65.57.83.12 (mesmo que www.macromedia.com corresponda a
esse IP)
Além disso, o conteúdo que é carregado através de protocolos não protegidos (não-HTTPS) não
pode acessar conteúdos protegidos (HTTPS), mesmo que os dois estejam exatamente no mesmo
domínio. Por exemplo, um arquivo SWF localizado em http://www.macromedia.com/main.swf
não pode carregar dados de https://www.macromedia.com/data.txt.
Para obter informações sobre como essas alterações de segurança afetam o conteúdo criado no
Flash MX e versões anteriores, consulte “Sobre compatibilidade com os modelos de segurança
anteriores do Flash Player” na página 199.
O gráfico a seguir mostra como o Flash Player determina se deve permitir uma solicitação HTTP:
Não
ESTÁGIO 1
É uma solicitação
de dados?
ESTÁGIO 1
Sim
Sim
ESTÁGIO 2
É uma solicitação
para um URL
relativo?
ESTÁGIO 2
Não
Sim
ESTÁGIO 3
O filme solicitado foi
descarregado de um
disco local?(O URL
começa com o
arquivo:)
ESTÁGIO 3
Não
Não
ESTÁGIO 4
O URL solicitado
começa com
http://,
https://
ouftp://?
ESTÁGIO 5
O nome de domínio do
filme solicitado
corresponde ao do
URL solicitado?
196
ESTÁGIO 4
Sim
Solicitação
aceita
Sim
Capítulo 10: Trabalhando com dados externos
Não
ESTÁGIO 5
Solicitação
rejeitada
Sobre a permissão de acesso a dados entre SWFs de domínios diferentes
Um SWF pode carregar outro SWF de qualquer local da Internet. Contudo, para que dois
arquivos SWF possam acessar os dados correspondentes (variáveis e objeto), os dois arquivos
devem ser provenientes do mesmo domínio. Por padrão, no Flash Player 7 e versões posteriores,
os dois domínios devem ser exatamente iguais para que os dois arquivos possam compartilhar os
dados. Entretanto, um SWF pode conceder acesso a SWFs atendidos por determinados domínios
através de System.security.allowDomain().
Por exemplo, suponha que o arquivo main.swf seja atendido por www.macromedia.com.
Em seguida, esse SWF carrega outro SWF (data.swf ) de data.macromedia.com em uma instância
de clipe de filme (target_mc).
// Em macromedia.swf
target_mc.loadMovie("http://data.macromedia.com/data.swf");
Além disso, suponha que data.swf defina um método denominado getData() em sua Timeline
principal. Por padrão, main.swf não pode chamar o método getData() definido em data.swf
depois que esse arquivo tiver sido carregado. Isso ocorre porque os dois SWFs não residem no
mesmo domínio. Por exemplo, ocorrerá uma falha na chamada de método a seguir em main.swf,
caso data.swf tenha sido carregado.
// Em macromedia.swf, após o carregamento de data.swf:
target_mc.getData(); // Essa chamada de método falhará
Entretanto, data.swf poderá conceder acesso aos SWFs atendidos por www.macromedia.com
através do método System.security.allowDomain(). O código a seguir adicionado a data.swf
permitirá que qualquer SWF atendido por www.macromedia.com acesse suas variáveis e métodos:
// No data.swf
System.security.allowDomain("www.macromedia.com");
Observe que allowDomain() permite que qualquer SWF do domínio autorizado crie um script
para qualquer outro SWF do domínio permitindo o acesso.
Para obter mais informações, consulte “Recursos de segurança do Flash Player” na página 195 e
System.security.allowDomain() na página 735.
Sobre a autorização de acesso a dados entre domínios
Um documento do Flash pode carregar dados de uma origem externa usando uma das seguintes
chamadas de carregamento de dados: XML.load(), XML.sendAndLoad(), LoadVars.load(),
LoadVars.sendAndLoad(), loadVariables(), loadVariablesNum(). Além disso, um arquivo
SWF pode importar bibliotecas compartilhadas ou elementos definidos em outro arquivo SWF
durante a execução. Por padrão, os dados ou a mídia do SWF, no caso de bibliotecas
compartilhadas durante a execução, devem residir no mesmo domínio do SWF que está
carregando esses dados ou mídia externos.
Para tornar os dados e elementos das bibliotecas compartilhadas em tempo de execução
disponíveis aos SWFs em diferentes domínios, use um arquivo de diretivas entre domínios.
Um arquivo de diretivas entre domínios é um arquivo XML que fornece um modo ao servidor
para indicar que seus dados e documentos estão disponíveis aos SWFs atendidos por
determinados domínios ou por todos os domínios. Todos os SWFs que são atendidos por um
domínio especificado pelo arquivo de diretivas do servidor terão permissão para acessar os dados
ou elementos daquele servidor.
Recursos de segurança do Flash Player
197
Quando um documento do Flash tenta acessar os dados de outro domínio, o Flash Player tenta
automaticamente carregar um arquivo de diretivas daquele domínio. Se o domínio do documento
do Flash que está tentando acessar os dados estiver incluído no arquivo de diretivas, os dados
ficarão automaticamente acessíveis.
Os arquivos de diretivas devem ser nomeados como crossdomain.xml e residir no diretório raiz do
servidor que está fornecendo os dados. Os arquivos de diretivas funcionam somente nos
servidores que se comunicam através de HTTP, HTTPS ou FTP. O arquivo de diretivas é
específico da porta e do protocolo do servidor onde ele reside.
Por exemplo, um arquivo de diretivas localizado em https://www.macromedia.com:8080/
crossdomain.xml se aplicará somente às chamadas de carregamento de dados feitas a
www.macromedia.com através do HTTPS na porta 8080.
Uma exceção a essa regra é o uso de um objeto XMLSocket para conectar a um servidor de
soquete em outro domínio. Nesse caso, um servidor HTTP executado na porta 80 do mesmo
domínio que o servidor de soquete deve fornecer o arquivo de diretivas para a chamada do
método.
Um arquivo de diretivas XML contém uma única marca <cross-domain-policy>, a qual, por
sua vez, contém zero ou mais marcas <allow-access-from>. Cada marca <allow-accessfrom> contém um atributo, domain, que especifica um endereço IP exato, um domínio exato ou
um domínio curinga (qualquer domínio). Os domínios curingas são indicados por um asterisco
(*), que corresponde a todos os domínios e todos os endereços IP, ou por um asterisco seguido de
um sufixo, que corresponde apenas aos domínios terminados com o sufixo especificado.
Os sufixos devem ser iniciados com um ponto. Entretanto os domínios curingas com sufixos
podem corresponder a domínios compostos somente pelo sufixo, sem o ponto inicial.
Por exemplo, foo.com é considerado como parte de *.foo.com. Os curingas não são permitidos
nas especificações de domínios IP.
Se você especificar um endereço IP, será concedido acesso somente aos SWFs carregados a partir
daquele endereço IP por meio da sintaxe IP (por exemplo, http://65.57.83.12/flashmovie.swf ),
e não para os carregados utilizando a sintaxe de nome de domínio. O Flash Player não executa a
resolução de DNS.
A seguir é fornecido um exemplo de arquivo de diretivas que permite acesso aos documentos do
Flash provenientes de foo.com, friendOfFoo.com, *.foo.com e 105.216.0.40, a partir de um
documento do Flash em foo.com:
<?xml version="1.0" ?>
<!-- http://www.foo.com/crossdomain.xml -->
<cross-domain-policy>
<allow-access-from domain="www.friendOfFoo.com" />
<allow-access-from domain="*.foo.com" />
<allow-access-from domain="105.216.0.40" />
<cross-domain-policy>
Um arquivo de diretivas que não contenha marcas <allow-access-from> tem o mesmo efeito de
não haver uma diretiva no servidor.
198
Capítulo 10: Trabalhando com dados externos
Sobre compatibilidade com os modelos de segurança anteriores do
Flash Player
Em conseqüência das alterações no recurso de segurança do Flash Player (consulte “Recursos de
segurança do Flash Player” na página 195), o conteúdo que é executado corretamente no Flash
Player 6 ou nas versões anteriores pode não ser executado corretamente no Flash Player 7 ou
versões posteriores.
Por exemplo, no Flash Player 6, um SWF em www.macromedia.com podia acessar os dados de
um servidor localizado em data.macromedia.com. Ou seja, o Flash Player 6 permitia que um
SWF de um domínio carregasse dados de um domínio “semelhante”.
No Flash Player 7 e versões posteriores, se um SWF da versão 6 (ou anterior) tentar carregar dados
de um servidor em outro domínio, e esse servidor não fornecer um arquivo de diretivas que
permita acesso a partir do domínio daquele SWF, será exibida a caixa de diálogo Macromedia
Flash Player Settings (Configurações do Macromedia Flash Player). A caixa de diálogo solicita que
o usuário autorize ou negue o acesso aos dados entre domínios.
Se o usuário clicar em Allow (Autorizar), o SWF terá permissão de acesso aos dados solicitados;
se o usuário clicar em Deny (Negar), o SWF não terá permissão para acessar os dados solicitados.
Para evitar que essa caixa de diálogo seja exibida, crie um arquivo de diretivas de segurança no
servidor que está fornecendo os dados. Para obter mais informações, consulte “Sobre a autorização
de acesso a dados entre domínios” na página 197.
Recursos de segurança do Flash Player
199
200
Capítulo 10: Trabalhando com dados externos
CAPÍTULO 11
Trabalhando com mídia externa
Se você importar uma imagem ou um som durante a criação de um documento no Macromedia
Flash MX 2004 ou no Macromedia Flash MX Professional 2004, a imagem e o som serão
empacotados e armazenados no arquivo SWF na publicação do filme. Além de importar mídia
durante a criação, é possível carregar mídia externa durante a execução. Há diversos motivos para
manter a mídia fora de um documento do Flash.
Reduzir o tamanho do arquivo
Ao manter os grandes arquivos de mídia fora do documento
do Flash e carregá-los durante a execução, você pode reduzir o tempo de download inicial dos
aplicativos e apresentações, principalmente em conexões lentas da Internet.
Criar módulos de apresentações grandes
Você pode dividir uma apresentação ou um
aplicativo grande em vários arquivos SWF e depois carregar esses arquivos conforme necessário
durante a execução. Isso não somente reduz o tempo de download inicial, como também facilita a
manutenção e a atualização do conteúdo da apresentação.
Separar o conteúdo da apresentação
Este é um tema comum no desenvolvimento de
aplicativos, principalmente aplicativos orientados a dados. Por exemplo, um aplicativo de
carrinho de compras pode exibir uma imagem JPEG de cada produto. Ao carregar os JPEGs de
cada imagem em tempo de execução, você pode atualizar facilmente a imagem de um produto
sem modificar o arquivo FLA original.
Aproveitar os recursos específicos de tempo de execução
Alguns recursos, como fluxo de
FLV e reprodução de MP3, só estão disponíveis durante a execução através do ActionScript.
201
Visão geral de carregamento de mídia externa
Existem quatro tipos de arquivos de mídia que podem ser carregados em um aplicativo Flash
durante a execução: SWF, MP3, JPEG e FLV. O Flash Player pode carregar mídia externa de
qualquer endereço HTTP ou FTP, de um disco local usando um caminho relativo ou por meio do
protocolo file://.
Para carregar SWFs e JPEGs externos, você pode usar a função loadMovie() ou
loadMovieNum(), ou o método MovieClip.loadMovie(). Ao carregar um SWF ou JPEG,
especifique um clipe de filme ou nível de filme como o destino para aquela mídia. Para obter mais
informações sobre como carregar arquivos SWF e JPEG, consulte “Carregando SWFs e JPEGs
externos” na página 202.
Para reproduzir um arquivo MP3 externo (MPEG Layer 3), use o método loadSound() da classe
Sound. Esse método permite especificar se o fluxo ou o download do arquivo MP3 deve ser
totalmente concluído antes de ser iniciada a reprodução. Também é possível ler as informações de
ID3 incorporadas nos arquivos MP3, se estiverem disponíveis. Para obter mais informações,
consulte “Lendo marcas de ID3 em arquivos MP3” na página 205.
O Flash Video (FLV) é o formato de vídeo nativo usado pelo Flash Player. É possível reproduzir
arquivos FLV através do HTTP ou do sistema local de arquivos. A reprodução de arquivos FLV
oferece diversas vantagens em relação à incorporação de vídeo em um documento do Flash, como
melhor gerenciamento de desempenho e memória, além de taxas de quadros de vídeo e do Flash
independentes. Para obter mais informações, consulte “Reproduzindo arquivos FLV externos
dinamicamente” na página 206.
Você também pode pré-carregar ou acompanhar o andamento do download da mídia externa.
O Flash Player 7 apresenta a classe MovieClipLoader, que pode ser usada para acompanhar o
andamento do download de SWFs ou JPEGs. Para pré-carregar arquivos MP3 e FLV, use o
método getBytesLoaded() das classes Sound e NetStream. Para obter mais informações,
consulte “Pré-carregando mídia externa” na página 208.
Carregando SWFs e JPEGs externos
Para carregar um arquivo SWF ou JPEG, use a função global loadMovie() ou loadMovieNum(),
ou o método loadMovie() da classe MovieClip. Para carregar um SWF ou JPEG em um nível de
filme no Flash Player, use loadMovieNum(). Para carregar um SWF ou JPEG em um clique de
filme de destino, use a função ou o método loadMovie(). Em qualquer um dos casos, o
conteúdo carregado substitui o conteúdo do nível de filme ou do clipe de filme de destino.
Quando você carrega um arquivo SWF ou JPEG em um clipe de filme de destino, o canto
superior esquerdo do SWF ou JPEG é colocado no ponto de registro do clipe de filme. Como
geralmente esse ponto de registro é o centro do clipe de filme, o conteúdo carregado pode não
aparecer centralizado. Além disso, quando você carrega uma imagem de SWF ou JPEG em uma
Timeline (Linha de tempo) raiz, o canto superior esquerdo da imagem é colocado no canto
superior esquerdo do Stage (Palco). O conteúdo carregado herda a rotação e o dimensionamento
do clipe de filme, mas o conteúdo original do clipe do filme é removido.
Como opção, você pode enviar variáveis do ActionScript com uma chamada loadMovie() ou
Isso será útil, por exemplo, se o URL que está sendo especificado na chamada
do método for um script do servidor que retorna um JPEG ou SWF de acordo com os dados
passados pelo aplicativo do Flash.
loadMovieNum().
202
Capítulo 11: Trabalhando com mídia externa
No caso dos arquivos de imagem, o Flash oferece suporte apenas para o tipo de arquivo de
imagem JPEG padrão, e não para JPEG progressivos.
Ao usar a função loadMovie() ou loadMovieNum(), especifique o nível ou clipe de destino como
um parâmetro. Por exemplo, o código a seguir carrega o aplicativo contents.swf do Flash na
instância do clipe de filme denominada target_mc:
loadMovieNum("contents.swf", target_mc);
Do mesmo modo, você pode usar MovieClip.loadMovie() para obter o mesmo resultado:
target_mc.loadMovie("contents.swf");
O código a seguir carrega a imagem JPEG flowers.jpg na instância do clipe de filme image_clip:
image_clip.loadMovie("flowers.jpg");
Para obter mais informações sobre loadMovie(), loadMovieNum() e MovieClip.loadMovie(),
consulte as entradas correspondentes em Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Sobre SWFs carregados e a Timeline raiz
A propriedade ActionScript _root especifica ou retorna uma referência à Timeline raiz de um
arquivo SWF. Se você carregar um SWF em um clipe de filme de outro SWF, todas as referências
a _root no SWF carregado serão resolvidas para a Timeline do SWF host, e não do SWF
carregado. Isso às vezes pode ocasionar um comportamento não esperado durante a execução
como, por exemplo, se o SWF host e o SWF carregado usarem _root para especificar uma
variável.
No Flash Player 7 e posterior, é possível usar a propriedade MovieClip._lockroot para fazer
com que as referências a _root feitas por um clipe de filme sejam resolvidas para sua própria
Timeline, em vez de para a Timeline do SWF que contém o clipe de filme. Para obter mais
informações, consulte “Especificando uma Timeline raiz para arquivos SWF carregados”
na página 122.
Sobre o acesso a dados em SWFs carregados
Um arquivo SWF pode carregar outro arquivo SWF de qualquer local da Internet. Entretanto,
para que um SWF acesse os dados (variáveis, métodos etc.) definidos no outro SWF, os dois
arquivos devem ter o mesmo domínio como origem. No Flash Player 7 e posterior, os scripts entre
domínios são proibidos, a menos que o SWF carregado especifique de outra forma chamando
System.security.allowDomain().
Para obter mais informações, consulte “Recursos de segurança do Flash Player” na página 195 e
System.security.allowDomain() em Capítulo 12, “Dicionário do ActionScript”,
na página 215.
Carregando SWFs e JPEGs externos
203
Carregando arquivos MP3 externos
Para carregar arquivos MP3 durante a execução, use o método loadSound() da classe Sound.
Em primeiro lugar, crie um novo objeto Sound:
var song_1_sound = new Sound();
Em seguida, use o novo objeto para chamar loadSound() e carregar um evento ou um fluxo de
som. Os sons de evento são totalmente carregados antes da reprodução; os fluxos de som são
reproduzidos durante o download. Defina o parâmetro isStreaming de loadSound para
especificar um som como um som de evento ou um fluxo de som. Depois de carregar um som de
evento, chame o método start() da classe Sound para reproduzir o som. Os fluxos de som
começam a ser reproduzidos quando há dados suficientes carregados no SWF; não é necessário
usar start().
Por exemplo, o código a seguir cria um novo objeto Sound denominado classical e, em
seguida, carrega um arquivo MP3 de nome beethoven.mp3:
var classical:Sound = new Sound();
classical.loadSound("http://server.com/mp3s/beethoven.mp3", true);
Na maioria dos casos, defina o parâmetro isStreaming como true, principalmente se estiver
carregando arquivos de sons grandes que devem iniciar a reprodução assim que for possível, por
exemplo, ao criar um aplicativo “jukebox” MP3. Contudo, se estiver fazendo download de clipes
de som menores e precisar reproduzi-los em um determinado momento (por exemplo, quando o
usuário clica em um botão), defina isStreaming como false.
Para determinar se o download de um som foi concluído, use o manipulador de eventos
Sound.onLoad. Esse manipulador de eventos recebe automaticamente um valor Booleano
(true ou false) que indica se o download do arquivo foi concluído com sucesso.
Por exemplo, suponha que você esteja criando um jogo on-line que utilize diferentes sons
dependendo do nível que o usuário alcançou no jogo. O código a seguir carrega um arquivo MP3
(blastoff.mp3) em um objeto Sound denominado gameSound e, em seguida, reproduz o som
quando o download tiver sido concluído:
var gameSound = new Sound();
gameSound.onLoad = function (loadedOK) {
if(loadedOK) {
gameSound.start();
}
}
gameSound.loadSound("http://server.com/sounds/blastoff.mp3", false);
Nos arquivos de som, o Flash Player só oferece suporte para os tipos de arquivo de som MP3.
Para obter mais informações, consulte Sound.loadSound(), Sound.start() e Sound.onLoad
em Capítulo 12, “Dicionário do ActionScript”, na página 215.
204
Capítulo 11: Trabalhando com mídia externa
Lendo marcas de ID3 em arquivos MP3
As marcas de ID3 são campos de dados adicionados a um arquivo MP3 que contêm informações
sobre o arquivo, como o nome da música, o nome do álbum e o nome do artista.
Para ler as marcas de ID3 de um arquivo MP3, use a propriedade Sound.ID3 cujas propriedades
correspondem aos nomes das marcas ID3 incluídas no arquivo MP3 que está sendo carregado.
Para determinar quando as marcas de ID3 de um arquivo MP3 que está sendo carregado estarão
disponíveis, use o manipulador de eventos Sound.onID3. O Flash Player 7 oferece suporte às
marcas das versões 1.0, 1.1, 2.3 e 2.4; não é fornecido suporte para as marcas da versão 2.2.
Por exemplo, o código a seguir carrega um arquivo MP3 denominado favoriteSong.mp3 no
objeto Sound denominado song. Quando as marcas de ID3 do arquivo estiverem disponíveis,
um campo de texto denominado display_txt exibirá o nome do artista e o nome da música.
var song = new Sound();
song.onID3 = function () {
display_txt.text = "Artist: " + song.id3.TCOM + newline;
display_txt.text += "Song: " + song.id3.TIT2);
}
song.loadSound("mp3s/favoriteSong.mp3, true");
Como as marcas do ID3 2.0 se localizam no início do arquivo MP3 (antes dos dados de som), elas
ficam disponíveis assim que o download do arquivo é iniciado. As marcas do ID3 1.0, entretanto,
se localizam no final do arquivo (depois dos dados de som) e, conseqüentemente, só ficarão
disponíveis quando o download de todo o arquivo MP3 tiver terminado. O Flash Player mapeia
automaticamente um subconjunto das marcas do ID3 2.0 para as marcas do ID3 1.0 equivalentes
do seguinte modo:
Marca do ID3 2.0
Marca do ID3 1.0
TALB
album
TPE1
artist
TIT2
songname
TYER
year
TRCK
track
COMM
comment
TCON
gênero
Observe que o manipulador de eventos onID3 será chamado sempre que houver novos dados do
ID3 disponíveis. Isso significa que se um arquivo MP3 contiver marcas do ID3 2.0 e marcas do
ID3 1.0, o manipulador onID3 será chamado duas vezes, pois as marcas estarão localizadas em
partes diferentes do arquivo.
Para obter uma lista das marcas de ID3 suportadas, consulte Sound.ID3 em Capítulo 12,
“Dicionário do ActionScript”, na página 215.
Lendo marcas de ID3 em arquivos MP3
205
Reproduzindo arquivos FLV externos dinamicamente
Como uma alternativa à importação de vídeos para o ambiente de criação do Flash, você pode
usar o ActionScript para reproduzir dinamicamente arquivos FLV externos no Flash Player.
Os arquivos FLV podem ser reproduzidos de um endereço HTTP ou do sistema local de arquivos.
Para reproduzir arquivos FLV, use as classes NetConnection e NetStream, e o método
attachVideo() da classe Video.
Você pode criar arquivos FLV importando o vídeo para a ferramenta de criação do Flash e
exportando-o como um arquivo FLV. Consulte “Macromedia Flash Video” em Usando a Ajuda
do Flash. Se você tiver o Flash MX Professional 2004, poderá usar o plug-in FLV Export para
exportar arquivos FLV dos aplicativos de edição de vídeo suportados. Consulte “Exporting FLV
files from video-editing applications (Flash Professional only)” (Exportando arquivos FLV de
aplicativos de edição de vídeo (somente Flash Professional)) em Usando a Ajuda do Flash.
O uso de arquivos FLV externos oferece certos recursos que não estão disponíveis quando você usa
vídeo importado:
• É possível usar clipes de vídeo mais longos nos documentos do Flash sem diminuir a velocidade
•
•
•
de reprodução. Os arquivos FLV externos são reproduzidos usando a memória cache. Desse
modo, os arquivos grandes são armazenados em pequenas partes e acessados de modo
dinâmico, e não requerem tanta memória quanto os arquivos de vídeo incorporados.
Um arquivo FLV externo tem uma taxa de quadros diferente do documento do Flash no qual é
reproduzido. Por exemplo, você pode definir a taxa de quadros do documento do Flash como
30 qps e a taxa de quadros do vídeo como 21 qps. Isso proporciona um maior controle para
garantir uma reprodução suave do vídeo.
Com os arquivos FLV externos, a reprodução de documentos do Flash não precisa ser
interrompida enquanto o arquivo de vídeo está sendo carregado. Os arquivos de vídeo
importados às vezes podem interromper a reprodução do documento para executar
determinadas funções; por exemplo, acessar uma unidade de CD-ROM. Os arquivos FLV
podem executar funções independentemente do documento do Flash e, desse modo, não
interrompem a reprodução.
A legendagem do conteúdo do vídeo é mais fácil com arquivos FLV externos, pois é possível
usar as funções de retorno para acessar os metadados do vídeo.
Os métodos e propriedades a seguir das classes NetConnection e NetStream são usados para
controlar a reprodução do FLV. (Para obter informações completas sobre essas classes, consulte as
entradas Classe NetConnection e Classe NetStream em Capítulo 12, “Dicionário do
ActionScript”, na página 215.)
206
Capítulo 11: Trabalhando com mídia externa
Método ou propriedade
Objetivo
new NetConnection()
Cria um novo objeto NetConnection para armazenar os objeto
NetStream.
NetConnection.connect(null)
O valor null prepara o objeto NetConnection para esperar
downloads de FLVs locais ou do HTTP em vez de fazer o
download de um Macromedia Flash Communication Server.
new NetStream()
Cria um novo objeto NetStream.
NetStream.close()
Fecha o fluxo mas não limpa o objeto de vídeo.
NetStream.pause()
Interrompe a reprodução e limpa o buffer. Esse comando ativa e
desativa a pausa a menos que seja passado true ou false.
NetStream.seek()
Busca um tempo específico no FLV. O tempo de busca é
especificado em segundos. Por exemplo, para buscar 2 minutos e
20 segundos, especifique o seguinte :
NetStream.seek(140);
NetStream.setBufferTime()
Define a quantidade de tempo no buffer, em segundos.
NetStream.bufferLength
Informa o tamanho atual do buffer.
NetStream.bufferTime
Informa o tamanho que foi definido para o buffer, e não o valor
atual.
NetStream.currentFps
Informa o número atual de quadros por segundo. Essa informação
é útil para determinar se os quadros estão sendo eliminados
durante a reprodução.
NetStream.time
A posição atual da qual o FLV está sendo reproduzido, em
segundos.
NetStream.onStatus
Manipulador de retorno chamado quando ocorre um erro ou uma
alteração no status de NetStream. É passado um objeto ao
manipulador que contém duas propriedades: status, cujo valor
pode ser level ou error, e code, cujo valor pode ser um dos
seguintes:
• NetStream.Play.Start Começa a reprodução de um arquivo
FLV.
• NetStream.Play.Stop Termina a reprodução de um FLV.
• NetStream.Buffer.Full O buffer está cheio.
• NetStream.Buffer.Empty Os dados não estão sendo recebidos
com rapidez suficiente para encher o buffer. Essa mensagem
também é gerada em caso de pausa na reprodução.
• NetStream.Play.StreamNotFound O FLV passado para o
método play() não foi encontrado.
Para usar NetStream.onStatus, adicione este código:
_root.myNetStream.onStatus = function(infoObj){
// Este é um exemplo básico de um código de manipulador
// que informa as duas propriedades do objeto de informação.
trace(infoObj.code);
trace(infoObj.level);
}
Reproduzindo arquivos FLV externos dinamicamente
207
Para reproduzir um arquivo FLV externo em um documento do Flash:
1 Com o documento aberto na ferramenta de criação do Flash, no painel Library (Biblioteca),
2
3
4
5
6
7
acessado a partir de Window (Janela) > Library, selecione New Video (Novo vídeo) no menu
de opções da biblioteca para criar um objeto de vídeo.
Arraste uma instância do objeto de vídeo do painel Library para o Stage.
Com o objeto de vídeo selecionado no Stage, no inspetor Property (Propriedades), em
Window > Properties, informe myVideo na caixa de texto Instance Name (Nome da instância).
Abra o painel Components (Componentes), em Window > Development Panels (Painéis de
desenvolvimento) > Components, e arraste o componente TextArea para o Stage.
Com o objeto TextArea selecionado no Stage, insira status na caixa de texto Instance Name
do inspetor Property.
Selecione Frame 1 na Timeline e abra o painel Actions (Ações) em Window > Development
Panels > Actions.
Adicione o seguinte código ao painel Actions:
// Cria um objeto NetConnection:
var netConn:NetConnection = new NetConnection();
// Criar uma conexão de fluxo local:
netConn.connect(null);
// Cria um objeto NetStream e define uma função onStatus():
var netStream:NetStream = new NetStream(netConn);
netStream.onStatus = function(infoObject) {
status.text += "Status (NetStream)" + newline;
status.text += "Level: "+infoObject.level + newline;
status.text += "Code: "+infoObject.code + newline;
};
// Anexa o vídeo NetStream ao objeto Video:
myVideo.attachVideo(netStream);
// Define o tempo do buffer:
netStream.setBufferTime(5);
// Reproduz o arquivo FLV:
netStream.play("videoFile.flv");
Pré-carregando mídia externa
O ActionScript oferece diversas formas de pré-carregar ou acompanhar o andamento do
download de mídia externa. Para pré-carregar arquivos SWF e JPEG, use a classe
MovieClipLoader, que fornece um mecanismo de ouvinte de eventos para verificar o andamento
do download. Essa classe é nova no Flash Player 7. Para obter mais informações, consulte “Précarregando arquivos SWF e JPEG” na página 209.
Para controlar o andamento do download de arquivos MP3, use os métodos
Sound.getBytesLoaded() e Sound.getBytesTotal(); para controlar o andamento do
download de arquivos FLV, use as propriedades NetStream.bytesLoaded e
NetStream.bytesTotal. Para obter mais informações, consulte “Pré-carregando arquivos MP3 e
FLV” na página 211.
208
Capítulo 11: Trabalhando com mídia externa
Pré-carregando arquivos SWF e JPEG
Para pré-carregar arquivos SWF e JPEG em instâncias de clipes de filmes, use a classe
MovieClipLoader. Essa classe fornece um mecanismo de ouvinte de eventos para informar sobre o
status dos downloads de arquivos em clipes de filmes. Para usar MovieClipLoader para précarregar SWFs e JPEGs, observe as etapas a seguir:
Criar um novo objeto MovieClipLoader
Você pode usar um único objeto MovieClipLoader
para controlar o andamento do download de vários arquivos ou criar um objeto separado para o
andamento de cada arquivo.
var loader:MovieClipLoader = new MovieClipLoader();
O objeto ouvinte pode ser qualquer
objeto do ActionScript, como um objeto genérico Object, um clipe de filme ou um componente
personalizado. A tabela a seguir lista as funções de retorno chamadas pelos objeto
MovieClipLoader:
Criar um objeto ouvinte e criar funções de retorno
Função de retorno do
ouvinte
Descrição
onLoadStart(target)
Chamada quando o download para target é iniciado por uma
chamada de MovieClipLoader.loadClip().
onLoadProgress(target,
bytesLoaded, bytesTotal)
Chamada quando o download para target progrediu de acordo
com um incremento determinado pelo Flash Player.
onLoadComplete(target)
Chamada quando o download para target termina.
onLoadError(target,
errorCode)
Chamada quando ocorre uma falha no download para target.
onLoadInit(target)
Chamada quando as ações do Frame 1 do arquivo SWF
descarregado foram concluídas, mas o quadro ainda não foi
desenhado.
Por exemplo, o código a seguir cria um objeto ouvinte genérico denominado loadListener e
define para ele mesmo as funções onLoadStart, onLoadProgress e onLoadComplete.
// Cria objeto ouvinte:
var loadListener:Object = new Object();
loadListener.onLoadStart = function (loadTarget) {
trace("Loading into " + loadTarget + " has started.");
}
loadListener.onLoadProgress = function(loadTarget, bytesLoaded, bytesTotal) {
var percentLoaded = bytesLoaded/bytesTotal * 100;
trace("%" + percentLoaded + " into target " + loadTarget);
}
loadListener.onLoadComplete = function(loadTarget) {
trace("Load completed into: " + loadTarget);
}
Pré-carregando mídia externa
209
Registrar o objeto ouvinte com o objeto MovieClipLoader Para que o objeto ouvinte receba
os eventos de carregamento, registre-o com o objeto MovieClipLoader.
loader.addListener(loadListener);
Começar a carregar o arquivo (JPEG ou SWF) em um clipe de destino
Para iniciar o
download do JPEG ou SWF, use o método MovieClipLoader.loadClip().
loader.loadClip("scene_2.swf");
Observação: Somente os métodos MovieClipLoader podem ser usados para controlar o
andamento do download de arquivos carregados com o método MovieClipLoader.loadClip().
Não é possível usar a função loadMovie() nem o método MovieClip.loadMovie().
O exemplo a seguir usa o método setProgress() do componente ProgressBar para exibir o
andamento do download de um arquivo SWF. (Consulte “ProgressBar component”
(Componente ProgressBar) em Usando a Ajuda de componentes).
Para exibir o andamento do download usando o componente ProgressBar:
1 Em um novo documento do Flash, crie um clipe de filme no Stage e atribua o nome de
target_mc.
2 Abra o painel Components (Window > Development Panels > Components).
3 Arraste um componente ProgressBar do painel Components até o Stage.
4 No inspetor Property, atribua o nome pBar ao componente ProgressBar e, na guia Parameters
(Parâmetros), selecione Manual no menu pop-up Mode (Modo).
5 Selecione Frame 1 na Timeline e abra o painel Actions (Window > Development Panels >
Actions).
6 Adicione o seguinte código ao painel Actions:
// cria um objeto MovieClipLoader e um objeto ouvinte
myLoader = new MovieClipLoader();
myListener = new Object();
// adiciona os retornos de MovieClipLoader ao seu objeto ouvinte
myListener.onLoadStart = function(clip) {
//esse evento é ativado uma vez, no início do carregamento
pBar.label = "Now loading: " + clip;
};
myListener.onLoadProgress = function(clip, bytesLoaded, bytesTotal) {
var percentLoaded = int (100*(bytesLoaded/bytesTotal));
pBar.setProgress(bytesLoaded, bytesTotal);
};myLoader.addListener(myListener);
myLoader.loadClip("veryLargeFile.swf", target_mc);
7 Teste o documento selecionando Control (Controlar) > Test Movie (Testar filme).
Para obter mais informações, consulte a entrada Classe MovieClipLoader em Capítulo 12,
“Dicionário do ActionScript”, na página 215.
210
Capítulo 11: Trabalhando com mídia externa
Pré-carregando arquivos MP3 e FLV
Para pré-carregar arquivos MP3 e FLV, use a função setInterval() a fim de criar um
mecanismo de “pesquisa” que verifique os bytes carregados para um objeto Sound ou NetStream
em intervalos predeterminados. Para controlar o andamento do download de arquivos MP3, use
os métodos Sound.getBytesLoaded() e Sound.getBytesTotal(); para controlar o andamento
do download de arquivos FLV, use as propriedades NetStream.bytesLoaded e
NetStream.bytesTotal.
O código a seguir usa setInterval() para verificar os bytes carregados para um objeto Sound ou
NetStream em intervalos predeterminados.
// Cria um novo objeto Sound para reproduzir o som.
var songTrack = new Sound();
// Cria a função de pesquisa que controla o andamento do download.
// Esta é a função que é “pesquisada”. Ela verifica
// o andamento do download do objeto Sound passado como referência.
checkProgress = function (soundObj) {
var bytesLoaded = soundObj.getBytesLoaded();
var bytesTotal = soundObj.getBytesTotal();
var percentLoaded = Math.floor(bytesLoaded/bytesTotal * 100);
trace("%" + percentLoaded + " loaded.");
}
// Quando o arquivo tiver sido carregado, limpa a pesquisa do intervalo.
songTrack.onLoad = function () {
clearInterval(poll);
}
// Carrega o arquivo MP3 de fluxo e começa a chamar checkProgress()
songTrack.loadSound("beethoven.mp3", true);
var poll = setInterval(checkProgress, 1000, songTrack);
É possível usar esse mesmo tipo de técnica de pesquisa para pré-carregar arquivos FLV externos.
Para obter o total de bytes e o número atual de bytes carregados para um arquivo FLV, use as
propriedades NetStream.bytesLoaded e NetStream.bytesTotal.
Outra maneira de pré-carregar arquivos FLV é usar o método NetStream.setBufferTime().
Esse método usa um único parâmetro que indica o número de segundos do fluxo de FLV para
download antes de a reprodução ser iniciada.
Para obter mais informações, consulte MovieClip.getBytesLoaded(),
MovieClip.getBytesTotal(), NetStream.bytesLoaded, NetStream.bytesTotal,
NetStream.setBufferTime(), setInterval(), Sound.getBytesLoaded() e
Sound.getBytesTotal() em Capítulo 12, “Dicionário do ActionScript”, na página 215.
Pré-carregando mídia externa
211
212
Capítulo 11: Trabalhando com mídia externa
Esta parte contém o Dicionário ActionScript, que fornece informações sobre a sintaxe e o uso de
cada elemento da linguagem ActionScript. Ela também contém apêndices com o material de
referência a ser consultado durante a criação dos scripts.
Capítulo 12: Dicionário do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Apêndice A: Mensagens de erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
Apêndice B: Associatividade e precedência de operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
Apêndice C: Teclas do teclado e valores de códigos de teclas. . . . . . . . . . . . . . . . . . . . . . . . . . 859
Apêndice D: Criando Scripts para versões anteriores do Flash Player . . . . . . . . . . . . . . . . . . . 865
Apêndice E: Programação orientada a objeto com o ActionScript 1 . . . . . . . . . . . . . . . . . . . . 869
Parte V
PARTE V
Referência
CAPÍTULO 12
Dicionário do ActionScript
Este dicionário descreve a sintaxe e o uso dos elementos do ActionScript no Macromedia Flash
MX 2004 e no Macromedia Flash MX Professional 2004. Para usar exemplos em um script, copie
o código de exemplo deste capítulo e cole-o no painel Script ou em um arquivo de script externo.
O dicionário lista todos os elementos do ActionScript: operadores, palavras-chave, comandos,
ações, propriedades, funções, classes e métodos. Para ter uma visão geral de todas as entradas do
dicionário, consulte “Conteúdo do dicionário” na página 217. As tabelas desta seção representam
um bom começo para a verificação dos operadores simbólicos ou métodos cuja classe seja
desconhecida. Para obter informações sobre componentes, consulte Usando componentes.
O ActionScript segue o padrão ECMA-262 (a especificação escrita pela Associação Européia de
Fabricantes de Computadores), salvo indicação em contrário. Alguns elementos do ActionScript
do Flash 5 (e anteriores) ficaram obsoletos e foram substituídos por novos elementos do
ActionScript que correspondem ao padrão ECMA. A Macromedia recomenda que se utilizem os
elementos mais recentes, embora o Flash Player 5 ainda suporte os elementos obsoletos.
Há dois tipos de entradas neste dicionário:
• Entradas individuais para operadores, palavras-chave, funções, variáveis, propriedades,
•
métodos e comandos
Entradas de classes, que fornecem informações gerais sobre classes internas
Use as informações nas entradas de exemplo para interpretar a estrutura e as convenções usadas
nesses dois tipos de entradas.
Exemplo de entrada da maioria dos elementos do ActionScript
O exemplo de entrada do dicionário a seguir explica as convenções usadas para todos os elementos
do ActionScript que não são classes.
Título da entrada
Todas as entradas são listadas em ordem alfabética. A ordem ignora maiúsculas e minúsculas,
sublinhados no início e assim por diante.
215
Disponibilidade
Esta seção informa as versões do Flash Player que oferecem suporte ao elemento. Isso não é o
mesmo que a versão do Flash usada para criar o conteúdo. Por exemplo, se o Macromedia Flash
MX 2004 ou o Macromedia Flash MX Professional 2004 forem usados para criar conteúdo para o
Flash Player 6, somente os elementos do ActionScript que estiverem disponíveis para o Flash
Player 6 poderão ser usados.
Uso
Esta seção fornece a sintaxe correta para usar o elemento do ActionScript em seu código. A parte
obrigatória da sintaxe está em codigo fonte e o código fornecido pelo usuário está em código
fonte em itálico. Os colchetes ([]) indicam parâmetros opcionais.
Parâmetros
Esta seção descreve qualquer parâmetro listado na sintaxe.
Retorna
Se houver valores, esta seção identifica qual será retornado pelo elemento.
Descrição
Esta seção identifica o tipo de elemento (por exemplo, um operador, um método, uma função
etc.) e, em seguida, descreve como usá-lo.
Exemplo
Esta seção fornece um exemplo de código que demonstra como usar o elemento.
Consulte também
Esta seção lista entradas do dicionário ActionScript relacionadas.
Exemplo de entrada de classes
O seguinte exemplo de entrada do dicionário explica as convenções usadas para exibir classes
internas do ActionScript. As classes são apresentadas em ordem alfabética com todos os outros
elementos do dicionário.
Título da entrada
O título da entrada fornece o nome da classe. O nome da classe é seguido por informações
descritivas gerais.
Tabelas de resumo de método e propriedade
Cada entrada de classe contém uma tabela com todos os métodos associados. Se a classe tiver
propriedades (normalmente constantes), manipuladores de eventos ou ouvintes de eventos, esses
elementos serão apresentados resumidamente em tabelas adicionais. Todos os elementos listados
nessas tabelas também possuem suas próprias entradas de dicionário, que seguem a entrada
da classe.
216
Capítulo 12: Dicionário do ActionScript
Construtor
Caso uma classe exija o uso de um construtor para acessar seus métodos e propriedades,
o construtor será descrito em cada entrada de classe. Essa descrição tem todos os elementos
padrões (sintaxe, descrição etc.) das outras entradas do dicionário.
Listagens de métodos e propriedades
Os métodos e propriedades de uma classe são apresentados em ordem alfabética depois da entrada
da classe.
Conteúdo do dicionário
Todas as entradas do dicionário são listadas em ordem alfabética. Contudo, alguns operadores são
símbolos e são apresentados na ordem ASCII. Além disso, os métodos associados a uma classe são
apresentados junto com o nome da classe, por exemplo, o método abs() da classe Math aparece
como Math.abs().
As duas tabelas a seguir o ajudarão a localizar esses elementos. A primeira lista os operadores
simbólicos na ordem em que ocorrem no dicionário. A segunda lista todos os outros elementos
do ActionScript.
Operadores simbólicos
Consulte a entrada
––
–– (decremento)
++
++ (incremento)
!
! (NOT lógico)
!=
!= (diferença)
!==
!== (diferença estrita)
%
% (módulo)
%=
%= (atribuição de módulo)
&
& (operador AND bit a bit)
&&
&& (AND lógico)
&=
&= (atribuição AND bit a bit)
()
() (parênteses)
–
– (menos)
*
* (multiplicação)
*=
*= (atribuição de multiplicação)
,
, (vírgula)
.
. (ponto)
:
: (tipo)
?:
?: (condicional)
/
/ (divisão)
//
// (delimitador de comentário)
Conteúdo do dicionário
217
Operadores simbólicos
Consulte a entrada
/*
/* (delimitador de comentário)
/=
/= (atribuição de divisão)
[]
[] (acesso de array)
^
^ (XOR bit a bit)
^=
^= (atribuição XOR bit a bit)
{}
{} (inicializador de objeto)
|
| (OR bit a bit)
||
|| (OR lógico)
|=
|= (atribuição OR bit a bit)
~
~ (NOT bit a bit)
+
+ (adição)
+=
+= (atribuição de adição)
<
< (menor que)
<<
<< (deslocamento para a esquerda bit a bit)
<<=
<<= (deslocamento para a esquerda bit a bit e atribuição)
<=
<= (menor ou igual que)
<>
<> (diferença)
=
= (atribuição)
-=
-= (atribuição de subtração)
==
== (igualdade)
===
=== (igualdade estrita)
>
> (maior que)
>=
>= (maior ou igual a)
>>
>> (deslocamento para a direita bit a bit)
>>=
>>= (deslocamento para a direita bit a bit e atribuição)
>>>
>>> (deslocamento para a direita bit a bit sem sinal)
>>>=
>>>= (deslocamento para a direita bit a bit sem sinal e
atribuição)
A tabela a seguir lista todos os elementos do ActionScript que não são operadores simbólicos.
218
Elemento do ActionScript
Consulte a entrada
#endinitclip
#endinitclip
#include
#include
#initclip
#initclip
__proto__
Object.__proto__
_accProps
_accProps
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
_alpha
MovieClip._alpha, Button._alpha, TextField._alpha
_currentframe
MovieClip._currentframe
_droptarget
MovieClip._droptarget
_focusrect
_focusrect, Button._focusrect, MovieClip._focusrect
_framesloaded
MovieClip._framesloaded
_global
_global object
_height
Button._height, MovieClip._height, TextField._height
_highquality
_highquality, Button._highquality, MovieClip._highquality,
TextField._highquality
_lockroot
MovieClip._lockroot
_name
Button._name, MovieClip._name, TextField._name
_parent
_parent, Button._parent, MovieClip._parent,
TextField._parent
_quality
_quality, Button._quality, TextField._quality
_root
_root
_rotation
Button._rotation, MovieClip._rotation, TextField._rotation
_soundbuftime
_soundbuftime, Button._soundbuftime,
MovieClip._soundbuftime, TextField._soundbuftime
_target
Button._target, MovieClip._target, TextField._target
_totalframes
MovieClip._totalframes
_url
Button._url, MovieClip._url, TextField._url
_visible
Button._visible, MovieClip._visible, TextField._visible
_width
Button._width, MovieClip._width, TextField._width
_x
Button._x, MovieClip._x, TextField._x
_xmouse
Button._xmouse, MovieClip._xmouse, TextField._xmouse
_xscale
Button._xscale, MovieClip._xscale, TextField._xscale
_y
Button._y, MovieClip._y, TextField._y
_ymouse
Button._ymouse, MovieClip._ymouse, TextField._ymouse
_yscale
Button._yscale, MovieClip._yscale, TextField._yscale
abs
Math.abs()
Acessibilidade
Classe Accessibility
acos
Math.acos()
activityLevel
Camera.activityLevel, Microphone.activityLevel
add
add
addListener
Key.addListener(), Mouse.addListener(),
MovieClipLoader.addListener() , Selection.addListener(),
Stage.addListener(), TextField.addListener()
Conteúdo do dicionário
219
220
Elemento do ActionScript
Consulte a entrada
addPage
PrintJob.addPage()
addProperty
Object.addProperty()
addRequestHeader
LoadVars.addRequestHeader(), XML.addRequestHeader()
align
Stage.align, TextFormat.align
allowDomain
LocalConnection.allowDomain, System.security.allowDomain()
and
and
appendChild
XML.appendChild()
apply
Function.apply()
Argumentos
Classe Arguments
Array
Classe Array, Array()
asfunction
asfunction
asin
Math.asin()
atan
Math.atan()
atan2
Math.atan2()
attachAudio
MovieClip.attachAudio()
attachMovie
MovieClip.attachMovie()
attachSound
Sound.attachSound()
attachVideo
Video.attachVideo()
attributes
XML.attributes
autosize
TextField.autoSize
avHardwareDisable
System.capabilities.securityLimits.avHardwareDisable
background
TextField.background
backgroundColor
TextField.backgroundColor
BACKSPACE
Key.BACKSPACE
bandwidth
Camera.bandwidth
beginFill
MovieClip.beginFill()
beginGradientFill
MovieClip.beginGradientFill()
blockIndent
TextFormat.blockIndent
bold
TextFormat.bold
Booleano
Boolean(), Classe Boolean
border
TextField.border
borderColor
TextField.borderColor
bottomScroll
TextField.bottomScroll
break
break
bufferLength
NetStream.bufferLength
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
bufferTime
NetStream.bufferTime
builtInItems
ContextMenu.builtInItems
bullet
TextFormat.bullet
Button
Classe Button
bytesLoaded
NetStream.bytesLoaded
bytesTotal
NetStream.bytesTotal
call
call(), Function.call()
callee
arguments.callee
caller
arguments.caller
Camera
Classe Camera
capabilities
System.capabilities object
CAPSLOCK
Key.CAPSLOCK
caption
ContextMenuItem.caption
case
case
catch
try..catch..finally
ceil
Math.ceil()
charAt
String.charAt()
charCodeAt
String.charCodeAt()
childNodes
XML.childNodes
chr
chr
class
class
clear
MovieClip.clear(), SharedObject.clear(), Video.clear()
clearInterval
clearInterval()
cloneNode
XML.cloneNode()
close
LocalConnection.close(), NetStream.close(),
XMLSocket.close()
Cor
Classe Color, TextFormat.color
concat
Array.concat(), String.concat()
connect
LocalConnection.connect(), NetConnection.connect(),
XMLSocket.connect()
condenseWhite
TextField.condenseWhite
constructor
Classe Array, Classe Boolean, Classe Camera, Classe Color,
Classe ContextMenu, Classe ContextMenuItem, Classe Date,
Classe Error, Classe LoadVars, Classe LocalConnection,
Classe Microphone, Classe NetConnection, Classe NetStream,
Classe Number, Classe Object, Classe PrintJob, Classe
SharedObject, Classe Sound, Classe String, Classe
TextField.StyleSheet, Classe TextFormat, Classe XML,
Classe XMLSocket
Conteúdo do dicionário
221
222
Elemento do ActionScript
Consulte a entrada
contentType
LoadVars.contentType, XML.contentType
ContextMenu
Classe ContextMenu
ContextMenuItem
Classe ContextMenuItem
continue
continue
CONTROL
Key.CONTROL
copy
ContextMenu.copy(), ContextMenuItem.copy()
cos
Math.cos()
createElement
XML.createElement()
createEmptyMovieClip
MovieClip.createEmptyMovieClip()
createTextField
MovieClip.createTextField()
createTextNode
XML.createTextNode()
currentFps
Camera.currentFps, NetStream.currentFps
curveTo
MovieClip.curveTo()
CustomActions
Classe CustomActions
customItems
ContextMenu.customItems
data
SharedObject.data
Date
Classe Date
deblocking
Video.deblocking
default
default
delete
delete
DELETEKEY
Key.DELETEKEY
do while
do while
docTypeDecl
XML.docTypeDecl
domain
LocalConnection.domain()
DOWN
Key.DOWN
duplicateMovieClip
duplicateMovieClip(), MovieClip.duplicateMovieClip()
duration
Sound.duration
dynamic
dynamic
E
Math.E
else
else
else if
else if
embedFonts
TextField.embedFonts
enabled
Button.enabled, ContextMenuItem.enabled, MovieClip.enabled
END
Key.END
endFill
MovieClip.endFill()
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
ENTER
Key.ENTER
eq
eq (igual — específico de seqüência de caracteres)
Error
Classe Error
ESCAPE (constante)
Key.ESCAPE
escape (função)
escape
eval
eval()
exp
Math.exp()
extends
extends
false
false
finally
try..catch..finally
firstChild
XML.firstChild
floor
Math.floor()
flush
SharedObject.flush()
focusEnabled
MovieClip.focusEnabled
fonte
TextFormat.font
for
for
for..in
for..in
fps
Camera.fps
fromCharCode
String.fromCharCode()
fscommand
fscommand()
function
function, Classe Function
gain
Microphone.gain
ge
ge (maior ou igual a — específico de seqüências de
caracteres)
get
Camera.get(), CustomActions.get(), get, Microphone.get()
getAscii
Key.getAscii()
getBeginIndex
Selection.getBeginIndex()
getBounds
MovieClip.getBounds()
getBytesLoaded
LoadVars.getBytesLoaded(), MovieClip.getBytesLoaded(),
Sound.getBytesLoaded(), XML.getBytesLoaded()
getBytesTotal
LoadVars.getBytesTotal(), MovieClip.getBytesTotal(),
Sound.getBytesTotal(), XML.getBytesTotal()
getCaretIndex
Selection.getCaretIndex()
getCode
Key.getCode()
getDate
Date.getDate()
getDay
Date.getDay()
Conteúdo do dicionário
223
224
Elemento do ActionScript
Consulte a entrada
getDepth
Button.getDepth(), MovieClip.getDepth(),
TextField.getDepth()
getEndIndex
Selection.getEndIndex()
getFocus
Selection.getFocus()
getFontList
TextField.getFontList()
getFullYear
Date.getFullYear()
getHours
Date.getHours()
getInstanceAtDepth
MovieClip.getInstanceAtDepth()
getLocal
SharedObject.getLocal()
getMilliseconds
Date.getMilliseconds()
getMinutes
Date.getMinutes()
getMonth
Date.getMonth()
getNewTextFormat
TextField.getNewTextFormat()
getNextHighestDepth
MovieClip.getNextHighestDepth()
getPan
Sound.getPan()
getProgress
MovieClipLoader.getProgress()
getProperty
getProperty
getRGB
Color.getRGB()
getSeconds
Date.getSeconds()
getSize
SharedObject.getSize()
getStyle
TextField.StyleSheet.getStyle()
getStyleNames
TextField.StyleSheet.getStyleNames()
getSWFVersion
MovieClip.getSWFVersion()
getTextExtent
TextFormat.getTextExtent()
getTextFormat
TextField.getTextFormat()
getTime
Date.getTime()
getTimer
getTimer
getTimezoneOffset
Date.getTimezoneOffset()
getTransform
Color.getTransform(), Sound.getTransform()
getURL
getURL(), MovieClip.getURL()
getUTCDate
Date.getUTCDate()
getUTCDay
Date.getUTCDay()
getUTCFullYear
Date.getUTCFullYear()
getUTCHours
Date.getUTCHours()
getUTCMilliseconds
Date.getUTCMilliseconds()
getUTCMinutes
Date.getUTCMinutes()
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
getUTCMonth
Date.getUTCMonth()
getUTCSeconds
Date.getUTCSeconds()
getVersion
getVersion
getVolume
Sound.getVolume()
getYear
Date.getYear()
globalToLocal
MovieClip.globalToLocal()
goto
gotoAndPlay(), gotoAndStop()
gotoAndPlay
gotoAndPlay(), MovieClip.gotoAndPlay()
gotoAndStop
gotoAndStop(), MovieClip.gotoAndStop()
gt
gt (maior que — específico de seqüência de caracteres)
hasAccessibility
System.capabilities.hasAccessibility
hasAudio
System.capabilities.hasAudio
hasAudioEncoder
System.capabilities.hasAudioEncoder
hasChildNodes
XML.hasChildNodes()
hasEmbeddedVideo
System.capabilities.hasEmbeddedVideo
hasMP3
System.capabilities.hasMP3
hasPrinting
System.capabilities.hasPrinting
hasScreenBroadcast
System.capabilities.hasScreenBroadcast
hasScreenPlayback
System.capabilities.hasScreenPlayback
hasStreamingAudio
System.capabilities.hasStreamingAudio
hasStreamingVideo
System.capabilities.hasStreamingVideo
hasVideoEncoder
System.capabilities.hasVideoEncoder
height
Camera.height, Stage.height, Video.height
hide
Mouse.hide()
hideBuiltInItems
ContextMenu.hideBuiltInItems()
hitArea
MovieClip.hitArea
hitTest
MovieClip.hitTest()
HOME
Key.HOME
hscroll
TextField.hscroll
html
TextField.html
htmlText
TextField.htmlText
ID3
Sound.ID3
if
if
ifFrameLoaded
ifFrameLoaded
ignoreWhite
XML.ignoreWhite
Conteúdo do dicionário
225
226
Elemento do ActionScript
Consulte a entrada
implements
implements
import
import
indent
TextFormat.indent
index
Camera.index, Microphone.index
indexOf
String.indexOf()
Infinity
Infinity
-Infinity
-Infinity
INSERT
Key.INSERT
insertBefore
XML.insertBefore()
install
CustomActions.install()
instanceof
instanceof
int
int
interface
interface
isActive
Accessibility.isActive()
isDebugger
System.capabilities.isDebugger
isDown
Key.isDown()
isFinite
isFinite
isNaN
isNaN()
isToggled
Key.isToggled()
italic
TextFormat.italic
join
Array.join()
Key
Classe key
language
System.capabilities.language
lastChild
XML.lastChild
lastIndexOf
String.lastIndexOf()
le
le (menor ou igual a — específico de seqüência de caracteres)
leading
TextFormat.leading
LEFT
Key.LEFT
leftMargin
TextFormat.leftMargin
length
length, arguments.length, Array.length, String.length,
TextField.length
level
_level
lineStyle
MovieClip.lineStyle()
lineTo
MovieClip.lineTo()
list
CustomActions.list()
LN10
Math.LN10
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
LN2
Math.LN2
load
LoadVars.load(), TextField.StyleSheet.load(), XML.load(),
loadClip
MovieClipLoader.loadClip()
loaded
LoadVars.loaded, XML.loaded
loadMovie
loadMovie(), MovieClip.loadMovie()
loadMovieNum
loadMovieNum()
loadSound
Sound.loadSound()
loadVariables
loadVariables(), MovieClip.loadVariables()
loadVariablesNum
loadVariablesNum()
LoadVars
Classe LoadVars
LocalConnection
Classe LocalConnection
localFileReadDisable
System.capabilities.securityLimits.localFileReadDisable
localToGlobal
MovieClip.localToGlobal()
log
Math.log()
LOG10E
Math.LOG10E
LOG2E
Math.LOG2E
lt
lt (menor que — seqüência de caracteres específica)
manufacturer
System.capabilities.manufacturer
Math
Classe Math
max
Math.max()
MAX_VALUE
Number.MAX_VALUE
maxChars
TextField.maxChars
maxhscroll
TextField.maxhscroll
maxscroll
maxscroll, TextField.maxscroll
mbchr
mbchr
mblength
mblength
mbord
mbord
mbsubstring
mbsubstring
menu
Button.menu, MovieClip.menu, TextField.menu
message
Error.message
Microphone
Classe Microphone
min
Math.min()
MIN_VALUE
Number.MIN_VALUE
motionLevel
Camera.motionLevel
motionTimeOut
Camera.motionTimeOut
Conteúdo do dicionário
227
228
Elemento do ActionScript
Consulte a entrada
Mouse
Classe Mouse
mouseWheelEnabled
TextField.mouseWheelEnabled
moveTo
MovieClip.moveTo()
MovieClip
Classe MovieClip
MovieClipLoader
Classe MovieClipLoader
multiline
TextField.multiline
muted
Camera.muted, Microphone.muted
name
Error.name, Microphone.name
names
Camera.names, Microphone.names
NaN
NaN, Number.NaN
ne
ne (diferente — específico de seqüência de caracteres)
NEGATIVE_INFINITY
Number.NEGATIVE_INFINITY
NetConnection
Classe NetConnection
NetStream
Classe NetStream
new (operador)
new
newline
newline
nextFrame
nextFrame(), MovieClip.nextFrame()
nextScene
nextScene()
nextSibling
XML.nextSibling
nodeName
XML.nodeName
nodeType
XML.nodeType
nodeValue
XML.nodeValue
not
not
null
null
Number
Number(), Classe Number
Object
Classe Object, Object()
on
on()
onActivity
Camera.onActivity, Microphone.onActivity
onChanged
TextField.onChanged
onClipEvent
onClipEvent()
onClose
XMLSocket.onClose()
onConnect
XMLSocket.onConnect()
onData
LoadVars.onData, MovieClip.onData, XML.onData,
XMLSocket.onData()
onDragOut
Button.onDragOut, MovieClip.onDragOut
onDragOver
Button.onDragOver, MovieClip.onDragOver
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
onEnterFrame
MovieClip.onEnterFrame
onID3
Sound.onID3
onKeyDown
Button.onKeyDown, Key.onKeyDown, MovieClip.onKeyDown
onKeyUp
Button.onKeyUp, Key.onKeyUp, MovieClip.onKeyUp
onKillFocus
Button.onKillFocus, MovieClip.onKillFocus,
TextField.onKillFocus
onLoad
LoadVars.onLoad, MovieClip.onLoad, Sound.onLoad,
TextField.StyleSheet.onLoad, XML.onLoad()
onLoadComplete
MovieClipLoader.onLoadComplete()
onLoadError
MovieClipLoader.onLoadError()
onLoadInit
MovieClipLoader.onLoadInit()
onLoadProgress
MovieClipLoader.onLoadProgress()
onLoadStart
MovieClipLoader.onLoadStart()
onMouseDown
Mouse.onMouseDown, MovieClip.onMouseDown
onMouseMove
Mouse.onMouseMove, MovieClip.onMouseMove
onMouseUp
Mouse.onMouseUp, MovieClip.onMouseUp
onMouseWheel
Mouse.onMouseWheel
onPress
Button.onPress, MovieClip.onPress
onRelease
Button.onRelease, MovieClip.onRelease
onReleaseOutisde
Button.onReleaseOutside, MovieClip.onReleaseOutside
onResize
Stage.onResize
onRollOut
Button.onRollOut, MovieClip.onRollOut
onRollOver
Button.onRollOver, MovieClip.onRollOver
onScroller
TextField.onScroller
onSelect
ContextMenu.onSelect, ContextMenuItem.onSelect
onSetFocus
Button.onSetFocus, MovieClip.onSetFocus,
Selection.onSetFocus, TextField.onSetFocus
onSoundComplete
Sound.onSoundComplete
onStatus
Camera.onStatus, LocalConnection.onStatus,
Microphone.onStatus, NetStream.onStatus,
SharedObject.onStatus()
onUnload
MovieClip.onUnload
onUpdate
onUpdate
onXML
XMLSocket.onXML()
or (OR lógico)
or
ord
ord
os
System.capabilities.os
Conteúdo do dicionário
229
230
Elemento do ActionScript
Consulte a entrada
parentNode
XML.parentNode
parseCSS
TextField.StyleSheet.parseCSS()
parseFloat
parseFloat()
parseInt
parseInt
parseXML
XML.parseXML()
password
TextField.password
pause
NetStream.pause()
PGDN
Key.PGDN
PGUP
Key.PGUP
PI
Math.PI
pixelAspectRatio
System.capabilities.pixelAspectRatio
play
play(), MovieClip.play(), NetStream.play()
playerType
System.capabilities.playerType
pop
Array.pop()
position
Sound.position
POSITIVE_INFINITY
Number.POSITIVE_INFINITY
pow
Math.pow()
prevFrame
prevFrame(), MovieClip.prevFrame()
previousSibling
XML.previousSibling
prevScene
prevScene()
print
print()
printAsBitmap
printAsBitmap()
printAsBitmapNum
printAsBitmapNum()
PrintJob
Classe PrintJob
printNum
printNum()
private
private
prototype
Function.prototype
public
public
push
Array.push()
quality
Camera.quality
random
random, Math.random()
rate
Microphone.rate
registerClass
Object.registerClass()
removeListener
Key.removeListener(), Mouse.removeListener(),
Selection.removeListener(), Stage.removeListener(),
TextField.removeListener()
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
removeMovieClip
removeMovieClip(), MovieClip.removeMovieClip()
removeNode
XML.removeNode()
removeTextField
TextField.removeTextField()
replaceSel
TextField.replaceSel()
replaceText
TextField.replaceText
resolutionX
System.capabilities.screenResolutionX
resolutionY
System.capabilities.screenResolutionY
restrict
TextField.restrict
return
return
reverse
Array.reverse()
RIGHT
Key.RIGHT
rightMargin
TextFormat.rightMargin
round
Math.round()
scaleMode
Stage.scaleMode
screenColor
System.capabilities.screenColor
screenDPI
System.capabilities.screenDPI
screenResolutionX
System.capabilities.screenResolutionX
screenResolutionY
System.capabilities.screenResolutionY
scroll
scroll, TextField.scroll
seek
NetStream.seek()
selectable
TextField.selectable
Selection
Classe Selection
send
LoadVars.send(), LocalConnection.send(), PrintJob.send(),
XML.send(), XMLSocket.send()
sendAndLoad
LoadVars.sendAndLoad(), XML.sendAndLoad()
separatorBefore
ContextMenuItem.separatorBefore
serverString
System.capabilities.serverString
set
set
set variable
set variable
setBufferTime
NetStream.setBufferTime()
setDate
Date.setDate()
setFocus
Selection.setFocus()
setFullYear
Date.setFullYear()
setGain
Microphone.setGain()
setHours
Date.setHours()
setInterval
setInterval()
Conteúdo do dicionário
231
232
Elemento do ActionScript
Consulte a entrada
setMask
MovieClip.setMask()
setMilliseconds
Date.setMilliseconds()
setMinutes
Date.setMinutes()
setMode
Camera.setMode()
setMonth
Date.setMonth()
setMotionLevel
Camera.setMotionLevel()
setNewTextFormat
TextField.setNewTextFormat()
setPan
Sound.setPan()
setProperty
setProperty()
setQuality
Camera.setQuality()
setRate
Microphone.setRate()
setRGB
Color.setRGB()
setSeconds
Date.setSeconds()
setSelection
Selection.setSelection()
setSilenceLevel
Microphone.setSilenceLevel()
setStyle
TextField.StyleSheet.setStyle()
setTextFormat
TextField.setTextFormat()
setTime
Date.setTime()
setTransform
Color.setTransform(), Sound.setTransform()
setUseEchoSuppression
Microphone.setUseEchoSuppression()
setUTCDate
Date.setUTCDate()
setUTCFullYear
Date.setUTCFullYear()
setUTCHours
Date.setUTCHours()
setUTCMilliseconds
Date.setUTCMilliseconds()
setUTCMinutes
Date.setUTCMinutes()
setUTCMonth
Date.setUTCMonth()
setUTCSeconds
Date.setUTCSeconds()
setVolume
Sound.setVolume()
setYear
Date.setYear()
SharedObject
Classe SharedObject
SHIFT (constante)
Key.SHIFT
shift (método)
Array.shift()
show
Mouse.show()
showMenu
Stage.showMenu
showSettings
System.showSettings()
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
silenceLevel
Microphone.silenceLevel()
silenceTimeout
Microphone.silenceTimeout()
sin
Math.sin()
tamanho
TextFormat.size
slice
Array.slice(), String.slice()
smoothing
Video.smoothing
sort
Array.sort()
sortOn
Array.sortOn()
Som
Classe Sound
SPACE
Key.SPACE
splice
Array.splice()
split
String.split()
sqrt
Math.sqrt()
SQRT1_2
Math.SQRT1_2
SQRT2
Math.SQRT2
Stage
Classe Stage
start
PrintJob.start(), Sound.start()
startDrag
startDrag(), MovieClip.startDrag()
static
static
status
XML.status
stop
stop(), MovieClip.stop(), Sound.stop()
stopAllSounds
stopAllSounds()
stopDrag
stopDrag(), MovieClip.stopDrag()
String
Classe String, String()
StyleSheet (classe)
Classe TextField.StyleSheet
styleSheet (propriedade)
TextField.styleSheet
substr
String.substr()
substring
substring, String.substring()
super
super
swapDepths
MovieClip.swapDepths()
switch
switch
System
Classe System
TAB
Key.TAB
tabChildren
MovieClip.tabChildren
tabEnabled
Button.tabEnabled, MovieClip.tabEnabled,
TextField.tabEnabled
Conteúdo do dicionário
233
234
Elemento do ActionScript
Consulte a entrada
tabIndex
Button.tabIndex, MovieClip.tabIndex, TextField.tabIndex
tabStops
TextFormat.tabStops
tan
Math.tan()
target
TextFormat.target
targetPath
targetPath
tellTarget
tellTarget
text
TextField.text
textColor
TextField.textColor
TextField
Classe TextField
TextFormat
Classe TextFormat
textHeight
TextField.textHeight
textWidth
TextField.textWidth
this
this
throw
throw
time
NetStream.time
toggleHighQuality
toggleHighQuality()
toLowerCase
String.toLowerCase()
toString
Array.toString(), Boolean.toString(), Date.toString(),
Error.toString(), LoadVars.toString(), Number.toString(),
Object.toString(), XML.toString()
toUpperCase
String.toUpperCase()
trace
trace()
trackAsMenu
Button.trackAsMenu, MovieClip.trackAsMenu
true
true
try
try..catch..finally
type
TextField.type
typeof
typeof
undefined
undefined
underline
TextFormat.underline
unescape
unescape
uninstall
CustomActions.uninstall()
unloadClip
MovieClipLoader.unloadClip()
unloadMovie
unloadMovie(), MovieClip.unloadMovie()
unLoadMovieNum
unloadMovieNum()
unshift
Array.unshift()
unwatch
Object.unwatch()
Capítulo 12: Dicionário do ActionScript
Elemento do ActionScript
Consulte a entrada
UP
Key.UP
updateAfterEvent
updateAfterEvent()
updateProperties
Accessibility.updateProperties()
url
TextFormat.url
useCodePage
System.useCodepage
useEchoSuppression
Microphone.useEchoSuppression()
useHandCursor
Button.useHandCursor, MovieClip.useHandCursor
UTC
Date.UTC()
valueOf
Boolean.valueOf(), Number.valueOf(), Object.valueOf()
var
var
variable
TextField.variable
version
System.capabilities.version
Video
Classe Video
visible
ContextMenuItem.visible
void
void
watch
Object.watch()
while
while
width
Camera.width, Stage.width, Video.width
with
with
wordwrap
TextField.wordWrap
XML
Classe XML
xmlDecl
XML.xmlDecl
XMLNode
Classe XMLNode
XMLSocket
Classe XMLSocket
Conteúdo do dicionário
235
–– (decremento)
Disponibilidade
Flash Player 4.
Uso
––expressão
expressão––
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (aritmético); um operador unitário pré-decremento e pós-decremento que subtrai 1 da
expressão. A forma pré-decremento do operador (––expressão) subtrai 1 da expressão e
retorna o resultado. A forma pós-decremento do operador (expressão––) subtrai 1 da
expressão e retorna o valor inicial da expressão (o resultado anterior à subtração).
Exemplo
A forma pré-decremento do operador decrementa x para 2 (x - 1 = 2) e retorna o resultado
como y:
x = 3;
y = --x;
//y é igual a 2
A forma pós-decremento do operador decrementa x para 2 (x - 1 = 2) e retorna o valor original
de x como o resultado y:
x = 3;
y = x-//y é igual a 3
236
Capítulo 12: Dicionário do ActionScript
++ (incremento)
Disponibilidade
Flash Player 4.
Uso
++expressão
expressão++
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (aritmético); um operador unário pré-incremento e pós-incremento que adiciona 1 à
expressão. A expressão pode ser uma variável, um elemento em uma matriz ou uma
propriedade de um objeto. A forma pré-incremento do operador (++expressão) adiciona 1 à
expressão e retorna o resultado. A forma pós-incremento do operador (expressão++) adiciona
1 à expressão e retorna o valor inicial da expressão (o resultado anterior à adição).
A forma pré-incremento do operador incrementa x para 2 (x + 1 = 2) e retorna o resultado
como y:
x = 1;
y = ++x
//y é igual a 2
A forma pós-incremento do operador incrementa x para 2 (x + 1 = 2) e retorna o valor original
de x como o resultado y:
x = 1;
y = x++;
//y é igual a 1
++ (incremento)
237
Exemplo
O exemplo a seguir usa ++ como operador pós-incremento para fazer com que um loop while
seja executado cinco vezes.
i = 0;
while(i++ < 5){
trace("isto é execução " + i);
}
Este exemplo usa ++ como operador pré-incremento:
var a = [];
var i = 0;
while (i < 10) {
a.push(++i);
}
trace(a.join());
Este script exibe o seguinte resultado no painel Output (Saída):
1,2,3,4,5,6,7,8,9,10
O exemplo a seguir usa ++ como operador pós-incremento:
var a = [];
var i = 0;
while (i < 10) {
a.push(i++);
}
trace(a.join());
Este script exibe o seguinte resultado no painel Output (Saída):
0,1,2,3,4,5,6,7,8,9
238
Capítulo 12: Dicionário do ActionScript
! (NOT lógico)
Disponibilidade
Flash Player 4.
Uso
!expressão
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (lógico); inverte o valor booleano de uma variável ou expressão. Se expressão for uma
variável com o valor absoluto ou convertido true, o valor de !expressão será false. Se a
expressão x && y for avaliada como false, a expressão !(x && y) será avaliada como true.
As expressões a seguir ilustram o resultado do uso do operador !:
! true
retorna false
! false
retorna true
Exemplo
No exemplo a seguir, a variável happy é definida como false. A condição if avalia a condição
!happy e, se ela for true, a ação trace() enviará uma seqüência de caracteres para o painel
Output (Saída).
happy = false;
if (!happy){
trace("don’t worry be happy");
}
! (NOT lógico)
239
!= (diferença)
Disponibilidade
Flash Player 5.
Uso
expressão1 != expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (diferença); testa o oposto exato do operador ==. Se expressão1 for igual a
expressão2, o resultado será false. Como com o operador ==, a definição de igual depende dos
tipos de dados comparados.
• Números, seqüências de caracteres e valores booleanos são comparados por valor.
• Variáveis, objetos, matrizes e funções são comparadas por referência.
Exemplo
O exemplo a seguir ilustra o resultado do operador !=:
5 != 8
retorna true
5 != 5
retorna false
Este exemplo ilustra o uso do operador != em um comando if.
a = "David";
b = "Fool"
if (a != b){
trace("David is not a fool");
}
Consulte também
!== (diferença estrita), == (igualdade), === (igualdade estrita)
240
Capítulo 12: Dicionário do ActionScript
!== (diferença estrita)
Disponibilidade
Flash Player 6.
Uso
expressão1 !== expressão2
Descrição
Operador; testa o oposto exato do operador ===. O operador diferença estrita executa a mesma
operação que o operador diferença, exceto a conversão dos tipos de dados. Se expressão1 for
igual a expressão2 e os tipos de dados forem iguais, o resultado será false. Da mesma forma
que o operador ===, a definição de igual depende dos tipos de dados comparados.
• Números, seqüências de caracteres e valores booleanos são comparados por valor.
• Variáveis, objetos, matrizes e funções são comparadas por referência.
Exemplo
O código a seguir exibe o valor retornado de operações que usam os operadores de igualdade,
igualdade estrita e diferença estrita.
s1 = new String("5");
s2 = new String("5");
s3 = new String("Hello");
n = new Number(5);
b = new Boolean(true);
s1
s1
s1
s1
==
==
==
==
s2; // true
s3; // false
n; // true
b; // false
s1
s1
s1
s1
===
===
===
===
s2; // true
s3; // false
n; // false
b; // false
s1
s1
s1
s1
!==
!==
!==
!==
s2; // false
s3; // true
n; // true
b; // true
Consulte também
!= (diferença), == (igualdade), === (igualdade estrita)
!== (diferença estrita)
241
% (módulo)
Disponibilidade
Flash Player 4. Em arquivos do Flash 4, o operador % é expandido no arquivo SWF como x int(x/y) * y e pode não ser tão rápido e preciso quanto nas versões posteriores do Flash Player.
Uso
expressão1 % expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (aritmético); calcula o resto da expressão1 dividida por expressão2. Se um dos
parâmetros expressão não for numérico, o operador módulo tentará convertê-lo(s) em números.
A expressão pode ser um número ou uma seqüência de caracteres convertida em um valor
numérico.
Exemplo
A seguir é apresentado um exemplo numérico que usa o operador módulo (%).
trace (12 % 5);
// retorna 2
trace (4,3 % 2,1);
// retorna aproximadamente 0,1
242
Capítulo 12: Dicionário do ActionScript
%= (atribuição de módulo)
Disponibilidade
Flash Player 4.
Uso
expressão1
%= expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (atribuição composta aritmética); atribui a expressão1 o valor de expressão1 %
Por exemplo, as duas expressões a seguir são idênticas:
expressão2.
x %= y
x = x % y
Exemplo
O exemplo a seguir atribui o valor 4 à variável x.
x = 14;
y = 5;
trace(x %= y);
// retorna 4
Consulte também
% (módulo)
%= (atribuição de módulo)
243
& (operador AND bit a bit)
Disponibilidade
Flash Player 5. No Flash 4, o operador & era usado para concatenar seqüências de caracteres.
No Flash 5 e posteriores, o operador & é um AND bit a bit e os operadores add e + devem ser
usados para concatenar seqüências de caracteres. Os arquivos do Flash 4 que usam o operador &
são atualizados automaticamente para usarem add quando trazidos para o ambiente de criação do
Flash 5 ou posterior.
Uso
expressão1 & expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (bit a bit); converte expressão1 e expressão2 em inteiros não assinados de 32 bits e
executa uma operação AND booleana em cada bit dos parâmetros inteiros. O resultado é um
novo inteiro não assinado de 32 bits.
244
Capítulo 12: Dicionário do ActionScript
&& (AND lógico)
Disponibilidade
Flash Player 4.
Uso
expressão1 && expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (lógico); executa uma operação booleana nos valores de uma ou de ambas as expressões.
Avalia expressão1 (a expressão do lado esquerdo do operador) e retorna false se a expressão for
avaliada como false. Se expressão1 for avaliada como true, expressão2 (a expressão do lado
direito do operador) será avaliada. Se expressão2 for avaliada como true, o resultado final será
true; caso contrário, será false.
Exemplo
Este exemplo usa o operador && para realizar um teste e determinar se um jogador venceu o jogo.
As variáveis turns e score são atualizadas quando for a vez de um jogador ou quando esse marcar
um ponto durante o jogo. O script abaixo exibe a mensagem “Você venceu o jogo!” no painel
Output (Saída) quando a pontuação do jogador atingir 75, ou mais, em 3 voltas, ou menos.
rodadas=2;
placar=77;
vencedor = (rodadas< = 3) && (placar >= 75);
if (vencedor) {
trace("Você venceu o jogo!");
else {
trace("Tente novamente!");
}
&& (AND lógico)
245
&= (atribuição AND bit a bit)
Disponibilidade
Flash Player 5.
Uso
expressão1 &= expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador; atribui o valor de expressão1 & expressão2 para expressão1. Por exemplo, as duas
expressões a seguir são idênticas.
x &= y;
x = x & y;
Exemplo
O exemplo a seguir atribui o valor 9 a x.
x = 15;
y = 9;
trace(x &= y);
// retorna 9
Consulte também
& (operador AND bit a bit)
246
Capítulo 12: Dicionário do ActionScript
() (parênteses)
Disponibilidade
Flash Player 4.
Uso
(expressão1, expressão2);
função(parâmetro1,..., parâmetroN);
Parâmetros
expressão1, expressão2
função
Números, seqüências de caracteres, variáveis ou texto.
A função a ser executada no conteúdo entre parênteses.
Uma série de parâmetros que devem ser executados antes de os
resultados serem transferidos como parâmetros para a função fora dos parênteses.
parâmetro1...parâmetroN
Retorna
Nada.
Descrição
Operador; executa uma operação de agrupamento em um ou mais parâmetros, ou envolve um ou
mais parâmetros e os passa como parâmetros para uma função fora dos parênteses.
Uso 1: Controla a ordem de execução dos operadores na expressão. Os parênteses substituem a
ordem de precedência normal e fazem com que as expressões neles inseridas sejam avaliadas em
primeiro lugar. Quando os parênteses estão aninhados, o conteúdo dos parênteses mais internos é
avaliado antes do conteúdo dos mais externos.
Uso 2: Envolve um ou mais parâmetros e os passa como parâmetros para a função fora dos
parênteses.
Exemplo
Uso 1: Os comandos a seguir ilustram o uso de parênteses para controlar a ordem de execução das
expressões. O valor de cada expressão é exibido abaixo de cada linha da seguinte maneira:
trace((2 + 3) * (4 + 5));
// exibe 45
trace(2 + (3 * (4 + 5)));
// exibe 29
trace(2 + (3 * 4) + 5);
// exibe 19
Uso 2: Os exemplos a seguir ilustram o uso de parênteses com funções.
getDate();
invoice(item, quantidade);
function traceParameter(param){
trace(param);
}
traceParameter(2*2);
Consulte também
with
() (parênteses)
247
– (menos)
Disponibilidade
Flash Player 4.
Uso
(Negação) -expressão
(Subtração) expressão1 - expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (aritmético); usado para negação ou subtração.
Uso 1: Quando usado para negação, reverte o sinal da expressão numérica.
Uso 2: Quando usado para subtração, executa uma subtração aritmética em duas expressões
numéricas, subtraindo expressão2 de expressão1. Quando ambas as expressões são inteiras,
a diferença é um inteiro. Quando uma ou ambas as expressões são números de ponto flutuante,
a diferença é um número de ponto flutuante.
Exemplo
Uso 1: O comando a seguir reverte o sinal da expressão 2 + 3.
-(2 + 3)
O resultado é -5.
Uso 2: O comando a seguir subtrai o inteiro 2 do inteiro 5.
5 - 2
O resultado é 3, que é um inteiro.
Uso 2: O comando a seguir subtrai o número de ponto flutuante 1.5 do número de ponto
flutuante 3.25.
3.25 - 1.5
O resultado é 1.75, que é um número de ponto flutuante.
248
Capítulo 12: Dicionário do ActionScript
* (multiplicação)
Disponibilidade
Flash Player 4.
Uso
expressão1 * expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (aritmético); multiplica duas expressões numéricas. Se ambas as expressões forem
inteiras, o produto será um inteiro. Se uma ou ambas as expressões forem números de ponto
flutuante, o produto será um número de ponto flutuante.
Exemplo
O comando a seguir multiplica os inteiros 2 e 3:
2 * 3
O resultado é 6, que é um inteiro.
Exemplo
Este comando multiplica os números de ponto flutuante 2,0 e 3,1416.
2.0 * 3.1416
O resultado é 6,2832, que é um número de ponto flutuante.
* (multiplicação)
249
*= (atribuição de multiplicação)
Disponibilidade
Flash Player 4.
Uso
expressão1 *= expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador (atribuição composta aritmética); atribui a expressão1 o valor da expressão1 *
expressão2. Por exemplo, as duas expressões a seguir são idênticas:
x *= y
x = x * y
Exemplo
O exemplo a seguir atribui o valor 50 à variável x.
x = 5;
y = 10;
trace (x *= y);
// retorna 50
Exemplo
A segunda e a terceira linhas do exemplo a seguir calculam as expressões do lado direito do sinal de
igual e atribuem os resultados a x e y.
i = 5;
x = 4 - 6;
y = i + 2;
trace(x *= y);
// retorna -14
Consulte também
* (multiplicação)
250
Capítulo 12: Dicionário do ActionScript
, (vírgula)
Disponibilidade
Flash Player 4.
Uso
expressão1, expressão2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Operador; avalia expressão1, depois expressão2 e retorna o valor de expressão2.
Esse operador é principalmente usado com o comando de loop for.
Exemplo
O exemplo de código a seguir usa um operador vírgula:
var a=1, b=2, c=3;
Isso é equivalente a escrever o seguinte código:
var a=1;
var b=2;
var c=3;
, (vírgula)
251
. (ponto)
Disponibilidade
Flash Player 4.
Uso
objeto.propriedade_ou_metodo
nome_da_instância.variável
nome_da_instância.instância_filha.variável
Parâmetros
objeto Uma instância de uma classe. O objeto pode ser uma instância de qualquer uma das
classes internas do ActionScript ou de uma classe personalizada. Esse parâmetro está sempre à
esquerda do operador ponto (.).
propriedade_ou_método O nome de uma propriedade ou de um método associado ao objeto.
Todas as propriedades e métodos válidos das classes internas são apresentados nas tabelas de
resumo de métodos e propriedades da classe. Esse parâmetro sempre está à direita do operador
ponto (.).
nome_da_instância
O nome da instância de um clipe de filme.
Uma instância do clipe de filme que seja filha do clipe do filme principal,
ou que esteja nele aninhada.
instância_filha
Uma variável na Timeline (Linha do tempo) do nome da instância do clipe de filme
à esquerda do operador ponto (.).
variável
Retorna
Nada.
Descrição
Operador; usado para navegar por hierarquias de clipes de filmes, para acessar clipes de filmes,
variáveis ou propriedades (filha) aninhados. O operador ponto é usado também para testar ou
definir as propriedades de um objeto, executar um método de um objeto ou criar uma estrutura
de dados.
252
Capítulo 12: Dicionário do ActionScript
Exemplo
O comando a seguir identifica o valor atual da variável corCabelo no clipe de filme person_mc.
pessoa_mc.corCabelo
Isso equivale à seguinte sintaxe do Flash 4:
/pessoa_mc:corCabelo
O código a seguir ilustra como o operador ponto pode ser usado para criar a estrutura de uma
matriz:
account.name = "Gary Smith";
account.address = "123 Main St";
account.city = "Any Town";
account.state = "CA";
account.zip = "12345";
Consulte também
[] (acesso de array)
. (ponto)
253
: (tipo)
Disponibilidade
Flash Player 6.
Uso
[modificadores] [var] nomeVariável:[tipo]
function nomeFunção():[tipo] { ... }
function nomeFunção(parâmetro1[:tipo], ... , parâmetroN[:tipo]) { ... }
Parâmetros
nomeVariável
Um identificador de uma variável.
Um tipo de dados nativo, um nome de classe que tenha sido definido ou um nome
de interface.
tipo
nomeFunção
parâmetro
Um identificador de uma função.
Um identificador de um parâmetro de uma função.
Descrição
Operador; especifica o tipo da variável, o tipo de retorno da função ou o tipo de parâmetro da
função. Quando usado em uma atribuição ou em uma declaração de variável, esse operador
especifica o tipo da variável; quando usado em uma declaração ou definição de função, esse
operador especifica o tipo de retorno da função; quando usado com um parâmetro de função em
uma definição de função, esse operador especifica o tipo da variável esperado para esse parâmetro.
Os tipos são um recurso de tempo de compilação somente. Todos os tipos são verificados em
tempo de compilação e geram-se erros quando há incompatibilidades. Para obter mais
informações, consulte Apêndice A, “Mensagens de erro”, na página 851. Incompatibilidade de
tipos podem ocorrer durante operações de atribuição, chamadas de função e referência a membro
de classe usando o operador ponto (.). Para evitar a incompatibilidade de tipos, use a atribuição
explícita de tipos (consulte “Atribuição estrita de tipos de dados” na página 35).
Os tipos que podem ser usados incluem todos os tipos de objetos nativos, classes e interfaces que
sejam definidos pelo usuário e Void e Function (que existem somente como tipos, não como
objetos). Os tipos nativos reconhecidos são Array, Boolean, Button, Color, CustomActions, Date,
Function, LoadVars, LocalConnection, Microphone, MovieClip, NetConnection, NetStream,
Number, Object, SharedObject, Sound, String, TextField, TextFormat, Video, Void, XML,
XMLNode e XMLSocket.
254
Capítulo 12: Dicionário do ActionScript
Exemplo
Uso 1: O exemplo a seguir declara uma variável pública denominada nomeUsuario cujo tipo é
String e atribui uma seqüência de caracteres vazia a ela.
public var nomeUsuario:String = "";
Uso 2: Este exemplo demonstra como especificar o tipo de parâmetro de uma função. O código a
seguir define uma função denominada setData() que requer um parâmetro denominado
dataAtual do tipo Date.
function setData(dataAtual:Date) {
this.data = dataAtual;
}
Uso 3: O código a seguir define uma função denominada raizQuad() que requer um parâmetro
denominado val do tipo Number e retorna a raiz quadrada de val, também um tipo Number.
function raizQuad(val:Number):Number {
return Math.sqrt(val);
}
: (tipo)
255
?: (condicional)
Disponibilidade
Flash Player 4.
Uso
expressão1 ? expressão2 : expressão3
Parâmetros
expressão1
Uma expressão que é avaliada para um valor booleano, normalmente uma
expressão de comparação como x < 5.
expressão2, expressão3
Valores de qualquer tipo.
Retorna
Nada.
Descrição
Operador; instrui o Flash a avaliar expressão1 e, se o valor de expressão1 for true,
ele retornará o valor de expressão2; caso contrário, retornará o valor de expressão3.
Exemplo
O comando a seguir atribui o valor de variável x a variável z, pois expressão1 foi avaliada como
true:
x = 5;
y = 10;
z = (x < 6) ? x: y;
trace (z);
// retorna 5
256
Capítulo 12: Dicionário do ActionScript
/ (divisão)
Disponibilidade
Flash Player 4.
Uso
expressão1 / expressão2
Parâmetros
expressão
Um número ou uma variável que avalia um número.
Retorna
Nada.
Descrição
Operador (aritmético); divide expressão1 por expressão2. O resultado da operação de divisão é
um número de dupla precisão e ponto flutuante.
Exemplo
O comando a seguir divide o número de ponto flutuante 22,0 por 7,0 e exibe o resultado no
painel Output (Saída).
trace(22,0 / 7,0);
O resultado é 3,1429, que é um número de ponto flutuante.
/ (divisão)
257
// (delimitador de comentário)
Disponibilidade
Flash 1.
Uso
// comentário
Parâmetros
comentário
Qualquer caractere.
Retorna
Nada.
Descrição
Comentário; indica o início de um comentário de script. Qualquer caractere que apareça entre o
delimitador de comentário // e o caractere de fim de linha será interpretado como comentário e
ignorado pelo interpretador ActionScript.
Exemplo
Este script usa delimitadores de comentário para identificar a primeira, terceira, quinta e sétima
linhas como comentários.
// registra a posição
ballX = ball._x;
// registra a posição
ballY = ball._y;
// registra a posição
batX = bat._x;
// registra a posição
batY = bat._y;
X do clipe de filme ball
Y do clipe de filme ball
X do clipe de filme bat
Y do clipe de filme bat
Consulte também
/* (delimitador de comentário)
258
Capítulo 12: Dicionário do ActionScript
/* (delimitador de comentário)
Disponibilidade
Flash Player 5.
Uso
/* comentário */
/*
comentário
comentário
*/
Parâmetros
comentário
Qualquer caractere.
Retorna
Nada.
Descrição
Comentário; indica uma ou mais linhas de comentários de script. Quaisquer caracteres que
apareçam entre a marca de começo de comentário /* e a marca de fechamento de comentário */
são interpretados como comentários e ignorados pelo interpretador ActionScript. Use o primeiro
tipo de sintaxe para identificar comentários de uma linha. Use o segundo tipo de sintaxe para
identificar comentários de várias linhas sucessivas. Se não for usada a marca de fechamento */
com essa forma de delimitador de comentário, será gerada uma mensagem de erro.
Exemplo
Este script usa delimitadores de comentário no início do script.
/* grava as posições X e Y dos
clipes de filme ball e bat
*/
ballX = ball._x;
ballY = ball._y;
batX = bat._x;
batY = bat._y;
Consulte também
// (delimitador de comentário)
/* (delimitador de comentário)
259
/= (atribuição de divisão)
Disponibilidade
Flash Player 4.
Uso
expressão1
/= expressão2
Parâmetros
expressão1,expressão2
Um número ou uma variável que é avaliada para um número.
Retorna
Nada.
Descrição
Operador (atribuição composta aritmética); atribui a expressão1 o valor da expressão1 /
expressão2. Por exemplo, os dois comandos a seguir são equivalentes:
x /= y
x = x / y
Exemplo
O código a seguir ilustra o uso do operador /= com variáveis e números.
x = 10;
y = 2;
x /= y;
// x agora contém o valor 5
260
Capítulo 12: Dicionário do ActionScript
[] (acesso de array)
Disponibilidade
Flash Player 4.
Uso
meu_array = ["a0", a1,...aN];
meu_arrayMultiDimensional = [["a0",...aN],...["a0",...aN]]
meu_array[E] = valor
meu_arrayMultiDimensional[E][E] = valor
objeto["valor"];
Parâmetros
meu_array
O nome de um array.
a0, a1,...aN
Elementos em uma matriz.
meu_arrayMultiDimensional
E
O nome de um array multidimensional simulado.
O número (ou índice) de um elemento em uma matriz.
objeto
valor
O nome de um objeto.
Uma seqüência de caracteres ou expressão que dá nome a uma propriedade do objeto.
Retorna
Nada.
Descrição
Operador; inicializa uma nova matriz ou uma matriz multidimensional com os elementos
especificados (a0, e assim por diante), ou acessa elementos em uma matriz. O operador de acesso
de matriz permite definir e recuperar dinamicamente nomes de instância, de variável e de objeto.
Além disso, permite o acesso às propriedades de objeto.
Uso 1: Um array é um objeto cujas propriedades são denominadas elementos, que são identificados
individualmente por um número chamado de índice. Na criação de uma matriz, os elementos
ficam entre o operador de acesso de matriz (ou colchetes). Uma matriz pode conter elementos de
vários tipos. Por exemplo, a matriz a seguir, denominada funcionário, possui três elementos;
o primeiro é um número e os outros dois são seqüências de caracteres (dentro de aspas).
funcionário = [15, "Bárbara", "Érico"];
Uso 2: Para simular matrizes multidimensionais, é possível aninhar os colchetes. O código a seguir
cria uma matriz denominada ticTacToe com três elementos; cada um deles também é uma
matriz com três elementos.
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]];
// escolha Debug (Depurar) > List Variables (Listar variáveis) no modo de teste
de filme
// para visualizar uma lista dos elementos de matriz
[] (acesso de array)
261
Uso 3: Coloque o índice de cada elemento entre colchetes para acessá-lo diretamente. É possível
adicionar um novo elemento e alterar ou recuperar o valor de um elemento existente no array.
O primeiro elemento de uma matriz é sempre 0:
meu_array[0] = 15;
meu_array[1] = "Olá";
meu_array[2] = true;
Use colchetes para adicionar um quarto elemento, como no exemplo a seguir:
meu_array[3] = "George";
Uso 4: Para acessar um elemento em uma matriz multidimensional, use colchetes. O primeiro
conjunto de colchetes identifica o elemento na matriz original, e o segundo conjunto identifica o
elemento na matriz aninhada. A linha de código a seguir envia o número 6 para o painel Output
(Saída).
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]];
trace(ticTacToe[1][2]);
// retorna 6
Uso 5: É possível usar o operador de acesso de array em vez da função eval para atribuir e
recuperar dinamicamente valores de nomes de clipes de filme ou qualquer propriedade de um
objeto:
Nome["mc" + i] = "canto_esquerdo";
Exemplo
Uso 1: Os exemplos de código a seguir mostram duas maneiras diferentes de criar um novo objeto
Array vazio; a primeira linha usa colchetes.
meu_array =[];
meu_array = new Array();
Usos 1 e 2: O exemplo a seguir cria um array chamado array_funcionários e usa a ação
trace() para enviar os elementos para o painel Output (Saída). Na quarta linha, um elemento do
array é alterado e a quinta linha envia o array recentemente modificado para o painel Output
(Saída):
array_funcionários = ["Bárbara", "George", "Maria"];
trace(array_funcionários);
// Bárbara, George, Maria
array_funcionários[2]="Sam";
trace(array_funcionários);
// Bárbara, George, Sam
Uso 3: No exemplo a seguir, a expressão entre parênteses ("piece" + i) é avaliada e o resultado é
usado como o nome da variável a ser recuperada do clipe de filme my_mc. Neste exemplo,
a variável i deve estar na mesma Timeline que o botão. Se a variável i for igual a 5, por exemplo,
o valor da variável piece5 no clipe de filme my_mc será exibido no painel Output (Saída):
on (release) {
x = meu_mc["trecho"+i];
trace(x);
}
262
Capítulo 12: Dicionário do ActionScript
Uso 3: No código a seguir, a expressão dentro dos colchetes é avaliada e o resultado é usado como
o nome da variável a ser recuperada do clipe de filme nome_mc:
nome_mc["A" + i];
Caso conheça a sintaxe de barra do ActionScript do Flash 4, use a função eval para obter o
mesmo resultado:
eval("name.A" & i);
Uso 3: Também é possível usar o operador de acesso de array do lado esquerdo de um comando de
atribuição para definir dinamicamente a instância, a variável e os nomes de objeto:
name[index] = "Gary";
Consulte também
Classe Array, Classe Object, eval()
[] (acesso de array)
263
^ (XOR bit a bit)
Disponibilidade
Flash Player 5.
Uso
expressão1 ^ expressão2
Parâmetros
expressão1,expressão2
Um número.
Retorna
Nenhum.
Descrição
Operador (bit a bit); converte expressão1 e expressão2 em inteiros sem sinal de 32 bits e
retorna um 1 em cada posição de bit onde os bits correspondentes na expressão1 ou
expressão2, mas não em ambas, sejam 1.
Exemplo
O exemplo a seguir usa o operador XOR bit a bit nos decimais 15 e 9 e atribui o resultado à
variável x.
// 15 decimal = 1111 binário
// 9 decimal = 1001 binário
x = 15 ^ 9
trace(x)
// 1111 ^ 1001 = 0110
// retorna 6 decimal( = 0110 binário)
264
Capítulo 12: Dicionário do ActionScript
^= (atribuição XOR bit a bit)
Disponibilidade
Flash Player 5.
Uso
expressão1
^=expressão2
Parâmetros
expressão1,expressão2
Inteiros e variáveis.
Retorna
Nenhum.
Descrição
Operador (atribuição composta bit a bit); atribui a expressão1 o valor de expressão1 ^
Por exemplo, os dois comandos a seguir são equivalentes:
expressão2.
x ^= y
x = x ^ y
Exemplo
A seguir, há o exemplo de uma operação ^=.
// 15 decimal = 1111 binário
x = 15;
// 9 decimal = 1001 binário
y = 9;
trace(x ^= y);
//retorna 6 decimal ( = 0110 binário)
Consulte também
^ (XOR bit a bit)
^= (atribuição XOR bit a bit)
265
{} (inicializador de objeto)
Disponibilidade
Flash Player 5.
Uso
objeto = {nome1: valor1, nome2: valor2,...nomeN: valorN};
Parâmetros
objeto
O objeto a ser criado.
nome1,2,...N
valor1,2,...N
Os nomes das propriedades.
Os valores correspondentes de cada propriedade nome.
Retorna
Nenhum.
Descrição
Operador; cria um novo objeto e o inicializa com os pares de propriedades nome e valor
especificados. Usar este operador é o mesmo que usar a sintaxe new Object e preencher os pares
de propriedades com o operador de atribuição. O protótipo do objeto recém-criado é
genericamente denominado como objeto Object.
Exemplo
A primeira linha do código a seguir cria um objeto vazio usando o operador de inicialização do
objeto; a segunda cria um novo objeto usando uma função construtora.
object = {};
object = new Object();
O exemplo a seguir cria um objeto account e inicializa as propriedades nome, endereço, cidade,
estado, cep e saldo com os respectivos valores.
conta = { nome: "Bete Silva",
endereço: "Rua Principal, 123",
cidade: "Cidade Flash",
estado: "São Paulo",
cep: "12345",
saldo: "1000" };
O exemplo a seguir mostra como inicializadores de matriz e de objeto podem ser aninhados um
no outro.
pessoa = { nome: "Gina Vechio",
filhos: [ "Ruby", "Chickie", "Puppa"] };
O exemplo a seguir usa as informações do exemplo anterior e apresenta o mesmo resultado
usando as funções construtoras.
person = new Person();
person.name = 'Gina Vechio';
person.children = new Array();
person.children[0] = 'Ruby';
person.children[1] = 'Chickie';
person.children[2] = 'Puppa';
Consulte também
[] (acesso de array), new,
266
Classe Object
Capítulo 12: Dicionário do ActionScript
| (OR bit a bit)
Disponibilidade
Flash Player 5.
Uso
expressão1 | expressão2
Parâmetros
expressão1,expressão2
Um número.
Retorna
Nenhum.
Descrição
Operador (bit a bit); converte expressão1 e expressão2 em inteiros não assinados de 32 bits e
retorna um 1 em cada posição de bit onde os bits correspondentes na expressão1 ou
expressão2 sejam 1.
Exemplo
A seguir, há o exemplo de uma operação OR bit a bit.
// 15 decimal = 1111 binário
x = 15;
// 9 decimal = 1001 binário
y = 9;
trace(x | y);
// 1111 | 0011 = 1111
// retorna 15 decimal (= 1111 binário)
| (OR bit a bit)
267
|| (OR lógico)
Disponibilidade
Flash Player 4.
Uso
expressão1 || expressão2
Parâmetros
expressão1,expressão2
Um valor ou uma expressão booleana convertida em um valor
booleano.
Retorna
Nenhum.
Descrição
Operador (lógico); avalia a expressão1 e a expressão2. O resultado será (true) se uma ou
ambas as expressões forem avaliadas como true; o resultado será (false) apenas se ambas as
expressões forem avaliadas como false. É possível usar o operador OR lógico com qualquer
número de operandos; se algum operando for avaliado como true, o resultado será true.
Com expressões não-booleanas, o operador lógico OR faz com que o Flash avalie a expressão da
esquerda; se ela puder ser convertida em true, o resultado será true. Caso contrário, ele avaliará a
expressão da direita e o resultado será o valor dessa expressão.
Exemplo
O exemplo a seguir usa o operador || em um comando if: A segunda expressão é avaliada como
true para que o resultado final seja true:
x = 10
y = 250
start = false
if(x >25 || y > 200 || start){
trace('o teste de OR lógico passou');
}
Exemplo
Este exemplo demonstra como uma expressão não-booleana pode apresentar um resultado
inesperado. Se a expressão da esquerda for convertida em true, esse resultado será retornado sem
converter a expressão da direita.
function fx1(){
trace ("fx1 chamado");
retorna true;
}
function fx2(){
trace ("fx2 chamado");
retorna true;
}
if (fx1() || fx2()){
trace ("entrou no comando IF");
}
//O que se segue é enviado para o painel Output (Saída):
// fx1 chamado
// comando IF inserido
268
Capítulo 12: Dicionário do ActionScript
|= (atribuição OR bit a bit)
Disponibilidade
Flash Player 5.
Uso
expressão1
|= expressão2
Parâmetros
expressão1,expressão2
Um número ou uma variável.
Retorna
Nenhum.
Descrição
Operador (atribuição bit a bit); atribui a expressão1 o valor de expressão1 | expressão2.
Por exemplo, os dois comandos a seguir são equivalentes:
x |= y;
x = x | y;
Exemplo
O exemplo a seguir usa o operador |=:
// 15 decimal = 1111 binário
x = 15;
// 9 decimal = 1001 binário
y = 9;
trace(x |= y);
// 1111 |= 1001
// retorna 15 decimal (= 1111 binário)
Consulte também
| (OR bit a bit)
|= (atribuição OR bit a bit)
269
~ (NOT bit a bit)
Disponibilidade
Flash Player 5.
Uso
~ expressão
Parâmetros
expressão
Um número.
Retorna
Nenhum.
Descrição
Operador (bit a bit); converte a expressão em um inteiro sem sinal de 32 bits, depois inverte os
bits. Uma operação NOT bit a bit altera o sinal de um número e subtrai 1.
Exemplo
O exemplo a seguir mostra uma operação NOT bit a bit executada em uma variável.
a = 0;
trace ("quando a = 0, ~a = "+~a);
// quando a = 0, ~a = -1
a = 1;
trace ("quando a = 1, ~a = "+~a);
// quando a = 0, ~a = -2
// portanto, ~0=-1 e ~1=-2
270
Capítulo 12: Dicionário do ActionScript
+ (adição)
Disponibilidade
Flash Player 4; Flash Player 5. No Flash 5 e posteriores, + é um operador numérico ou
concatenador de seqüências de caracteres, dependendo dos tipos de dados dos parâmetros.
No Flash 4, + é somente um operador numérico. Os arquivos do Flash 4 trazidos para o ambiente
de criação Flash 5 ou posteriores passam por um processo de conversão para manter a integridade
dos tipos de dados. O exemplo a seguir ilustra a conversão de um arquivo do Flash 4 que contém
uma comparação do tipo numérica.
Arquivo do Flash 4:
x + y
Arquivo do Flash 5, ou posterior, convertido:
Number(x) + Number(y)
Uso
expressão1 + expressão2
Parâmetros
expressão1,expressão2
Números ou seqüências de caracteres.
Retorna
Nenhum.
Descrição
Operador; adiciona expressões numéricas ou concatena (combina) seqüências de caracteres.
Se uma expressão for uma seqüência de caracteres, todas as outras expressões são convertidas em
seqüências de caracteres e concatenadas.
Se ambas as expressões forem inteiras, a soma será um inteiro; se uma ou ambas as expressões
forem números de ponto flutuante, a soma será um número de ponto flutuante.
Exemplo
O exemplo a seguir concatena duas seqüências de caracteres e exibe o resultado no painel Output
(Saída).
nome = "Cola";
instrumento = "Baterias";
trace (nome + " toca " + instrumento);
+ (adição)
271
Exemplo
As variáveis associadas a campos de texto dinâmico e de entrada têm a seqüência de caracteres
como tipo de dado. No exemplo a seguir, o depósito da variável é um campo de texto de entrada
no Palco. Depois que um usuário inserir um valor, o script tenta adicionar o depósito a
SaldoAnterior. Contudo, como depósito é um tipo de dado de seqüência de caracteres,
o script concatena (combina os dados para formar uma seqüência de caracteres) os valores da
variável em vez de somá-los.
SaldoAnterior = 1345,23;
SaldoAtual = depósito + SaldoAnterior;
trace (SaldoAtual);
Por exemplo, se um usuário inserir 475 no campo de texto de depósito, a ação trace() envia o
valor 4751345.23 para o painel Output (Saída).
Para corrigir isso, use a função Number() para converter a seqüência de caracteres em um número,
como no exemplo a seguir:
currentBalance = Number(deposit) + oldBalance;
Exemplo
Este comando adiciona os inteiros 2 e 3 e exibe o inteiro resultante, 5, no painel Output (Saída):
trace (2 + 3);
Este comando adiciona os números de ponto flutuante 2,5 e 3,25 e exibe o resultado, 5,75, que é
um número de ponto flutuante, no painel Output (Saída):
trace (2,5 + 3,25);
Consulte também
_accProps
272
Capítulo 12: Dicionário do ActionScript
+= (atribuição de adição)
Disponibilidade
Flash Player 4.
Uso
expressão1
+= expressão2
Parâmetros
expressão1,expressão2
Números ou seqüências de caracteres.
Retorna
Nada.
Descrição
Operador (atribuição composta aritmética); atribui a expressão1 o valor de expressão1 +
Por exemplo, os dois comandos a seguir têm o mesmo resultado:
expressão2.
x += y;
x = x + y;
Este operador também executa concatenação de seqüências de caracteres. Todas as regras do
operador de adição (+) são aplicadas ao operador de atribuição de adição (+=).
Exemplo
O exemplo a seguir mostra um uso numérico do operador +=.
x = 5;
y = 10;
x += y;
trace(x);
//x retorna 15
Este exemplo usa o operador += com uma expressão de seqüência de caracteres e envia
"Meu nome é Gilberto" para o painel Output (saída).
x = "Meu nome é"
x += "Gilberto"
trace (x)
// retorna "Meu nome é Gilberto"
Consulte também
+ (adição)
+= (atribuição de adição)
273
< (menor que)
Disponibilidade
Flash Player 4; Flash Player 5. No Flash 5 e posteriores, o operador < (menor que) é um operador
de comparação capaz de gerenciar vários tipos de dados. No Flash 4, < é um operador numérico.
Os arquivos do Flash 4 trazidos para o ambiente de criação Flash 5 ou posteriores passam por um
processo de conversão para manter a integridade dos tipos de dados. O exemplo a seguir ilustra a
conversão de um arquivo do Flash 4 que contém uma comparação do tipo numérica.
Arquivo do Flash 4:
x < y
Arquivo do Flash 5, ou posterior, convertido:
Number(x) < Number(y)
Uso
expression1
<
expression2
Parâmetros
expressão1,expressão2
Números ou seqüências de caracteres.
Descrição
Operador (comparação); compara duas expressões e determina se expressão1 é menor que
expressão2; em caso positivo, o operador retorna true. Se expressão1 for maior ou igual a
expressão2, o operador retorna false. As expressões de seqüência de caracteres são avaliadas em
ordem alfabética; todas as letras maiúsculas vêm antes das minúsculas.
Exemplo
Os exemplos a seguir ilustram retornos true e false para comparações entre números e entre
seqüências de caracteres:
3 < 10;
// true
10 < 3;
//false
"Alex" < "Carlos";
// true
"Carlos" < "Alex";
//false
"11" < "3";
//true
"11" < 3;
// comparação numérica
//false
"C" < "abc";
//false
"A" < "a";
// true
274
Capítulo 12: Dicionário do ActionScript
<< (deslocamento para a esquerda bit a bit)
Disponibilidade
Flash Player 5.
Uso
expression1 <<
expression2
Parâmetros
expressão1
Número ou expressão a ser deslocada para a esquerda.
expressão2
Um número ou expressão que pode ser transformada em um inteiro de 0 a 31.
Retorna
Nada.
Descrição
Operador (bit a bit); converte expressão1 e expressão2 em inteiros de 32 bits e desloca todos
os bits em expressão1 para a esquerda de acordo com o número de casas especificado pelo inteiro
que resulta da conversão de expressão2. As posições dos bits que ficarem vazias como resultado
dessa operação são preenchidas com 0. Deslocar um valor uma posição para a esquerda é o
equivalente a multiplicá-lo por 2.
Exemplo
No exemplo a seguir, o inteiro 1 é deslocado 10 bits para a esquerda.
x = 1 << 10
O resultado dessa operação é x = 1024. Isso é porque 1 decimal é igual a 1 binário, 1 binário
deslocado 10 para a esquerda é 10000000000 binário e 10000000000 binário é 1024 decimal.
No exemplo a seguir, o inteiro 7 é deslocado 8 bits para a esquerda.
x = 7 << 8
O resultado dessa operação é x = 1792. Isso é porque 7 decimal é igual a 111 binário, 111 binário
deslocado 8 bits para a esquerda é 11100000000 binário e 11100000000 binário é 1792 decimal.
Consulte também
>>= (deslocamento para a direita bit a bit e atribuição), >> (deslocamento para
a direita bit a bit), <<= (deslocamento para a esquerda bit a bit e atribuição)
<< (deslocamento para a esquerda bit a bit)
275
<<= (deslocamento para a esquerda bit a bit e atribuição)
Disponibilidade
Flash Player 5.
Uso
expressão1
<<= expressão2
Parâmetros
expressão1
Número ou expressão a ser deslocada para a esquerda.
expressão2
Um número ou expressão que pode ser transformada em um inteiro de 0 a 31.
Retorna
Nada.
Descrição
Operador (atribuição composta bit a bit); esse operador executa uma operação de deslocamento
para esquerda bit a bit e armazena o conteúdo como um resultado na expressão1. As duas
expressões a seguir são equivalentes.
A <<= B
A = (A << B)
Consulte também
<< (deslocamento para a esquerda bit a bit), >>= (deslocamento para a direita
bit a bit e atribuição), >> (deslocamento para a direita bit a bit)
276
Capítulo 12: Dicionário do ActionScript
<= (menor ou igual que)
Disponibilidade
Flash Player 4.
Arquivo do Flash 4:
x <= y
Arquivo do Flash 5, ou posterior, convertido:
Number(x) <= Number(y)
Uso
expressão1 < = expressão2
Parâmetros
expressão1,expressão2
Números ou seqüências de caracteres.
Retorna
Nada.
Descrição
Operador (comparação); compara duas expressões e determina se expressão1 é menor ou igual a
expressão2 ; em caso positivo, o operador retorna true. Se expressão1 for maior que
expressão2, o operador retorna false. As expressões de seqüência de caracteres são avaliadas em
ordem alfabética; todas as letras maiúsculas vêm antes das minúsculas.
No Flash 5 ou posteriores, o operador menor ou igual a (<=) é um operador de comparação,
com capacidade para gerenciar vários tipos de dados. No Flash 4, <= é um operador numérico.
Os arquivos do Flash 4 trazidos para o ambiente de criação Flash 5 ou posteriores passam por um
processo de conversão para manter a integridade dos tipos de dados. O exemplo a seguir ilustra a
conversão de um arquivo do Flash 4 que contém uma comparação do tipo numérica.
<= (menor ou igual que)
277
Exemplo
Os exemplos a seguir ilustram resultados true e false para comparações entre números e entre
seqüências de caracteres:
5 <= 10;
// true
2 <= 2;
// true
10 <= 3;
//false
"Alex" <= "Carlos";
// true
"Carlos" <= "Alex";
//false
"11" <= "3";
//true
"11" <= 3;
// comparação numérica
//false
"C" <= "abc";
//false
"A" <= "a";
// true
278
Capítulo 12: Dicionário do ActionScript
<> (diferença)
Disponibilidade
Flash 2.
Uso
expression1 <> expression2
Parâmetros
expression1,expression2
Número, seqüência de caracteres, valor booleano, variável, objeto,
array ou função.
Retorna
Nada.
Descrição
Operador (diferença); testa o oposto exato do operador ==. Se expressão1 for igual a
expressão2, o resultado será false. Assim como o operador ==, a definição de igual depende
dos tipos de dados comparados.
• Números, seqüências de caracteres e valores booleanos são comparados por valor.
• Variáveis, objetos, matrizes e funções são comparadas por referência.
Este operador tornou-se obsoleto no Flash 5 e a Macromedia recomenda o uso do operador !=.
Consulte também
!= (diferença)
<> (diferença)
279
= (atribuição)
Disponibilidade
Flash Player 4.
Arquivo do Flash 4:
x = y
Arquivo do Flash 5, ou posterior, convertido:
Number(x) == Number(y)
Uso
expressão1
= expressão2
Parâmetros
expressão1
Variável, elemento de uma matriz ou propriedade de um objeto.
expressão2
Valor de qualquer tipo.
Retorna
Nada.
Descrição
Operador; atribui o tipo de expressão2 (o parâmetro da direita) à variável, ao elemento da
matriz ou à propriedade em expressão1.
No Flash 5 ou posterior, = é um operador de atribuição e o operador == é usado para avaliar a
igualdade. No Flash 4, = é um operador de igualdade numérico. Os arquivos do Flash 4 trazidos
para o ambiente de criação Flash 5 ou posteriores passam por um processo de conversão para
manter a integridade dos tipos de dados.
Exemplo
O exemplo a seguir usa o operador de atribuição para atribuir o tipo de dado numérico à
variável x.
x = 5
O exemplo a seguir usa o operador de atribuição para atribuir o tipo de dado de seqüência de
caracteres à variável x.
x = "hello"
Consulte também
== (igualdade)
280
Capítulo 12: Dicionário do ActionScript
-= (atribuição de subtração)
Disponibilidade
Flash Player 4.
Uso
expressão1 -= expressão2
Parâmetros
expressão1,expressão2
Número ou expressão que avalia um número.
Retorna
Nada.
Descrição
Operador (atribuição composta aritmética); atribui a expressão1 o valor de expressão1Por exemplo, os dois comandos a seguir são equivalentes:
expressão2.
x -= y;
x = x - y;
As expressões de seqüência de caracteres devem ser convertidas em números ou será retornado
NaN.
Exemplo
O exemplo a seguir usa o operador -= para subtrair 10 de 5 e atribui o resultado à variável x.
x = 5;
y = 10;
x -= y
trace(x);
//retorna -5
Exemplo
O exemplo a seguir mostra como converter seqüências de caracteres em números.
x = "5";
y = "10";
x -= y;
trace(x);
// retorna -5
-= (atribuição de subtração)
281
== (igualdade)
Disponibilidade
Flash Player 5.
Uso
expressão1 == expressão2
Parâmetros
expression1,expression2
Número, seqüência de caracteres, valor booleano, variável, objeto,
array ou função.
Retorna
Nada.
Descrição
Operador (igualdade); testa a igualdade de duas expressões. O resultado será true se as expressões
forem iguais.
A definição de igual depende do tipo de dado do parâmetro:
• Números e valores booleanos são comparados por valor e, se tiverem o mesmo valor,
são considerados iguais.
• Expressões de seqüência de caracteres são iguais se tiverem o mesmo número de caracteres e os
caracteres forem idênticos.
• Variáveis, objetos, matrizes e funções são comparadas por referência. Duas variáveis são iguais
se fizerem referência ao mesmo objeto, matriz ou função. Dois arrays separados nunca são
considerados iguais, mesmo que tenham o mesmo número de elementos.
Exemplo
O exemplo a seguir usa o operador == com um comando if:
a = "David" , b = "David";
if (a == b){
trace("David é David");
}
Exemplo
Estes exemplos mostram os resultados de operações que comparam tipos misturados.
x = "5"; y = "5";
trace(x == y);
// true
x = "5"; y = "66";
trace(x ==y);
//false
x = "chris"; y = "steve";
trace (x == y);
//false
Consulte também
!= (diferença), === (igualdade estrita), !== (diferença estrita)
282
Capítulo 12: Dicionário do ActionScript
=== (igualdade estrita)
Disponibilidade
Flash Player 6.
Uso
expressão1 === expressão2
Descrição
Operador; testa a igualdade de duas expressões; o operador de igualdade estrita é executado da
mesma forma que o operador de igualdade, exceto pela conversão dos tipos de dados. Se ambas as
expressões forem idênticas, inclusive os tipos de dados, o resultado será true.
A definição de igual depende do tipo de dado do parâmetro:
• Números e valores booleanos são comparados por valor e, se tiverem o mesmo valor, são
considerados iguais.
• Expressões de seqüência de caracteres são iguais se tiverem o mesmo número de caracteres e os
caracteres forem idênticos.
• Variáveis, objetos, matrizes e funções são comparadas por referência. Duas variáveis são iguais
se fizerem referência ao mesmo objeto, matriz ou função. Dois arrays separados nunca são
considerados iguais, mesmo que tenham o mesmo número de elementos.
Exemplo
O código a seguir exibe o valor retornado de operações que usam os operadores de igualdade,
igualdade estrita e diferença estrita.
s1 = new String("5");
s2 = new String("5");
s3 = new String("Hello");
n = new Number(5);
b = new Boolean(true);
s1
s1
s1
s1
==
==
==
==
s2; // true
s3; // false
n; // true
b; // false
s1
s1
s1
s1
===
===
===
===
s2; // true
s3; // false
n; // false
b; // false
s1
s1
s1
s1
!==
!==
!==
!==
s2; // false
s3; // true
n; // true
b; // true
Consulte também
== (igualdade), != (diferença), === (igualdade estrita)
=== (igualdade estrita)
283
> (maior que)
Disponibilidade
Flash Player 5.
Uso
expression1 > expression2
Parâmetros
expressão1,expressão2
Um inteiro, um número de ponto flutuante ou uma seqüência de
dados.
Retorna
Nada.
Descrição
Operador (comparação); compara duas expressões e determina se expressão1 é maior que
expressão2 (true) ou se expressão1 é menor ou igual a expressão2 (false).
>= (maior ou igual a)
Disponibilidade
Flash Player 4.
Arquivo do Flash 4:
x > y
Arquivo do Flash 5, ou posterior, convertido:
Number(x) > Number(y)
Uso
expressão1 > = expressão2
Parâmetros
expressão1, expressão2
Uma seqüência de dados, um inteiro ou um número de ponto
flutuante.
Retorna
Nada.
Descrição
Operador (comparação); compara duas expressões e determina se expressão1 é maior ou igual a
expressão2 (true) ou se expressão1 é menor que expressão2 (false).
No Flash 5 ou posteriores, maior ou igual a (>) é um operador de comparação com capacidade
para gerenciar vários tipos de dado. No Flash 4, > é um operador numérico. Os arquivos do Flash
4 trazidos para o ambiente de criação Flash 5 ou posteriores passam por um processo de conversão
para manter a integridade dos tipos de dados.
284
Capítulo 12: Dicionário do ActionScript
>> (deslocamento para a direita bit a bit)
Disponibilidade
Flash Player 5.
Uso
expression1 >> expression2
Parâmetros
expressão1
Número ou expressão a ser deslocada para a direita.
expressão2
Um número ou expressão que pode ser transformada em um inteiro de 0 a 31.
Retorna
Nada.
Descrição
Operador (bit a bit); converte expressão1 e expressão2 em inteiros de 32 bits e desloca todos
os bits em expressão1 para a direita de acordo com o número de casas especificado pelo inteiro
que resulta da conversão de expressão2. Bits deslocados para a direita são descartados. Para
preservar o sinal da expressão original, os bits na esquerda serão preenchidos com 0 se o bit mais
significativo (o mais à esquerda) de expressão1 for 0, e preenchidos com 1 se o bit mais
significativo for 1. O deslocamento de um valor em uma posição para a direita equivale à divisão
por 2 e ao descarte do resto.
Exemplo
O exemplo a seguir converte 65535 em um inteiro de 32 bits e o desloca 8 bits para a direita.
x = 65535 >> 8
O resultado da operação acima é:
x = 255
Isso é porque 65535 decimal é igual a 1111111111111111 binário (dezesseis 1),
1111111111111111 binário deslocado 8 bits para a direita é 11111111 binário e 11111111
binário é 255 decimal. O bit mais significativo é 0, pois os inteiros são de 32 bits, portanto o bit
de preenchimento é 0.
O exemplo a seguir converte -1 em um inteiro de 32 bits e o desloca 1 bit para a direita.
x = -1 >> 1
O resultado da operação acima é:
x = -1
Isso é porque -1 decimal é igual a 11111111111111111111111111111111 binário (trinta e dois
1), o deslocamento de um bit para a direita faz com que o bit menos significativo (bit mais à
direita) seja descartado e o bit mais significativo seja preenchido com 1. O resultado é
11111111111111111111111111111111 (trinta e dois 1) binário, que representa o inteiro de 32
bits -1.
Consulte também
>>= (deslocamento para a direita bit a bit e atribuição)
>> (deslocamento para a direita bit a bit)
285
>>= (deslocamento para a direita bit a bit e atribuição)
Disponibilidade
Flash Player 5.
Uso
expressão1 >= expressão2
Parâmetros
expressão1
Número ou expressão a ser deslocada para a esquerda.
expressão2
Um número ou expressão que pode ser transformada em um inteiro de 0 a 31.
Retorna
Nada.
Descrição
Operador (atribuição composta bit a bit); este operador executa uma operação de deslocamento
para direita bit a bit e armazena o conteúdo como um resultado em expressão1.
Exemplo
As duas expressões a seguir são equivalentes.
A <= B
A = (A >> B)
O código comentado a seguir usa o operador bit a bit (>-). Ele também é um exemplo do uso de
todos os operadores bit a bit.
function convertToBinary(number){
var result = "";
for (var i=0; i32; i++) {
// Extrai o bit menos significativo pelo uso de AND bit a bit
var lsb = number & 1;
// Adiciona esse bit a nossa seqüência de caracteres de resultado
result = (bms ? "1" : "0") + result;
// Desloca o número um bit para a direita para ver próximo bit
numero >= 1;}
return result;
}
trace(convertToBinary(479));
// Retorna a seqüência de caracteres 00000000000000000000000111011111
//A seqüência de caracteres acima é a representação binária do número decimal
// 479
Consulte também
<< (deslocamento para a esquerda bit a bit)
286
Capítulo 12: Dicionário do ActionScript
>>> (deslocamento para a direita bit a bit sem sinal)
Disponibilidade
Flash Player 5.
Uso
expression1 >>> expression2
Parâmetros
expressão1
Número ou expressão a ser deslocada para a direita.
expressão2
Um número ou expressão que pode ser transformada em um inteiro entre 0 e 31.
Retorna
Nada.
Descrição
Operador (bit a bit); o mesmo que o operador de deslocamento para a direita bit a bit, exceto que
ele não mantém o sinal da expressão original, pois os bits da esquerda sempre são preenchidos
com 0.
Exemplo
O exemplo a seguir converte -1 em um inteiro de 32 bits e o desloca 1 bit para a direita.
x = -1 >>> 1
O resultado da operação acima é:
x = 2147483647
Isso é porque -1 decimal é 11111111111111111111111111111111 binário (trinta e dois 1) e,
quando é deslocado um bit (sem sinal) para a direita, o bit menos significativo (mais à direita) é
descartado e o bit mais significativo (mais à esquerda) é preenchido com um 0. O resultado é
01111111111111111111111111111111 binário, que representa o inteiro de 32 bits
2147483647.
Consulte também
>>= (deslocamento para a direita bit a bit e atribuição)
>>> (deslocamento para a direita bit a bit sem sinal)
287
>>>= (deslocamento para a direita bit a bit sem sinal e atribuição)
Disponibilidade
Flash Player 5.
Uso
expressão1>>>
= expressão2
Parâmetros
expressão1
Número ou expressão a ser deslocada para a esquerda.
expressão2
Um número ou expressão que pode ser transformada em um inteiro de 0 a 31.
Retorna
Nada.
Descrição
Operador (atribuição composta bit a bit); executa uma operação de deslocamento para direita bit
a bit não assinada e armazena o conteúdo como um resultado em expressão1. As duas expressões
a seguir são equivalentes:
A >>>= B
A = (A >>> B)
Consulte também
>>> (deslocamento para a direita bit a bit sem sinal), >>= (deslocamento para a
direita bit a bit e atribuição)
Classe Accessibility
Disponibilidade
Flash Player 6.
Descrição
A classe Accessibility gerencia a comunicação com leitores de tela. Os métodos da classe
Accessibility são estáticos, ou seja, não é preciso criar uma instância da classe para usar seus
métodos.
Para obter e definir propriedades acessíveis para um objeto específico, como um botão, clipe de
filme ou campo de texto, use a propriedade global _accProps. Para registrar as alterações feitas
nas propriedades de acessibilidade de um objeto usando _accProps com um aplicativo leitor de
tela, use o método Accessibility.updateProperties().
Resumo de métodos da classe Accessibility
288
Método
Descrição
Accessibility.isActive()
Indica se um programa leitor de tela está ativo.
Accessibility.updateProperties()
Atualiza a descrição de objetos na tela para leitores de tela.
Capítulo 12: Dicionário do ActionScript
Accessibility.isActive()
Disponibilidade
Flash Player 6.
Uso
Accessibility.isActive()
Parâmetros
Nenhum.
Retorna
Um valor booleano true, se houver clientes ativos do Microsoft Active Accessibility (MSAA),
caso contrário, false.
Descrição
Método; indica se um programa leitor de tela MSAA está ativo no momento. Use este método
quando desejar que seu aplicativo tenha um comportamento diferente diante de um leitor de tela.
Observação: No Flash Player 6, se este método for chamado dentro de, aproximadamente, um ou
dois segundos depois que aparecer pela primeira vez a janela do Flash na qual o seu documento está
sendo reproduzido, o valor false poderá ser retornado mesmo que haja um cliente ativo do MSAA.
Isso ocorre devido a um mecanismo de comunicação assíncrono entre o Flash e clientes do MSAA.
O usuário pode solucionar essa limitação garantindo que vá ocorrer um atraso de um ou dois
segundos depois de carregar o documento antes de chamar esse método.
Consulte também
Accessibility.updateProperties(), _accProps,
System.capabilities.hasAccessibility
Accessibility.isActive()
289
Accessibility.updateProperties()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
Accessibility.updateProperties()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; faz com que o Flash Player reexamine todas as propriedades de acessibilidade, atualize
sua descrição de objetos para leitores de tela e, se necessário, envie eventos para os leitores de tela
para indicar que ocorreram alterações. O usuário pode aplicar propriedades de acessibilidade em
todo o arquivo SWF ou em um clipe de filme específico e pode defini-las através do painel
Acessibility (Acessibilidade) durante a criação e através da variável global _accProps em tempo
de execução.
Consulte também
Accessibility.isActive(), _accProps, System.capabilities.hasAccessibility
_accProps
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Consulte também
Accessibility.isActive(), Accessibility.updateProperties(),
System.capabilities.hasAccessibility
290
Capítulo 12: Dicionário do ActionScript
add
Disponibilidade
Flash Player 4.
Uso
seq_caract1 add seq_caract2
Parâmetros
seqüência de caracteres1, seqüência de caracteres2
Uma seqüência de caracteres.
Retorna
Nada.
Descrição
Operador; concatena (combina) duas ou mais seqüências de caracteres. O operador add substitui
o operador add (&) do Flash 4. Os arquivos do Flash Player 4 que usam o operador & são
convertidos automaticamente para usar o operador add na concatenação de seqüências de
caracteres quando trazidos para o ambiente de criação do Flash 5 ou posteriores. Entretanto, o
operador add tornou-se obsoleto no Flash Player 5 e a Macromedia recomenda que o operador +
seja usado criar conteúdo para o Flash Player 5 ou posteriores. Use o operador add para
concatenar seqüências de caracteres se estiver criando conteúdo para o Flash 4 ou versões
anteriores do Flash Player.
Consulte também
+ (adição)
and
Disponibilidade
Flash Player 4.
Uso
condição1 and condição2
Parâmetros
condição1,condição2
Condições ou expressões que avaliam como true ou false.
Retorna
Nada.
Descrição
Operador; executa uma operação lógica AND no Flash Player 4. Se ambas as expressões forem
avaliadas como true, toda a expressão é true. Este operador tornou-se obsoleto no Flash 5, e a
Macromedia recomenda que o operador && seja usado.
Consulte também
&& (AND lógico)
and
291
Classe Arguments
Disponibilidade
Flash Player 6.
Descrição
A classe Arguments é um array que contém os valores passados como parâmetros para qualquer
função. Toda vez que uma função é chamada no ActionScript, um objeto Arguments é criado
automaticamente para essa função. Além disso, é criada uma variável local, arguments,
que permite a consulta ao objeto Arguments.
Resumo de propriedades da classe Arguments
Propriedade
Descrição
arguments.callee
Refere-se à função sendo chamada.
arguments.caller
Refere-se ao objeto Arguments da função que chama.
arguments.length
O número de parâmetros passados para uma função.
arguments.callee
Disponibilidade
Flash Player 5.
Uso
arguments.callee
Descrição
Propriedade; refere-se à função que está sendo chamada atualmente.
Exemplo
É possível usar a propriedade arguments.callee para tornar uma função anônima repetitiva,
como no exemplo a seguir:
factorial = function (x) {
if (x <= 1) {
return 1;
else {
return x * arguments.callee(x-1);
}
};
A seguir é apresentada uma função repetitiva nomeada:
function factorial (x) {
if (x <= 1) {
return 1;
else {
return x * factorial(x-1);
}
}
292
Capítulo 12: Dicionário do ActionScript
arguments.caller
Disponibilidade
Flash Player 6.
Uso
arguments.caller
Descrição
Propriedade; refere-se ao objeto Arguments da função chamada.
arguments.length
Disponibilidade
Flash Player 5.
Uso
arguments.length
Descrição
Propriedade; o número de parâmetros realmente passados para uma função.
Classe Array
Disponibilidade
Flash Player 5 (tornou-se um objeto nativo no Flash Player 6, o que melhorou significativamente
o desempenho).
Descrição
A classe Array permite acessar e manipular arrays. Uma matriz é um objeto cujas propriedades são
identificadas por números que representam suas posições na matriz. Esse número é chamado de
índice. Todas as matrizes são de base zero, o que significa que o primeiro elemento na matriz é [0],
o segundo é [1], etc. No exemplo a seguir, meu_array contém os meses do ano.
meu_array[0]
meu_array[1]
meu_array[2]
meu_array[3]
=
=
=
=
"Janeiro"
"Fevereiro"
"Março"
"Abril"
Para criar um objeto Array, use o construtor new Array() ou o operador de acesso de matriz ([]).
Para acessar os elementos de um array, use o operador de acesso de array ([]).
Classe Array
293
Resumo de métodos da classe Array
Método
Descrição
Array.concat()
Concatena os parâmetros e os retorna como uma nova matriz.
Array.join()
Reúne todos os elementos de uma matriz em uma seqüência de caracteres.
Array.pop()
Remove o último elemento de uma matriz e retorna seu valor.
Array.push()
Adiciona um ou mais elementos ao fim de um array e retorna o novo tamanho
do array.
Array.reverse()
Inverte a direção de uma matriz.
Array.shift()
Remove o primeiro elemento de uma matriz e retorna seu valor.
Array.slice()
Extrai uma seção de uma matriz e a retorna como uma nova matriz.
Array.sort()
Classifica uma matriz no local.
Array.sortOn()
Classifica uma matriz com base em um campo da matriz.
Array.splice()
Adiciona e remove elementos de um array.
Array.toString()
Retorna um valor de seqüência de caracteres que representa os elementos no
objeto Array.
Array.unshift()
Adiciona um ou mais elementos ao início de uma matriz e retorna o novo
tamanho da matriz.
Resumo de propriedades da classe Array
Propriedade
Descrição
Array.length
Um inteiro maior que zero que especifica o número de elementos no array.
Construtor da classe Array
Disponibilidade
Flash Player 5.
Uso
new Array()
new Array(tamanho)
new Array(elemento0, elemento1, elemento2,...elementoN)
Parâmetros
Um inteiro que especifica o número de elementos na matriz. No caso de elementos
não contíguos, o parâmetro tamanho especifica o número do índice do último elemento na matriz
mais 1.
tamanho
elemento0...elementoN Uma lista de dois ou mais valores arbitrários. Os valores podem ser
números, seqüências de caracteres, objetos ou outras matrizes. O primeiro elemento em uma
matriz sempre tem um índice, ou posição 0.
294
Capítulo 12: Dicionário do ActionScript
Retorna
Nada.
Descrição
Construtor; permite a criação de uma matriz. É possível usar o construtor para criar diferentes
tipos de arrays: um array vazio, um array com tamanho específico mas cujos elementos não
possuem valores ou um array cujos elementos possuem valores específicos.
Uso 1: Se os parâmetros não forem especificados, será criado um array com tamanho 0.
Uso 2: Se apenas um tamanho for especificado, será criado um array com tamanho elementos,
sem valores.
Uso 3: Se os parâmetros elemento forem usados para especificar os valores, será criado um array
com valores específicos.
Exemplo
Uso 1: O exemplo a seguir cria um novo objeto Array com um tamanho inicial 0.
meu_array = new Array();
trace(meu_array.length); // retorna 0
Uso 2: O exemplo a seguir cria um novo objeto Array com um tamanho inicial 4.
meu_array = new Array(4);
trace(meu_array.length); // retorna 4
Uso 3: O exemplo a seguir cria um novo objeto Array chamado go_gos_array, com tamanho
inicial 5.
go_gos_array = new Array("Belinda", "Gina", "Kathy", "Charlotte", "Jane");
trace(go_gos_array.length); // retorna 5
trace(go_gos_array.join(", ")); // exibe elementos
Os elementos iniciais da matriz go_gos são estes:
go_gos_array[0]
go_gos_array[1]
go_gos_array[2]
go_gos_array[3]
go_gos_array[4]
=
=
=
=
=
"Belinda";
"Gina";
"Kathy";
"Charlotte";
"Jane";
O código a seguir adiciona um sexto elemento ao array go_gos_array e altera o segundo
elemento:
go_gos_array[5] = "Donna";
go_gos_array[1] = "Nina"
trace(go_gos_array.join(" + "));
Consulte também
Array.length, [] (acesso de array)
Classe Array
295
Array.concat()
Disponibilidade
Flash Player 5.
Uso
meu_array.concat(valor0,valor1,...valorN)
Parâmetros
valor0,...valorN
Números, elementos ou seqüências de caracteres a serem concatenados em
uma nova matriz.
Retorna
Nada.
Descrição
Método; concatena os elementos especificados nos parâmetros com os elementos em meu_array e
cria um novo array. Se os parâmetros valor especificarem uma matriz, os elementos dessa matriz
serão concatenados, em vez da própria matriz. O array meu_array permanece inalterado.
Exemplo
O código a seguir concatena duas matrizes:
alpha_array = new Array("a","b","c");
numeric_array = new Array(1,2,3);
alphaNumeric_array=alpha_array.concat(numeric_array);
trace(alphaNumeric_array);
// cria matriz ["a","b","c",1,2,3]
O código a seguir concatena três matrizes:
num1_array = [1,3,5];
num2_array = [2,4,6];
num3_array = [7,8,9];
nums_array=num1_array.concat(num2_array,num3_array)
trace(nums_array);
// cria matriz [1,3,5,2,4,6,7,8,9]
As matrizes aninhadas não são achatadas da mesma forma que as matrizes comuns. Os elementos
de um array aninhado não são desmembrados em elementos separados no array x_array, como
pode ser observado no exemplo abaixo:
a_array = new Array ("a","b","c");
// 2 e 3 são elementos de uma matriz aninhada
n_array = new Array(1, [2, 3], 4);
x_array = a_array.concat(n_array);
trace(x_array[0]); // "a"
trace(x_array[1]); // "b"
trace(x_array[2]); // "c"
trace(x_array[3]); // "b"
trace(x_array[4]); // 2, 3
trace(x_array[5]); // 4
296
Capítulo 12: Dicionário do ActionScript
Array.join()
Disponibilidade
Flash Player 5.
Uso
meu_array.join([separador])
Parâmetros
Um caractere ou uma seqüência de caracteres que separa elementos da matriz na
seqüência de caracteres retornada. A omissão desse parâmetro resulta no uso de uma vírgula como
separador padrão.
separador
Retorna
String.
Descrição
Método; converte os elementos de uma matriz em seqüências de caracteres, insere o separador
especificado entre eles, concatena esses elementos e retorna a seqüência de caracteres resultante.
Um vetor aninhado é sempre separado por vírgulas e não pelo separador definido no método
join().
Exemplo
O exemplo a seguir cria um array com três elementos: Terra, Lua e Sol. Depois, reúne o array três
vezes — primeiro, usando o separador padrão (uma vírgula e um espaço), depois usando um traço
e, em seguida, usando um sinal de mais (+) — e os exibe no painel Output (Saída):
a_array = new Array("Terra","Lua","Sol")
trace(a_array.join());
// retorna Terra, Lua, Sol
trace(a_array.join(" - "));
// retorna Terra - Lua - Sol
trace(a_array.join(" + "));
// retorna Terra + Lua + Sol
Array.join()
297
Array.length
Disponibilidade
Flash Player 5.
Uso
meu_array.length
Descrição
Propriedade; um inteiro maior que zero que especifica o número de elementos no array. Essa
propriedade é atualizada automaticamente quando são adicionados novos elementos à matriz.
Quando o usuário atribuir um valor ao elemento de um array (por exemplo, meu_array[índice]
= valor), se índice for um número e índice+1 for maior do que a propriedade length,
a propriedade length será atualizada para índice + 1.
Exemplo
O código a seguir explica como a propriedade length é atualizada.
meu_array = new Array();
trace(meu_array.length);
meu_array[0] = 'a';
trace(meu_array.length);
meu_array[1] = 'b';
trace(meu_array.length);
meu_array[9] = 'c';
trace(meu_array.length);
// o tamanho inicial é 0
// meu_array.length é atualizado para 1
// meu_array.length é atualizado para 2
// meu_array.length é atualizado para 10
Array.pop()
Disponibilidade
Flash Player 5.
Uso
meu_array.pop()
Parâmetros
Nenhum.
Retorna
O valor do último elemento no array especificado.
Descrição
Método; remove o último elemento de um array e retorna o valor desse elemento.
Exemplo
O código a seguir cria o array myPets, com quatro elementos, depois remove seu último
elemento.
myPets = ["gato", "cachorro", "pássaro", "peixe"];
popped = myPets.pop();
trace(popped);
// retorna peixe
298
Capítulo 12: Dicionário do ActionScript
Array.push()
Disponibilidade
Flash Player 5.
Uso
meu_array.push(valor,...)
Parâmetros
valor
Um ou mais valores a serem anexados à matriz.
Retorna
O tamanho da nova matriz.
Descrição
Método; adiciona um ou mais elementos ao fim de um array e retorna o novo tamanho do array.
Exemplo
O exemplo a seguir cria a matriz myPets com dois elementos, gato e cachorro. A segunda linha
adiciona dois elementos à matriz. Depois que o método push() for chamado, a variável pushed
conterá quatro elementos. Como o método push() retorna o novo tamanho do array, a ação na
última linha envia o novo tamanho de myPets (4) para o painel Output (Saída):
myPets = ["gato", "cachorro"];
pushed = myPets.push("pássaro", "peixe");
trace(pushed);
Array.reverse()
Disponibilidade
Flash Player 5.
Uso
meu_array.reverse()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; reverte a matriz no local.
Exemplo
O exemplo a seguir mostra o uso deste método.
var numbers_array = [1, 2, 3, 4, 5, 6];
trace(numbers_array.join()); //1,2,3,4,5,6
numbers_array.reverse();
trace(numbers_array.join()); // 6,5,4,3,2,1
Array.reverse()
299
Array.shift()
Disponibilidade
Flash Player 5.
Uso
meu_array.shift()
Parâmetros
Nenhum.
Retorna
O primeiro elemento de uma matriz.
Descrição
Método; remove o primeiro elemento de uma matriz e retorna esse elemento.
Exemplo
O código a seguir cria a matriz myPets e, em seguida, remove o primeiro elemento da matriz e o
atribui à variável shifted.
var myPets_array = ["gato", "cachorro", "pássaro", "peixe"];
shifted = myPets_array.shift();
trace(shifted); // retorna "gato"
Consulte também
Array.pop()
Array.slice()
Disponibilidade
Flash Player 5.
Uso
meu_array.slice(início, fim)
Parâmetros
Um número que especifica o índice do ponto inicial da fatia. Se início for um número
negativo, o ponto inicial começará no fim da matriz, onde -1 é o último elemento.
início
Um número que especifica o índice do ponto final da fatia. Se esse argumento for omitido,
a fatia incluirá todos os elementos do início ao fim da matriz. Se fim for um número negativo,
o ponto final será especificado a partir do fim da matriz, onde -1 é o último elemento.
fim
Retorna
Uma matriz.
Descrição
Método; extrai um segmento ou subseqüência de caracteres da matriz e o retorna como uma nova
matriz, sem modificar a matriz original. A matriz retornada inclui o elemento início e todos os
elementos até, mas não incluindo, o elemento fim.
300
Capítulo 12: Dicionário do ActionScript
Array.sort()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 5.
Uso
meu_array.sort([compareFunction])
Parâmetros
Uma função de comparação opcional usada para determinar a ordem de
classificação de elementos de uma matriz. Dados os elementos A e B, o parâmetro orderfunc
pode ter um dos três seguintes valores:
compareFunction
• -1 se A aparecer antes de B na seqüência classificada
• 0 se A = B
• 1 se A aparecer depois de B na seqüência classificada
Retorna
Nada.
Descrição
Método; classifica a matriz no local, sem fazer uma cópia. Se o parâmetro compareFunction for
omitido, o Flash ordenará as posições dos elementos usando o operador de comparação <.
Exemplo
O exemplo a seguir usa Array.sort() sem especificar o parâmetro compareFunction:
var frutas_array = ["laranjas", "maçãs", "morangos", "abacaxis", "cerejas"];
trace(frutas_array.join());
frutas_array.sort();
trace(frutas_array.join());
Saída:
laranjas, maçãs, morangos, abacaxis, cerejas
abacaxis, cerejas, laranjas, maçãs, morangos
Array.sort()
301
Array.sortOn()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
meu_array.sortOn(nomeCampo)
Parâmetros
Uma seqüência de caracteres que identifica um campo em um elemento do Array
para usar valor de classificação.
fieldName
Retorna
Nenhum.
Descrição
Método; classifica os elementos de uma matriz com base em um campo da matriz. Se nenhum
parâmetro nomeCampo for passado, a função falhará. Se vários parâmetros fieldName forem
passados, o primeiro campo será convertido em um valor de seqüência de caracteres e os
parâmetros remanescentes serão ignorados.
Se algum dos elementos comparados não tiver o campo especificado no parâmetro fieldName,
a ordenação adotará o comportamento padrão descrito em Array.sort().
Exemplo
O exemplo a seguir cria uma nova matriz e a classifica com base no campo cidade:
var rec_array = new Array();
rec_array.push( { nome: "beto", cidade: "olinda", cep: 68144 } );
rec_array.push( { nome: "gregório", cidade: "joão pessoa", cep: 72345 } );
rec_array.push( { nome: "cris", cidade: "boa vista", cep: 94010 } );
for(i=0; i<rec_array.length; i++) {
trace(rec_array[i].nome + ", " + rec_array[i].cidade);
}
// resulta em
// beto, olinda
// gregório, joão pessoa
// cris, boa vista
rec_array.sortOn("cidade");
for(i=0; i<rec_array.length; i++) {
trace(rec_array[i].nome + ", " + rec_array[i].cidade);
}
// resulta em
// cris, boa vista
// gregório, joão pessoa
// beto, olinda
Consulte também
Array.sort()
302
Capítulo 12: Dicionário do ActionScript
Array.splice()
Disponibilidade
Flash Player 5.
Uso
meu_array.splice(início, deleteCount [, valor0, valor1...valorN])
Parâmetros
início
O índice do elemento na matriz onde a inserção e/ou exclusão começa.
O número de elementos a serem excluídos. Esse número inclui o elemento
especificado no parâmetro início. Se não houver valores especificados para deleteCount,
o método exclui todos os valores a partir do elemento início até o último elemento na matriz.
Se o valor for 0, nenhum elemento será excluído.
deleteCount
valor Um parâmetro opcional que especifica os valores a serem inseridos no array no ponto de
inserção especificado no parâmetro start.
Retorna
Nada.
Descrição
Método; adiciona e remove elementos de uma matriz. Esse método modifica a matriz sem fazer
uma cópia.
Array.splice()
303
Array.toString()
Disponibilidade
Flash Player 5.
Uso
meu_array.toString()
Parâmetros
Nenhum.
Retorna
Uma seqüência de caracteres.
Descrição
Método; retorna um valor de seqüência de caracteres que representa os elementos no objeto Array
especificado. Todos os elementos do array, iniciando pelo índice 0 e terminando no índice
meu_array.length-1, são convertidos em uma seqüência de caracteres concatenados e separados
por vírgulas.
Exemplo
O exemplo a seguir cria meu_array, a converte em uma seqüência de caracteres e exibe 1, 2, 3, 4,
5 no painel Output (Saída).
meu_array = new Array();
meu_array[0] = 1;
meu_array[1] = 2;
meu_array[2] = 3;
meu_array[3] = 4;
meu_array[4] = 5;
trace(meu_array.toString());
Array.unshift()
Disponibilidade
Flash Player 5.
Uso
meu_array.unshift(valor1,valor2,...valorN)
Parâmetros
valor1,...valorN
Um ou mais números, elementos ou variáveis a serem inseridos no início
da matriz.
Retorna
O novo tamanho da matriz.
Descrição
Método; adiciona um ou mais elementos ao início de um array e retorna o novo tamanho
do array.
304
Capítulo 12: Dicionário do ActionScript
Array()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 5.
Uso
Array(expressão)
Parâmetros
expressão
Uma expressão a ser convertida em array
Retorna
Um array, como descrito a seguir.
Descrição
Função de conversão; cria um novo array vazio, ou converte os elementos especificados em um
array. Esse comando é similar à criação de um array usando o construtor Array (consulte
“Construtor da classe Array” na página 294).
Consulte também
Classe Array
Array()
305
asfunction
Disponibilidade
Flash Player 5.
Uso
asfunction:function,"parâmetro"
Parâmetros
função
Um identificador para uma função.
parâmetro
function.
Uma seqüência de caracteres que é passada para a função identificada no parâmetro
Retorna
Nada.
Descrição
Protocolo; um protocolo especial para URLs em campos de texto HTML. Nos campos de texto
HTML, o texto pode ter um hiperlink usando a marca A de HTML. O atributo HREF da marca
A contém um URL que pode servir para um protocolo padrão como HTTP, HTTPS ou FTP.
O protocolo asfunction é um protocolo adicional, específico do Flash, que faz com que o link
chame uma função do ActionScript.
Exemplo
Neste exemplo, a função MyFunc() é definida nas três primeiras linhas de código. A variável
textField é associada a um campo de texto HTML. O texto "Clique em mim!" é um hiperlink
dentro do campo de texto. A função MyFunc() será chamada quando o usuário clicar no
hiperlink:
function MyFunc(arg){
trace ("Você me clicou! O parâmetro foi "+arg);
}
myTextField.htmlText ="<A HREF=\"asfunction:MyFunc,Foo \">Clique em mim!</A>";
Ao clicar no hiperlink, os resultados a seguir são exibidos no painel Output (Saída):
Você clicou em mim!
306
O parâmetro foi Foo
Capítulo 12: Dicionário do ActionScript
Classe Boolean
Disponibilidade
Flash Player 5 (tornou-se um objeto nativo no Flash Player 6, o que melhorou significativamente
o desempenho).
Descrição
A classe Boolean é um objeto envoltório que funciona da mesma forma que o objeto Boolean
padrão do JavaScript. Use a classe Boolean para recuperar o tipo de dados primitivo ou a
representação de uma seqüência de caracteres de um objeto Boolean.
Use o construtor new Boolean() para criar um objeto Boolean antes de chamar seus métodos.
Resumo de métodos da classe Boolean
Método
Descrição
Boolean.toString()
Retorna uma seqüência de caracteres (true ou false) que representa o
valor do objeto Boolean.
Boolean.valueOf()
Retorna o tipo de valor primitivo do objeto Boolean especificado.
Construtor da classe Boolean
Disponibilidade
Flash Player 5.
Uso
new Boolean(x)
Parâmetros
x
Qualquer expressão. Este parâmetro é opcional.
Retorna
Nada.
Descrição
Construtor; cria um objeto Boolean. Se o parâmetro x for omitido, o objeto Boolean será
inicializado com um valor false. Caso especifique um valor para o parâmetro x, o método o
avalia e retorna o resultado como um valor booleano de acordo com as regras estabelecidas na
função Boolean().
Observação: Para manter a compatibilidade com o Flash Player 4, a manipulação de seqüências de
caracteres pela classe Boolean não usa o padrão ECMA-262.
Exemplo
O código a seguir cria um novo objeto Boolean vazio denominado myBoolean.
myBoolean = new Boolean();
Classe Boolean
307
Boolean.toString()
Disponibilidade
Flash Player 5.
Uso
myBoolean.toString()
Parâmetros
Nenhum.
Retorna
Um valor booleano.
Descrição
Método; retorna a representação da seqüência de caracteres (true ou false) do objeto Boolean.
Boolean.valueOf()
Disponibilidade
Flash Player 5.
Uso
myBoolean.valueOf()
Parâmetros
Nenhum.
Retorna
Um valor booleano.
Descrição
Método; retorna o tipo de valor primitivo do objeto Boolean especificado.
308
Capítulo 12: Dicionário do ActionScript
Boolean()
Disponibilidade
Flash Player 5.
Uso
Booleano(expressão)
Parâmetros
expressão
Uma expressão a ser convertida em um valor booleano.
Retorna
Um valor booleano ou a expressão do valor, como descrito a seguir.
Descrição
Função; converte a expressão do parâmetro em um valor booleano e retorna um valor da
seguinte maneira:
• Se expressão for um valor booleano, o valor de retorno será expressão.
• Se expressão for um número e esse não for zero, o valor de retorno será true, caso contrário,
•
•
•
o valor de retorno será false.
Se expressão for uma seqüência de caracteres, o método toNumber será chamado e o valor de
retorno será true se o número não for zero, caso contrário, o valor de retorno será false.
Se expressão for indefinida, o valor de retorno será false.
Se expressão for um clipe de filme ou um objeto, o valor de retorno será true.
Consulte também
Classe Boolean
Boolean()
309
break
Disponibilidade
Flash Player 4.
Uso
break
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Comando; é exibido em um loop (for, for..in, do while ou while) ou em um bloco de
comandos associados a um case em uma ação switch. A ação break instrui o Flash a ignorar o
resto do corpo do loop, parar a ação de loop e executar o comando após o comando loop. Ao usar
a ação break, o interpretador Flash ignora o resto dos comandos nesse bloco case e vai para o
primeiro comando subseqüente à ação switch anexada. Use a ação break para interromper uma
série de loops aninhados.
Exemplo
O exemplo a seguir usa a ação break para sair de um loop infinito.
i = 0;
while (true) {
if (i >= 100) {
break;
}
i++;
}
Consulte também
break, for, for..in, do while, while, switch, case
310
Capítulo 12: Dicionário do ActionScript
Classe Button
Disponibilidade
Flash Player 6.
Descrição
Todos os símbolos de botão em um arquivo SWF são instâncias do objeto Button. É possível dar
um nome de instância a um botão no inspetor Property (Propriedades) e usar os métodos e as
propriedades da classe Button para manipular botões com o ActionScript. Nomes de instância de
botão são exibidos no Movie Explorer e na caixa de diálogo Inserir caminho de destino no painel
Actions.
A classe Button herda da Classe Object.
Resumo de métodos da classe Button
Método
Descrição
Button.getDepth()
Retorna a profundidade de uma instância de botão.
Resumo de propriedades da classe Button
Propriedade
Descrição
Button._alpha
O valor de transparência de uma instância de botão.
Button.enabled
Indica se o botão está ativo.
Button._focusrect
Indica se um botão focalizado tem um retângulo amarelo em volta dele.
Button._height
A altura de uma instância de botão, em pixels.
Button._highquality
O nível de eliminação de serrilhado aplicado ao arquivo SWF atual.
Button.menu
Associa um objeto ContextMenu ao objeto Button
Button._name
O nome de uma instância de botão.
Button._parent
Uma referência ao clipe de filme ou objeto que contém o clipe de filme ou
objeto atual.
Button._quality
Indica a qualidade de renderização do arquivo SWF.
Button._rotation
O grau de rotação de uma instância de botão.
Button._soundbuftime
Número de segundos para que um som seja pré-carregado.
Button.tabEnabled
Indica se um botão está incluído na ordenação de guia automática.
Button.tabIndex
Indica a ordem de guias de um objeto.
Button._target
O caminho de destino de uma instância de botão.
Button.trackAsMenu
Indica se outros botões podem receber eventos de liberação de mouse.
Button._url
O URL do arquivo SWF que criou a instância de botão.
Button.useHandCursor
Indica se, quando o mouse passa sobre um botão, exibe-se a mão
indicadora.
Classe Button
311
Propriedade
Descrição
Button._visible
Um valor booleano que indica se a instância de botão está oculta ou
visível.
Button._width
A largura de uma instância de botão, em pixels.
Button._x
A coordenada x de uma instância de botão.
Button._xmouse
A coordenada x do ponteiro do mouse relativa à instância de um botão.
Button._xscale
O valor que especifica a porcentagem para o dimensionamento
horizontal de uma instância de botão.
Button._y
A coordenada y de uma instância de botão.
Button._ymouse
A coordenada y do ponteiro do mouse relativa à instância de um botão.
Button._yscale
O valor que especifica a porcentagem para o dimensionamento vertical
de uma instância de botão.
Resumo dos manipuladores de eventos da classe Button
Identificador de
eventos
Descrição
Button.onDragOut
Chamado quando o botão do mouse é pressionado sobre o botão e,
em seguida, o ponteiro é arrastado para fora do botão.
Button.onDragOver
Chamado quando o usuário pressiona o botão do mouse fora do botão e,
em seguida, arrasta o mouse passando sobre o botão.
Button.onKeyUp
Chamada quando uma tecla é liberada.
Button.onKillFocus
Chamada quando o foco é removido de um botão.
Button.onPress
Chamada quando o mouse é pressionado enquanto o ponteiro está
sobre um botão.
Button.onRelease
Chamada quando o mouse é liberado enquanto o ponteiro está sobre
um botão.
Button.onReleaseOutside Chamada quando o mouse é liberado enquanto o ponteiro está fora de
um botão, depois que o botão é pressionado enquanto o ponteiro está
dentro do botão.
312
Button.onRollOut
Chamada quando o ponteiro rola para fora da área de um botão.
Button.onRollOver
Chamada quando o ponteiro do mouse rola sobre um botão.
Button.onSetFocus
Chamada quando um botão tem o foco de entrada e uma tecla é
liberada.
Capítulo 12: Dicionário do ActionScript
Button._alpha
Disponibilidade
Flash Player 6.
Uso
my_btn._alpha
Descrição
Propriedade; o valor da transparência alfa do botão especificado por my_btn. A faixa de valores
válidos vai de 0 (totalmente transparente) a 100 (totalmente opaco). O valor padrão é 100.
Os objetos em um botão com _alpha definida como 0 são ativos, apesar de invisíveis.
Exemplo
O código a seguir define a propriedade _alpha de um botão denominado star_btn como 30%
quando se clica no botão:
on (release) {
star_btn._alpha = 30;
}
Consulte também
MovieClip._alpha, TextField._alpha
Button.enabled
Disponibilidade
Flash Player 6.
Uso
my_btn.enabled
Descrição
Propriedade; um valor booleano que especifica se um botão está ativado. O valor padrão é true.
Button._focusrect
Disponibilidade
Flash Player 6.
Uso
my_btn._focusrect
Descrição
Propriedade; um valor booleano que especifica se um botão tem um retângulo amarelo em volta
dele quando tiver foco de teclado. Esta propriedade pode prevalecer sobre a propriedade global
_focusrect.
Button._focusrect
313
Button.getDepth()
Disponibilidade
Flash Player 6.
Uso
my_btn.getDepth()
Retorna
Um inteiro.
Descrição
Método; retorna a profundidade de uma instância de botão.
Button._height
Disponibilidade
Flash Player 6.
Uso
my_btn._height
Descrição
Propriedade; a altura do botão em pixels.
Exemplo
O exemplo de código a seguir define a altura e a largura de um botão quando o usuário clicar com
o mouse:
my_btn._width = 200;
my_btn._height = 200;
Button._highquality
Disponibilidade
Flash Player 6.
Uso
my_btn._highquality
Descrição
Propriedade (global); especifica o nível de eliminação de serrilhado aplicado ao arquivo SWF
atual. Especifique 2 (melhor qualidade) para aplicar alta qualidade com a suavização de bitmap
sempre ativada. Especifique 1 (alta qualidade) para aplicar o recurso de eliminação de serrilhado;
isso suavizará os bitmaps se o SWF não contiver animação. Especifique 0 (baixa qualidade) para
evitar o recurso sem serrilhado.
314
Capítulo 12: Dicionário do ActionScript
Exemplo
_highquality = 1;
Consulte também
_quality, toggleHighQuality()
Button.menu
Disponibilidade
Flash Player 7.
Uso
my_button.menu = contextMenu
Parâmetros
contextMenu
Um objeto ContextMenu.
Descrição
Propriedade; associa o objeto contextMenu de classe ContextMenu ao objeto botão my_button.
A classe ContextMenu permite modificar o menu contextual que aparece quando o usuário clica
com o botão direito do mouse (Windows) ou com a tecla Control pressionada (Macintosh) no
Flash Player.
Exemplo
O exemplo a seguir atribui um objeto ContextMenu a um objeto Button denominado save_btn.
O objeto ContextMenu conterá um único item de menu, “Salvar...”, com uma função
manipuladora de retorno associada denominada execSalvar (não apresentada).
var menu_cm = new ContextMenu();
menu_cm.customItems.push(new ContextMenuItem("Salvar...", execSalvar));
function execSalvar(menu, obj) {
// o código de "Salvar" vai aqui
}
save_btn.menu = menu_cm;
Consulte também
Classe ContextMenu, Classe ContextMenuItem, MovieClip.menu, TextField.menu
Button._name
Disponibilidade
Flash Player 6.
Uso
my_btn._name
Descrição
Propriedade; nome da instância do botão especificado por my_btn.
Button._name
315
Button.onDragOut
Disponibilidade
Flash Player 6.
Uso
my_btn.onDragOut = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o botão do mouse estiver pressionado sobre o botão e
o ponteiro rolar para fora do botão.
É necessário definir uma função que seja executada quando o manipulador de eventos for
chamado.
316
Capítulo 12: Dicionário do ActionScript
Button.onDragOver
Disponibilidade
Flash Player 6.
Uso
my_btn.onDragOver = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o usuário pressiona e arrasta o botão do mouse para
fora e sobre o botão.
É necessário definir uma função que seja executada quando o manipulador de eventos for
chamado.
Exemplo
O exemplo a seguir define uma função para o manipulador onKeyDown que envia uma ação
trace() para o painel Output (Saída):
my_btn.onDragOver = function () {
trace ("onDragOver chamado");
};
Consulte também
Button.onKeyUp
Button.onDragOver
317
Button.onKeyDown
Disponibilidade
Flash Player 6.
Uso
my_btn.onKeyDown = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um botão tiver foco de teclado e uma tecla for
pressionada. O manipulador de eventos onKeyDown é chamado sem nenhum parâmetro.
É possível usar Key.getAscii() e Key.getCode() para definir qual tecla foi pressionada.
É necessário definir uma função que seja executada quando o manipulador de eventos for
chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output (Saída) é
associada ao manipulador onKeyDown.
my_btn.onKeyDown = function () {
trace ("onKeyDown chamado");
};
Consulte também
Button.onKeyUp
318
Capítulo 12: Dicionário do ActionScript
Button.onKeyUp
Disponibilidade
Flash Player 6.
Uso
my_btn.onKeyUp = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um botão tiver foco de entrada e uma tecla for
liberada. O manipulador de eventos onKeyUp é chamado sem nenhum parâmetro. É possível usar
Key.getAscii() e Key.getCode() para definir qual tecla foi pressionada.
É necessário definir uma função que seja executada quando o manipulador de eventos for
chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output (Saída) é
associada ao manipulador onKeyPress.
my_btn.onKeyUp = function () {
trace ("onKeyUp chamada");
};
Button.onKillFocus
Disponibilidade
Flash Player 6.
Uso
my_btn.onKillFocus = function (newFocus) {
// seus comandos vão aqui
}
Parâmetros
newFocus
O objeto em foco.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um botão perde o foco do teclado. O método
onKillFocus recebe um parâmetro, newFocus, que é um objeto representando o novo objeto a
receber o foco. Se nenhum objeto receber o foco, newFocus conterá o valor null.
Button.onKillFocus
319
Button.onPress
Disponibilidade
Flash Player 6.
Uso
my_btn.onPress = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um botão for pressionado. É necessário definir uma
função que seja executada quando o manipulador de eventos for chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output (Saída) é
associada ao manipulador onPress.
my_btn.onPress = function () {
trace ("onPress chamado");
};
320
Capítulo 12: Dicionário do ActionScript
Button.onRelease
Disponibilidade
Flash Player 6.
Uso
my_btn.onRelease = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado na liberação de um botão. É necessário definir uma função que
seja executada quando o manipulador de eventos for chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output (Saída) é
associada ao manipulador onRelease.
my_btn.onRelease = function () {
trace ("onRelease chamado");
};
Button.onRelease
321
Button.onReleaseOutside
Disponibilidade
Flash Player 6.
Uso
my_btn.onReleaseOutside = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado na liberação do mouse enquanto o ponteiro estiver fora do
botão depois de pressionar o botão enquanto o ponteiro estiver dentro do botão.
É necessário definir uma função que seja executada quando o manipulador de eventos for
chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output é associada
ao manipulador onReleaseOutside.
my_btn.onReleaseOutside = function () {
trace ("onReleaseOutside chamado");
};
322
Capítulo 12: Dicionário do ActionScript
Button.onRollOut
Disponibilidade
Flash Player 6.
Uso
my_btn.onRollOut = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o ponteiro é movido para fora da área de um botão. É
necessário definir uma função que seja executada quando o manipulador de eventos for chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output é associada
ao manipulador onRollOut.
my_btn.onRollOut = function () {
trace ("onRollOut chamado");
};
Button.onRollOut
323
Button.onRollOver
Disponibilidade
Flash Player 6.
Uso
my_btn.onRollOver = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o ponteiro passa sobre a área de um botão. É
necessário definir uma função que seja executada quando o manipulador de eventos for chamado.
Exemplo
No exemplo a seguir, uma função que envia uma ação trace() para o painel Output é associada
ao manipulador onRollOver.
my_btn.onRollOver = function () {
trace ("onRollOver chamado");
};
Button.onSetFocus
Disponibilidade
Flash Player 6.
Uso
my_btn.onSetFocus = function(oldFocus){
// seus comandos vão aqui
}
Parâmetros
oldFocus
O objeto a perder o foco de teclado.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um botão recebe foco de teclado. O parâmetro
oldFocus é o objeto que perde o foco. Por exemplo, se o usuário pressionar a tecla Tab para
mover o foco de entrada de um campo de texto para um botão, o parâmetro oldFocus conterá a
instância do campo de texto.
Se nenhum objeto possuía o foco anteriormente, oldFocus conterá um valor null.
324
Capítulo 12: Dicionário do ActionScript
Button._parent
Disponibilidade
Flash Player 6.
Uso
my_btn._parent.propriedade
_parent.property
Descrição
Propriedade; uma referência ao clipe de filme ou objeto que contém o clipe de filme ou objeto
atual. O objeto atual é aquele que contém o código do ActionScript que faz referência a _parent.
Use _parent para especificar um caminho relativo para clipes de filme ou objetos que estiverem
acima do clipe de filme ou objeto atual. É possível usar _parent para subir vários níveis na lista de
exibição, conforme mostrado a seguir:
_parent._parent._alpha = 20;
Consulte também
MovieClip._parent, _root, targetPath
Button._quality
Disponibilidade
Flash Player 6.
Uso
my_btn._quality
Descrição
Propriedade (global); define ou recupera a qualidade de renderização usada para um arquivo SWF.
As fontes de dispositivo são sempre serrilhadas, sendo assim não são afetadas pela propriedade
_quality.
Observação: Embora seja possível especificar esta propriedade para um objeto Button, ela é, na
verdade, uma propriedade global e seu valor pode simplesmente ser especificado como _quality.
Para obter mais informações, consulte _quality.
Button._rotation
Disponibilidade
Flash Player 6.
Uso
my_btn._rotation
Descrição
Propriedade; a rotação do botão, em graus.
Button._rotation
325
Button._soundbuftime
Disponibilidade
Flash Player 6.
Uso
myButton._soundbuftime
Descrição
Propriedade (global); um inteiro que especifica o número de segundos em que um som é
armazenado em pré-buffer antes de começar a fluir.
Observação: Embora seja possível especificar esta propriedade para um objeto Button, ela é,
na verdade, uma propriedade global e seu valor pode simplesmente ser especificado como
_soundbuftime. Para obter mais informações, consulte _soundbuftime.
Button.tabEnabled
Disponibilidade
Flash Player 6.
Uso
my_btn.tabEnabled
Descrição
Propriedade; especifica se my_btn está incluído na ordenação automática de guias. A opção
undefined é utilizada por padrão.
Se a propriedade tabEnabled for undefined ou true, o objeto será incluído na ordenação
automática de guias. Se a propriedade tabIndex também estiver definida com um determinado
valor, o objeto será incluído na ordenação personalizada de guias também. Se tabEnabled for
false, o objeto não será incluído nem na ordenação de guias automática nem na personalizada,
ainda que a propriedade tabIndex seja definida.
Consulte também
Button.tabIndex, MovieClip.tabEnabled, TextField.tabEnabled
326
Capítulo 12: Dicionário do ActionScript
Button.tabIndex
Disponibilidade
Flash Player 6.
Uso
my_btn.tabIndex
Descrição
Propriedade; permite personalizar a ordenação de guias dos objetos em um arquivo SWF.
É possível definir a propriedade tabIndex em um botão, clipe de filme ou instância de campo de
texto. Por padrão, ela é undefined.
Se algum objeto sendo exibido atualmente no arquivo SWF tiver uma propriedade tabIndex,
a ordenação automática de guias será desativada e a ordenação de guias passará a ser calculada a
partir das propriedades tabIndex dos objetos do SWF. A ordenação personalizada de guias inclui
apenas os objetos que têm propriedades tabIndex.
A propriedade tabIndex pode ser um inteiro não negativo. Os objetos são ordenados de acordo
com suas propriedades tabIndex, em ordem ascendente. Um objeto cujo tabIndex tenha valor 1
precede um objeto com tabIndex com valor 2. Se dois objetos tiverem o mesmo valor tabIndex,
aquele que preceder o outro na ordenação de tabulação será undefined.
A ordenação de guia personalizada definida pela propriedade tabIndex é flat. Isso significa que as
relações hierárquicas de objetos são ignoradas no arquivo SWF. Todos os objetos no SWF com
propriedades tabIndex são colocados na ordem de guia. Por sua vez, essa é determinada pela
ordem dos valores de tabIndex. Se dois objetos tiverem o mesmo valor tabIndex, o que será
posicionado na frente é indefinido. Você não deve usar o mesmo valor de tabIndex para vários
objetos.
Consulte também
Button.tabEnabled, MovieClip.tabChildren, MovieClip.tabEnabled,
MovieClip.tabIndex, TextField.tabIndex
Button._target
Disponibilidade
Flash Player 6.
Uso
myButton._target
Descrição
Propriedade (somente leitura); retorna o caminho de destino da instância de botão especificada
por my_btn.
Consulte também
targetPath
Button._target
327
Button.trackAsMenu
Disponibilidade
Flash Player 6.
Uso
my_btn.trackAsMenu
Descrição
Propriedade; um valor booleano que indica se outros botões ou clipes de filme podem receber
eventos de liberação de mouse. Permite a criação de menus. Você pode definir a propriedade
trackAsMenu em qualquer botão ou objeto de clipe de filme. Se a propriedade trackAsMenu não
existir, o comportamento padrão será false.
É possível alterar a qualquer momento a propriedade trackAsMenu; o botão modificado assume o
novo comportamento logo em seguida.
Consulte também
MovieClip.trackAsMenu
Button._url
Disponibilidade
Flash Player 6.
Uso
my_btn._url
Descrição
Propriedade (somente leitura); recupera o URL do arquivo SWF que criou o botão.
Button.useHandCursor
Disponibilidade
Flash Player 6.
Uso
my_btn.useHandCursor
Descrição
Propriedade; um valor booleano que, quando definido como true (o padrão), indica se um cursor
em forma de mão (mão indicadora) será exibido quando o usuário passar o mouse sobre o botão.
Se essa propriedade for definida como false, o cursor de seta será usado.
Se a qualquer momento a propriedade useHandCursor for alterada; o botão modificado logo
assumirá o comportamento do novo cursor. A propriedade useHandCursor pode ser lida de um
objeto de protótipo.
328
Capítulo 12: Dicionário do ActionScript
Button._visible
Disponibilidade
Flash Player 6.
Uso
my_btn._visible
Descrição
Propriedade; um valor booleano que indica se o botão especificado por my_btn está visível.
Os botões invisíveis (propriedade _visible definida como false) são desativados.
Consulte também
MovieClip._visible, TextField._visible
Button._width
Disponibilidade
Flash Player 6.
Uso
my_btn._width
Descrição
Propriedade; a largura do botão, em pixels.
Exemplo
O exemplo a seguir define as propriedades de altura e de largura de um botão.
my_btn._width=200;
my_btn._height=200;
Consulte também
MovieClip._width
Button._width
329
Button._x
Disponibilidade
Flash Player 6.
Uso
my_btn._x
Descrição
Propriedade; um inteiro que define a coordenada x de um botão em relação às coordenadas locais
do clipe de filme pai. Se um botão estiver na Linha de tempo principal, seu sistema de
coordenadas refere-se ao canto superior esquerdo do Palco como (0, 0). Se o botão estiver dentro
de outro clipe de filme que tenha transformações, o botão está no sistema de coordenadas local do
clipe de filme anexado. Assim, para um clipe de filme girado 90° no sentido anti-horário, o botão
embutido herda um sistema de coordenadas que está girado 90° no sentido anti-horário.
As coordenadas do botão referem-se à posição do ponto do registro.
Consulte também
Button._xscale, Button._y, Button._yscale
Button._xmouse
Disponibilidade
Flash Player 6.
Uso
my_btn._xmouse
Descrição
Propriedade (somente leitura); retorna a coordenada x da posição do mouse em relação ao botão.
Consulte também
Button._ymouse
330
Capítulo 12: Dicionário do ActionScript
Button._xscale
Disponibilidade
Flash Player 6.
Uso
my_btn._xscale
Descrição
Propriedade; o dimensionamento horizontal do botão conforme aplicado do ponto de registro do
mesmo, expresso como uma porcentagem. O ponto de registro padrão é (0,0).
Dimensionar o sistema de coordenadas local afeta as configurações da propriedade _x e _y,
que são definidas em pixels. Por exemplo, se o clipe de filme pai for redimensionado em 50%,
a definição da propriedade _x move um objeto no botão pela metade do número de pixels,
tomando como base as dimensões em 100% do SWF.
Consulte também
Button._x, Button._y, Button._yscale
Button._y
Disponibilidade
Flash Player 6.
Uso
my_btn._y
Descrição
Propriedade; a coordenada y do botão em relação às coordenadas locais do clipe de filme pai.
Se um botão estiver na Linha de tempo principal, seu sistema de coordenadas irá referir-se ao
canto superior esquerdo do Palco como (0, 0). Se o botão estiver dentro de outro clipe de filme
que tem transformações, o botão está no sistema de coordenadas local do clipe de filme anexado.
Assim, para um clipe de filme girado 90° no sentido anti-horário, o botão embutido herda um
sistema de coordenadas que está girado 90° no sentido anti-horário. As coordenadas do botão
referem-se à posição do ponto do registro.
Consulte também
Button._x, Button._xscale, Button._yscale
Button._y
331
Button._ymouse
Disponibilidade
Flash Player 6.
Uso
my_btn._ymouse
Descrição
Propriedade (somente leitura); indica a coordenada y da posição do mouse em relação ao botão.
Consulte também
Button._xmouse
Button._yscale
Disponibilidade
Flash Player 6.
Uso
my_btn._yscale
Descrição
Propriedade; o dimensionamento vertical do botão conforme aplicado do ponto de registro do
mesmo, expresso como uma porcentagem. O ponto de registro padrão é (0,0).
Consulte também
Button._y, Button._x, Button._xscale
332
Capítulo 12: Dicionário do ActionScript
call()
Disponibilidade
Flash Player 4. Esta ação tornou-se obsoleta no Flash 5 e a Macromedia recomenda que a ação
function seja usada no seu lugar.
Uso
call(quadro)
Parâmetros
quadro
O identificador ou número de um quadro na Linha de tempo.
Retorna
Nada.
Descrição
Ação obsoleta; executa o script no quadro chamado, sem mover a reprodução para esse quadro.
As variáveis locais não mais existirão depois da execução do script.
Consulte também
function, Function.call()
Classe Camera
Disponibilidade
Flash Player 6.
Descrição
A classe Camera é para ser usada, principalmente, com o Macromedia Flash Communication
Server, mas pode ser usada, de uma forma limitada, sem o servidor.
A classe Camera permite a captura de vídeo de uma câmera de vídeo conectada ao computador
que esteja executando o Macromedia Flash Player—por exemplo, para monitorar um fluxo de
vídeo de uma web camera conectada ao seu sistema local. O Flash fornece recursos similares de
áudio; para obter mais informações, consulte a entrada Classe Microphone.
Para criar ou fazer referência a um objeto Camera, use Camera.get().
Classe Camera
333
Resumo de métodos da classe Camera
Método
Descrição
Camera.get()
Retorna um objeto Camera padrão ou especificado, ou null se a
câmera não estiver disponível.
Camera.setMode()
Define aspectos do modo de captura da câmera, incluindo altura,
largura e quadros por segundo.
Camera.setMotionLevel()
Especifica quanto movimento é necessário para chamar
Camera.onActivity(true) e quanto tempo deve decorrer sem
movimento antes que Camera.onActivity(false) seja chamado.
Camera.setQuality()
Um inteiro que especifica o valor máximo de largura de banda que um
fluxo de saída de vídeo atual pode usar, em bytes por segundo.
Resumo de propriedades da classe Camera
334
Propriedade
(somente leitura)
Descrição
Camera.activityLevel
A quantidade de movimento que a câmera está detectando.
Camera.bandwidth
A quantidade máxima de largura de banda que o fluxo de saída de vídeo
atual pode usar, em bytes.
Camera.currentFps
A taxa na qual a câmera está capturando dados, em quadros por
segundo.
Camera.fps
A taxa desejada de captura de dados, em quadros por segundo.
Camera.height
A altura atual da captura, em pixels.
Camera.index
O índice da câmera, conforme refletido no array retornado por
Camera.names.
Camera.motionLevel
A quantidade de movimento necessária para chamar
Camera.onActivity(true).
Camera.motionTimeOut
O número de milissegundos entre o momento em que a câmera pára de
detectar movimento e o momento em que Camera.onActivity (false) é
chamado.
Camera.muted
Um valor booleano que especifica se o usuário permitiu ou negou o
acesso à câmera.
Camera.name
O nome da câmera conforme especificado pelo hardware da câmera.
Camera.names
Propriedade de classe; um array de seqüências de caracteres que
refletem os nomes de todos os dispositivos de captura de vídeo
disponíveis, incluindo placas de vídeo e câmeras.
Camera.quality
Um inteiro que especifica o nível desejado de qualidade de vídeo,
determinado pela quantidade de compactação aplicada a cada quadro
de vídeo.
Camera.width
A largura atual da captura, em pixels.
Capítulo 12: Dicionário do ActionScript
Resumo de manipuladores de eventos da classe Camera
Identificador de eventos Descrição
Camera.onActivity
Chamado quando a câmera começa ou pára de detectar movimento.
Camera.onStatus
Chamado quando o usuário permite ou nega o acesso à câmera.
Construtor da classe Camera
Consulte Camera.get().
Camera.activityLevel
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.activityLevel
Descrição
Propriedade somente de leitura; valor numérico que especifica a quantidade de movimento que a
câmera está detectando. Os valores vão de 0 (nenhum movimento detectado) a 100 (grande
quantidade de movimento detectada). O valor dessa propriedade pode ajudá-lo a determinar se é
necessário passar uma configuração para Camera.setMotionLevel().
Se somente estiver sendo gerado fluxo de vídeo local não compactado, esta propriedade estará
definida apenas se uma função tiver sido associada ao manipulador de eventos
Camera.onActivity. Do contrário, ela estará indefinida.
Consulte também
Camera.motionLevel, Camera.setMotionLevel()
Camera.activityLevel
335
Camera.bandwidth
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.bandwidth
Descrição
Propriedade somente de leitura; um inteiro que especifica a quantidade máxima de largura de
banda que o fluxo de saída de vídeo atual pode usar, em bytes. O valor 0 significa que o vídeo do
Flash pode usar toda a largura de banda necessária para manter a qualidade de quadro desejada.
Para definir esta propriedade, use Camera.setQuality().
Exemplo
O exemplo a seguir carrega outro arquivo SWF se a largura de banda da câmera for de 32
kilobytes ou mais.
if(myCam.bandwidth >= 32768){
loadMovie("splat.swf",_root.hiddenvar);
}
Consulte também
Camera.setQuality()
Camera.currentFps
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.currentFps
Descrição
Propriedade somente de leitura; a taxa na qual a câmera está capturando dados, em quadros por
segundo. Esta propriedade não pode ser alterada. Entretanto, é possível usar o método
Camera.setMode() para definir uma propriedade relacionada —Camera.fps— que especifica a
taxa máxima de quadros desejada para a captura de dados.
Consulte também
Camera.fps, Camera.setMode()
336
Capítulo 12: Dicionário do ActionScript
Camera.fps
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.fps
Descrição
Propriedade somente de leitura; a taxa máxima desejada para a captura de dados, em quadros por
segundo. A taxa máxima possível depende dos recursos da câmera; ou seja, se a câmera não
suportar o valor definido aqui, esta taxa de quadros não será alcançada.
• Para definir o valor desejado para esta propriedade, use Camera.setMode().
• Para descobrir a taxa na qual a câmera está capturando dados em um determinado instante,
use a propriedade Camera.currentFps.
Exemplo
O exemplo a seguir define a taxa de quadros por segundo da câmera ativa, myCam.fps, como o
valor fornecido pela caixa de texto do usuário, this.config.txt_fps.
if (this.config.txt_fps != undefined) {
myCam.setMode(myCam.width, myCam.height, this.config.txt_fps, false);
}
Observação: A função setMode não garante a configuração de fps solicitada; ela define a fps
solicitada ou a fps mais rápida disponível.
Consulte também
Camera.currentFps, Camera.setMode()
Camera.fps
337
Camera.get()
Disponibilidade
Flash Player 6.
Uso
Camera.get([índice])
Observação: A sintaxe correta é Camera.get(). Para atribuir o objeto Camera a uma variável,
use uma sintaxe como camera_ativa=Camera.get().
Parâmetros
índice Um inteiro opcional maior ou igual a zero que especifica qual câmera selecionar,
seguindo o array retornado pela propriedade Camera.names. Para selecionar a câmera padrão
(que é o recomendável para a maioria dos aplicativos), omita esse parâmetro.
Retorna
• Se índice não estiver especificado, este método retorna uma referência à câmera padrão ou,
•
se ela estiver sendo usada por outro aplicativo, à primeira câmera disponível. Se houver mais de
uma câmera instalada, o usuário pode especificar a câmera padrão no painel Camera Settings
(Configurações de câmera) do Flash Player. Se não houver câmeras disponíveis ou instaladas,
o método retorna null.
Se índice estiver especificado, este método retorna uma referência à câmera solicitada ou null
se ela não estiver disponível.
Descrição
Método; retorna uma referência a um objeto Camera para captura de vídeo. Para realmente
começar a capturar o vídeo, é necessário conectar o objeto Camera a um objeto Video (consulte
Video.attachVideo()).
Ao contrário dos objetos criados com o construtor new, várias chamadas para Camera.get()
fazem referência à mesma câmera. Assim, se o script contiver as linhas cam1=Camera.get() e
cam2=Camera.get(), tanto cam1 quanto cam2 farão referência à mesma câmera (padrão).
Em geral, não se deve passar um valor para índice. Simplesmente use Camera.get() para
retornar uma referência à câmera padrão. Através do painel Camera settings (Configurações de
câmera), que será apresentado posteriormente nesta seção, o usuário pode especificar a câmera
padrão que o Flash deve usar. Se você passar um valor para índice, poderá estar tentando fazer
referência a uma câmera que não é a preferida do usuário. O índice será usado em casos raros—
por exemplo, se o aplicativo estiver capturando vídeo de duas câmeras ao mesmo tempo.
Quando um SWF tenta acessar a câmera retornada por Camera.get(), o Flash Player exibe uma
caixa de diálogo Privacy (Privacidade) para que o usuário permita ou negue o acesso à câmera.
(Certifique-se de que o tamanho do Stage (Palco) seja pelo menos de 215 x 138 pixels. Esse é o
tamanho mínimo que o Flash necessita para exibir a caixa de diálogo.)
338
Capítulo 12: Dicionário do ActionScript
Quando o usuário responde a esta caixa de diálogo, o manipulador de eventos Camera.onStatus
retorna um objeto de informação que indica a resposta do usuário. Para descobrir se o usuário
negou ou permitiu acesso à câmera sem processar esse manipulador de eventos, use a propriedade
Camera.muted.
O usuário também pode especificar configurações permanentes de privacidade para um domínio
em particular clicando com o botão direito do mouse (no Windows) ou pressionando Control e
clicando com o mouse (no Macintosh) enquanto um SWF estiver sendo executado, escolhendo
Settings (Configurações), abrindo o painel Privacy (Privacidade) e selecionando Remember
(Lembre-se).
Se Camera.get retornar null, a câmera está sendo usada por outro aplicativo ou não há câmeras
instaladas no sistema. Para descobrir se há câmeras instaladas, use Camera.names.length. Para
exibir o painel Camera Settings (Configurações de câmera) do Flash Player, que permite que o
usuário escolha a câmera à qual Camera.get() fará referência, use System.showSettings(3).
Lembre-se que a procura de câmeras no hardware é demorada. Depois que o Flash encontrar pelo
menos uma câmera, não será feita uma nova busca no hardware pelo tempo que a instância do
player estiver ativa. Entretanto, se o Flash não achar nenhuma câmera, ele irá procurar por uma
toda vez que Camera.get for chamado. Isso pode ser útil caso um usuário tenha esquecido de
conectar a câmera; se o SWF apresentar um botão Try Again (Tente novamente) que chame
Camera.get, o Flash poderá achar a câmera sem que o usuário precise reiniciar o SWF.
Exemplo
O exemplo a seguir captura e exibe vídeo localmente dentro de um objeto Video denominado
my_video no Stage (Palco).
var my_cam = Camera.get();
my_video.attachVideo(myCam);
Consulte também
Camera.index, Camera.muted, Camera.names, Camera.onStatus, Camera.setMode(),
Video.attachVideo()
Camera.get()
339
Camera.height
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.height
Descrição
Propriedade somente de leitura; a altura atual da captura, em pixels. Para definir um valor para
essa propriedade, use Camera.setMode().
Exemplo
A linha de código a seguir atualiza uma caixa de texto na interface do usuário com o valor da
altura atual.
_root.txt_height = myCam.height;
Veja também o exemplo para Camera.setMode().
Consulte também
Camera.setMode(), Camera.width
Camera.index
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.index
Descrição
Propriedade somente de leitura; um inteiro maior ou igual a zero que especifica o índice da
câmera, seguindo o array retornado por Camera.names.
Exemplo
O exemplo a seguir obtém a câmera que possui o valor de índice.
myCam = Camera.get(índice);
Consulte também
Camera.get(), Camera.names
340
Capítulo 12: Dicionário do ActionScript
Camera.motionLevel
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.motionLevel
Descrição
Propriedade somente de leitura; um valor numérico que especifica a quantidade de movimento
necessária para chamar Camera.onActivity(true). Os valores aceitáveis vão de 0 a 100. O valor
padrão é 50.
O vídeo pode ser exibido independentemente do valor da propriedade motionLevel. Para obter
mais informações, consulte Camera.setMotionLevel().
Consulte também
Camera.activityLevel, Camera.onStatus, Camera.setMotionLevel()
Camera.motionTimeOut
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.motionTimeOut
Descrição
Propriedade somente de leitura; o número de milissegundos entre o momento em que a câmera
pára de detectar movimento e o momento em que Camera.onActivity(false) é chamado.
O valor padrão é 2000 (2 segundos).
Para definir este valor, use Camera.setMotionLevel().
Exemplo
O exemplo a seguir define o número de milissegundos entre o momento em que a câmera pára de
detectar movimento e o momento em que Camera.onActivity(false) é chamado em 1000
milissegundos ou um segundo.
if(myCam.motionTimeOut >= 1000){
myCam.setMotionLevel(myCam.motionLevel, 1000);
}
Consulte também
Camera.onActivity, Camera.setMotionLevel()
Camera.motionTimeOut
341
Camera.muted
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.muted
Descrição
Propriedade somente de leitura; um valor booleano que especifica se o usuário negou acesso à
câmera (true) ou permitiu acesso (false) no painel Privacy Settings (Configurações de
privacidade) do Flash Player. Quando se modifica este valor, Camera.onStatus é invocado.
Para obter mais informações, consulte Camera.get().
Exemplo
No exemplo a seguir, quando o usuário clica no botão, o Flash publica e reproduz um fluxo ao
vivo se a câmera não estiver no modo mudo.
on (press)
{
// Se o usuário coloca a câmera em mudo, exibe informação de off-line.
// Caso contrário, publica e reproduz um fluxo ao vivo a partir da câmera.
if(myCam.muted) {
_root.debugWindow+="Camera off-line." + newline;
} else {
// Publica os dados da câmera, chamando
// a função pubLive() de root.
_root.pubLive();
// Reproduz o que estiver sendo publicado chamando
// a função playLive() de root.
_root.playLive();
}
}
Consulte também
Camera.get(), Camera.onStatus
342
Capítulo 12: Dicionário do ActionScript
Camera.name
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.name
Descrição
Propriedade somente de leitura; uma seqüência de caracteres que especifica o nome da câmera
atual, como retornado pelo hardware da câmera.
Exemplo
O exemplo a seguir exibe o nome da câmera padrão no painel Output (Saída). No Windows, esse
nome é o mesmo do dispositivo listado na folha de propriedades Scanners and Cameras (Scanners
e câmeras).
myCam = Camera.get();
trace("O nome da câmera é: " + myCam.name);
Consulte também
Camera.get(), Camera.names
Camera.name
343
Camera.names
Disponibilidade
Flash Player 6.
Uso
Camera.names
Observação: A sintaxe correta é Camera.names. Para atribuir o valor de retorno a uma variável,
use uma sintaxe do tipo cam_array=Camera.names. Para determinar o nome da câmera atual,
use câmera_ativa.name.
Descrição
Propriedade de classe somente de leitura; recupera um array de seqüências de caracteres que
refletem os nomes de todas as câmeras disponíveis sem exibir o painel Privacy Settings
(Configurações de privacidade) do Flash Player. Esse array tem o mesmo comportamento que
qualquer outro array do ActionScript: fornece implicitamente o índice (que inicia em zero) de
cada câmera e o número de câmeras no sistema (através de Camera.names.length). Para obter
mais informações, consulte a entrada da Classe Array.
Para chamar a propriedade Camera.names, é necessária uma busca extensiva no hardware, e a
construção do array pode demorar alguns segundos. Na maioria dos casos, é possível usar
diretamente a câmera padrão.
Exemplo
O exemplo a seguir usa a câmera padrão, a menos que haja mais de uma câmera disponível.
Nesse caso, o usuário pode escolher qual câmera definir como padrão.
cam_array = Camera.names;
if (cam_array.length == 1){
Camera.get();
}
else
System.showSettings(3);
Camera.get();
Consulte também
Camera.get(), Camera.index, Camera.name
344
Capítulo 12: Dicionário do ActionScript
Camera.onActivity
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.onActivity = function(atividade) {
// seus comandos vão aqui
}
Parâmetros
Um valor booleano definido como true quando a câmera começa a detectar
movimento e como false quando ela pára.
activity
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando a câmera começa ou pára de detectar movimento.
Caso deseje responder a esse manipulador de eventos, será necessário criar uma função para
processar o valor atividade.
Para especificar a quantidade de movimento necessária para chamar Camera.onActivity(true)
e a quantidade de tempo que deve decorrer sem atividade antes de chamar
Camera.onActivity(false), use Camera.setMotionLevel().
Exemplo
O exemplo a seguir exibe true ou false no painel Output (Saída) quando a câmera começa ou
pára de detectar movimento.
// Assume que um objeto Video chamado "myVideoObject" está no Stage (Palco)
c = Camera.get();
myVideoObject.attachVideo(c);
c.setMotionLevel(10, 500);
c.onActivity = function(mode)
{
trace(mode);
};
Consulte também
Camera.onActivity, Camera.setMotionLevel()
Camera.onActivity
345
Camera.onStatus
Disponibilidade
Flash Player 6.
Uso
camera_ativa.onStatus = function(infoObject) {
// seus comandos vão aqui
}
Parâmetros
infoObject
Um parâmetro definido de acordo com a mensagem de status.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o usuário permite ou nega o acesso à câmera.
Caso deseje responder a esse manipulador de eventos, será necessário criar uma função para
processar o objeto de informação gerado pela câmera.
Quando um arquivo SWF tenta acessar a câmera, o Flash Player exibe uma caixa de diálogo
Privacy (Privacidade) para que o usuário permita ou negue o acesso.
• Se o usuário permitir acesso, a propriedade Camera.muted será definida como false e esse
•
manipulador será chamado com um objeto de informação cuja propriedade code é
Camera.Unmuted.
Se o usuário negar acesso, a propriedade Camera.muted será definida como true e esse
manipulador será chamado com um objeto de informação cuja propriedade code é
Camera.Muted.
Para descobrir se o usuário negou ou permitiu acesso à câmera sem processar esse manipulador de
eventos, use a propriedade Camera.muted.
Observação: Se o usuário escolher permanentemente permitir ou negar acesso para todos os
arquivos SWF de um domínio específico, esse manipulador não será chamado para SWFs desse
domínio, a menos que o usuário altere posteriormente a configuração de privacidade. Para obter
mais informações, consulte Camera.get().
346
Capítulo 12: Dicionário do ActionScript
Exemplo
A função de retorno de chamada a seguir exibe uma mensagem sempre que o usuário permitir ou
negar acesso à câmera.
myCam = Camera.get();
myVideoObject.attachVideo(myCam);
myCam.onStatus = function(infoMsg) {
if(infoMsg.code == "Camera.Muted"){
trace("O usuário proíbe o acesso à câmera");
}
else
trace("O usuário permite o acesso à câmera");
}
// Altere o valor Allow (Permitir) ou Deny (Proibir) para chamar a função
System.showSettings(0);
Consulte também
Camera.get(), Camera.muted
Camera.quality
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.quality
Descrição
Propriedade somente de leitura; um inteiro que especifica o nível desejado de qualidade de vídeo,
conforme determinado pela quantidade de compactação aplicada a cada quadro de vídeo.
Os valores de qualidade aceitáveis variam de 1 (menor qualidade, máxima compactação) a 100
(maior qualidade, sem compactação). O valor padrão é 0, o que significa que a qualidade do vídeo
pode variar conforme o necessário para evitar exceder a largura de banda disponível.
Consulte também
Camera.setQuality()
Camera.quality
347
Camera.setMode()
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.setMode(largura, altura, qps [,favorSize])
Parâmetros
largura
altura
A largura solicitada da captura, em pixels. O valor padrão é 160.
A altura solicitada da captura, em pixels. O valor padrão é 120.
A taxa solicitada na qual a câmera deve capturar os dados, em quadros por segundo. O valor
padrão é 15.
qps
favorSize Um parâmetro booleano opcional que especifica como manipular a largura, altura e
taxa de quadros se a câmera não tiver um modo nativo que corresponda aos requisitos
especificados. O valor padrão é true, o que significa que é preferível que se mantenha o tamanho
da captura; o uso desse parâmetro seleciona o modo que mais se aproxima dos valores largura e
altura, mesmo que isso afete negativamente o desempenho reduzindo a taxa de quadros.
Para maximizar a taxa de quadros em detrimento da altura e da largura da câmera, passe false
para o parâmetro favorSize.
Retorna
Nada.
Descrição
Método; define o modo de captura da câmera como o modo nativo que melhor corresponda aos
requisitos especificados. Se a câmera não tiver um modo nativo que corresponda a todos os
parâmetros passados, o Flash seleciona um modo de captura que melhor sintetize o modo
solicitado. Essa manipulação pode envolver o corte da imagem e a eliminação de quadros.
Por padrão, o Flash elimina quadros quando necessário para manter o tamanho da imagem.
Para minimizar o número de quadros eliminados, mesmo que isso signifique a redução do
tamanho da imagem, passe false para o parâmetro favorSize.
Ao escolher um modo nativo, o Flash tenta manter a proporção solicitada sempre que possível.
Por exemplo, se o comando camera_ativa.setMode(400,400,30) for executado, e os valores
máximos de largura e altura disponíveis na câmera forem 320 e 288, o Flash define a largura e a
altura como 288. Ao configurar essas propriedades como o mesmo valor, o Flash mantém a
proporção 1:1 solicitada.
Para determinar os valores atribuídos a estas propriedades depois que o Flash selecionar o modo
que mais se aproxime dos valores solicitados, use Camera.width, Camera.height e Camera.fps.
348
Capítulo 12: Dicionário do ActionScript
Exemplo
O exemplo a seguir define a largura, altura e qps com base na entrada do usuário se ele clicar no
botão. O parâmetro opcional favorSize não foi usado porque o valor padrão, true, fornecerá as
configurações mais próximas da preferência do usuário sem prejudicar a qualidade do vídeo,
embora o qps possa, assim, ser prejudicado. A interface do usuário é, então, atualizada com as
novas configurações.
on (press)
{
// Define largura, altura e qps para a entrada do usuário.
_root.myCam.setMode(txt_width, txt_height, txt_fps);
// Atualiza os campos de texto do usuário com a nova configuração.
_root.txt_width = myCam.width;
_root.txt_height = myCam.height;
_root.txt_fps = myCam.fps;
}
Consulte também
Camera.currentFps, Camera.fps, Camera.height, Camera.width
Camera.setMode()
349
Camera.setMotionLevel()
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.setMotionLevel(sensibilidade [, tempoLimite])
Parâmetros
sensibilidade Um valor numérico que especifica a quantidade de movimento necessária para
chamar Camera.onActivity(true). Os valores aceitáveis vão de 0 a 100. O valor padrão é 50.
Um parâmetro numérico opcional que especifica quantos milissegundos devem
decorrer sem atividade antes do Flash considerar que a atividade foi interrompida e chamar o
manipulador de eventos Camera.onActivity(false). O valor padrão é 2000 (2 segundos).
tempoLimite
Retorna
Nada.
Descrição
Método; especifica quanto movimento é necessário para chamar Camera.onActivity(true).
Define opcionalmente o número de milissegundos que devem decorrer sem atividade antes que o
Flash considere que o movimento foi interrompido e chamar Camera.onActivity(false).
Observação: Pode-se exibir o vídeo independentemente do valor do parâmetro sensibilidade.
Esse parâmetro somente determina quando e sob quais circunstâncias Camera.onActivity é
chamado, não determina se o vídeo está realmente sendo capturado ou exibido.
• Para impedir que a câmera detecte qualquer movimento, passe o valor 100 para
sensibilidade; Camera.onActivity
•
nunca será chamado. Esse valor provavelmente só será
usado para fazer testes—por exemplo, para desativar temporariamente quaisquer ações
definidas para ocorrer quando Camera.onActivity for chamado.
Para descobrir a quantidade de movimento que a câmera está detectando no momento, use a
propriedade Camera.activityLevel.
Os valores de sensibilidade de movimento correspondem diretamente aos valores de atividade.
A total falta de movimento possui um valor de atividade 0. O movimento constante possui um
valor de atividade 100. O valor de atividade será menor que o valor de sensibilidade de
movimento quando não houver movimento; quando houver movimento, os valores de atividade
freqüentemente excederão o valor de sensibilidade de movimento.
Este método é semelhante, na sua finalidade, a Microphone.setSilenceLevel(). Ambos são
usados para especificar quando o manipulador de eventos onActivity deve ser invocado.
Entretanto, esses métodos possuem um impacto significativamente diferente na publicação
de fluxos:
•
•
350
Microphone.setSilenceLevel() foi criado para otimizar a largura de banda. Quando um
fluxo de áudio é considerado silencioso, nenhum dado de áudio é enviado. Em vez disso, uma
única mensagem é enviada, indicando que o silêncio foi iniciado.
Camera.setMotionLevel() foi criado para detectar movimento e não afeta o uso da largura
de banda. Mesmo que um fluxo de vídeo não detecte movimento, o vídeo ainda assim é
enviado.
Capítulo 12: Dicionário do ActionScript
Exemplo
O exemplo a seguir envia mensagens ao painel Output (Saída) quando a atividade de vídeo inicia
ou termina. Altere o valor de sensibilidade de movimento de 30 para um número maior ou menor
para ver como os valores diferentes afetam a detecção de movimento.
// Assume que um objeto Video chamado "myVideoObject" está no Stage (Palco)
c = Camera.get();
x = 0;
function motion(mode)
{
trace(x + ": " + mode);
x++;
}
c.onActivity = function(mode) {motion(mode);};
c.setMotionLevel(30, 500);
myVideoObject.attachVideo(c);
Consulte também
Camera.activityLevel, Camera.motionLevel, Camera.motionTimeOut, Camera.onActivity
Camera.setMotionLevel()
351
Camera.setQuality()
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.setQuality(larguraBanda, qlddQuadro)
Parâmetros
Um inteiro que especifica a quantidade máxima de largura de banda que o fluxo
de saída de vídeo atual pode usar, em bytes por segundo. Para especificar que o vídeo do Flash use
a quantidade de largura de banda necessária para manter o valor de qlddQuadro, passe 0 para
larguraBanda. O valor padrão é 16384.
larguraBanda
Um inteiro que especifica o nível desejado de qualidade de vídeo, conforme
determinado pela quantidade de compactação aplicada a cada quadro de vídeo. Os valores
aceitáveis variam de 1 (menor qualidade, máxima compactação) a 100 (maior qualidade, sem
compactação). Para especificar que a qualidade do vídeo pode variar conforme a necessidade para
evitar exceder a largura de banda, passe 0 para qlddQuadro. O valor padrão é 0.
qlddQuadro
Retorna
Nada.
Descrição
Método; define a quantidade máxima de largura de banda por segundo ou a qualidade de vídeo
necessária do fluxo de saída de vídeo atual. Este método geralmente é aplicável somente se o vídeo
estiver sendo transmitindo usando-se o Flash Communication Server.
Use este método para especificar qual elemento do fluxo de saída de vídeo é mais importante para
o seu aplicativo - uso de largura de banda ou qualidade de vídeo.
• Para indicar que a prioridade é a largura de banda, passe um valor para larguraBanda e 0 para
qlddQuadro.
•
•
352
O Flash transmitirá vídeo com a melhor qualidade possível dentro da largura de
banda especificada. Se necessário, o Flash reduzirá a qualidade do vídeo para evitar que a
largura de banda especificada seja excedida. Em geral, quando o movimento aumenta,
a qualidade diminui.
Para indicar que a qualidade é a prioridade, passe 0 para larguraBanda e um valor numérico
para qlddQuadro. O Flash usará a largura de banda necessária para manter a qualidade
especificada. Se necessário, o Flash reduzirá a taxa de quadros para manter a qualidade do
vídeo. Em geral, quando o movimento aumenta, a largura de banda também aumenta.
Para especificar que a largura de banda e a qualidade são igualmente importantes, passe valores
numéricos para ambos os parâmetros. O Flash transmitirá vídeo que alcance a qualidade
especificada e que não exceda a largura de banda especificada. Se necessário, o Flash reduzirá a
taxa de quadros para manter a qualidade de vídeo sem exceder a largura de banda especificada.
Capítulo 12: Dicionário do ActionScript
Exemplo
Os exemplos a seguir ilustram como usar este método para controlar o uso de largura de banda e a
qualidade de vídeo.
// Garante que não mais de 8192 (8 Kb/segundo) esteja sendo usado para enviar
vídeo
câmera_ativa.setQuality(8192,0);
// Garante que não mais de 8192 (8 Kb/segundo) esteja sendo usado para enviar
vídeo
// com uma qualidade mínima de 50
câmera_ativa.setQuality(8192,50);
// Garante a qualidade mínima de 50, não importa quanta largura de banda seja
necessária
câmera_ativa.setQuality(0,50);
Consulte também
Camera.bandwidth, Camera.quality
Camera.setQuality()
353
Camera.width
Disponibilidade
Flash Player 6.
Uso
câmera_ativa.width
Descrição
Propriedade somente de leitura; a largura atual da captura, em pixels. Para definir o valor desejado
para esta propriedade, use Camera.setMode().
Exemplo
A linha de código a seguir atualiza uma caixa de texto na interface do usuário com o valor da
largura atual.
myTextField.text=myCam.width;
Veja também o exemplo para Camera.setMode().
Consulte também
Camera.height
case
Disponibilidade
Flash Player 4.
Uso
case expressão: comandos
Parâmetros
expressão
comandos
Qualquer expressão.
Qualquer comando.
Retorna
Nada.
Descrição
Comando; define uma condição para a ação switch. Os comandos no parâmetro comandos são
executados se o parâmetro expressão subseqüente à palavra-chave case for igual ao parâmetro
expressão da ação switch que usa a igualdade estrita (===)
O uso da ação case fora de um comando switch apresenta erro e o script não é compilado.
Consulte também
break, default, === (igualdade estrita), switch
354
Capítulo 12: Dicionário do ActionScript
chr
Disponibilidade
Flash Player 4. Esta função foi substituída no Flash 5 por String.fromCharCode().
Uso
chr(número)
Parâmetros
número
Um número de código ASCII.
Retorna
Nada.
Descrição
Função de seqüência de caracteres; converte código ASCII em caracteres.
Exemplo
O exemplo a seguir converte o número 65 na letra A e o atribui à variável myVar.
myVar = chr(65);
Consulte também
String.fromCharCode()
chr
355
class
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
class nome_classe {}
class nome_classe extends nome_classe {}
class nome_classe implements nome_interface [, nome_interface... ] {}
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA. Essa palavrachave é suportada somente quando usada em arquivos de scripts externos, não em scripts escritos
no painel Actions (Ações).
Descrição
Comando; define uma classe personalizada, que permite instanciar objetos que compartilham
métodos e propriedades definidos por você. Por exemplo, se estiver desenvolvendo um sistema de
controle de faturas, você poderá criar uma classe faturas que defina todos os métodos e
propriedades que todas as faturas devem ter. Em seguida, use o operador new para criar objetos
para a fatura.
Não é possível aninhar definições de classe; ou seja, não é possível definir classes adicionais dentro
de uma definição de classe.
Para criar classes baseadas em interfaces, use a palavra-chave implements. Para criar subclasses de
uma classe, use a palavra-chave extends. Uma classe pode estender somente uma classe, mas pode
implementar várias interfaces. É possível usar implements e extends em um único comando.
class c implements interface_i, interface_j //OK
class c extends class_d implements interface_i, interface_j
class c extends class_d, class_e //não OK
//OK
Para obter mais informações, consulte Capítulo 9, “Criando classes com o ActionScript 2”,
na página 159.
356
Capítulo 12: Dicionário do ActionScript
Exemplo
O exemplo a seguir cria uma classe chamada Planta. O construtor requer dois parâmetros.
// Nome do arquivo Planta.as
class Planta {
// Define nomes e tipos de propriedades
var tipoFolha:String;
var estacaoFlor:String;
// A linha a seguir é um construtor
// pois tem o mesmo nome que a classe
function Planta (param_tipoFolha:String, param_estacaoFlor:String) {
// Associa os valores passados às propriedades quando um novo objeto
Planta é criado
tipoFolha = param_tipoFolha;
estacaoFlor = param_estacaoFlor;
}
// Cria métodos para retornar os valores das propriedades, pois as melhores
práticas
// proíbem referências diretas a uma propriedade de uma classe
function getTipoFolha():String {return tipoFolha};
function getEstacaoFlor():String {return estacaoFlor};
}
Em um arquivo de script externo ou no painel Actions (Ações), use o operador new para criar um
objeto Planta.
var pinheiro:Planta = new Planta("Folha perene","N/A");
// Verifique se os parâmetros foram passados corretamente
trace(pinheiro.getTipoFolha());
trace(pinheiro.getEstacaoFlor());
Consulte também
dynamic, extends, implements, interface, new
class
357
clearInterval()
Disponibilidade
Flash Player 6.
Uso
clearInterval( intervalID )
Parâmetros
intervalID
Um objeto retornado de uma chamada para setInterval().
Retorna
Nada.
Descrição
Função; limpa uma chamada para setInterval().
Exemplo
O exemplo a seguir em primeiro lugar define uma chamada de intervalo, depois limpa-a:
function callback() {
trace("interval chamado");
}
var intervalID;
intervalID = setInterval( callback, 1000 );
// depois de algum tempo
clearInterval( intervalID );
Consulte também
setInterval()
Classe Color
Disponibilidade
Flash Player 5.
Descrição
A classe Color define o valor de cor RGB e a transformação de cor de clipes de filmes e recupera
esses valores depois da definição.
Use o construtor new Color() para criar um objeto Color antes de chamar seus métodos.
358
Capítulo 12: Dicionário do ActionScript
Resumo de métodos da classe Color
Método
Descrição
Color.getRGB()
Retorna o valor RGB numérico definido pela última chamada setRGB().
Color.getTransform()
Retorna a informação de transformação definida pela última chamada
setTransform().
Color.setRGB()
Define a representação hexadecimal do valor RGB de um objeto Color.
Color.setTransform()
Define a transformação de cor de um objeto Color.
Construtor da classe Color
Disponibilidade
Flash Player 5.
Uso
new Color(destino);
Parâmetros
destino
O nome da instância de um clipe de filme.
Retorna
Nada.
Descrição
Construtor; cria um objeto Color para o clipe de filme especificado pelo parâmetro destino.
Depois será possível usar os métodos desse objeto Color para alterar a cor de todo o clipe de filme
de destino.
Exemplo
O exemplo a seguir cria um objeto Color denominado my_color para o clipe de filme my_mc e
define seu valor RGB:
my_color = new Color(my_mc);
my_color.setRGB(0xff9933);
Classe Color
359
Color.getRGB()
Disponibilidade
Flash Player 5.
Uso
my_color.getRGB()
Parâmetros
Nenhum.
Retorna
Um número que representa o valor numérico RGB para a cor especificada.
Descrição
Método; retorna os valores numéricos definidos pela última chamada setRGB().
Exemplo
O código a seguir recupera o valor RGB do objeto Color my_color, converte-o em uma seqüência
de caracteres hexadecimal e a atribui à variável valor.
valor = my_color.getRGB().toString(16);
Consulte também
Color.setRGB()
Color.getTransform()
Disponibilidade
Flash Player 5.
Uso
my_color.getTransform()
Parâmetros
Nenhum.
Retorna
Um objeto cujas propriedades contêm os valores atuais de deslocamento e de porcentagem da cor
especificada.
Descrição
Método; retorna o valor de transformação definido pela última Color.setTransform()
chamada.
Consulte também
Color.setTransform()
360
Capítulo 12: Dicionário do ActionScript
Color.setRGB()
Disponibilidade
Flash Player 5.
Uso
my_color.setRGB(0xRRGGBB)
Parâmetros
Cor hexadecimal ou RGB a ser definida. RR, GG e BB consistem cada um em dois
dígitos hexadecimais que especifiquem o deslocamento de cada componente de cor. A seqüência
0x informa ao compilador do ActionScript que o número é um valor hexadecimal.
0xRRGGBB
Descrição
Método; especifica uma cor RGB para um objeto Color. Se esse método for chamado,
as configurações anteriores de Color.setTransform() serão substituídas.
Retorna
Nada.
Exemplo
Este exemplo define o valor de cor RGB do clipe de filme my_mc. Para observar o funcionamento
deste código, coloque um clipe de filme no Stage (Palco) com nome de instância my_mc. Depois,
coloque o código a seguir no Frame 1 (Quadro 1) na Timeline (Linha de tempo) principal e
escolha Control (Controlar) > Test Movie (Testar filme).
my_color = new Color(my_mc);
my_color.setRGB(0x993366);
Consulte também
Color.setTransform()
Color.setRGB()
361
Color.setTransform()
Disponibilidade
Flash Player 5.
Uso
my_color.setTransform(colorTransformObject)
Parâmetros
colorTransformObject Um objeto criado com o construtor new Object. Essa instância da
Classe Object deve ter as seguintes propriedades que especificam valores de transformação de cor:
ra, rb, ga, gb, ba, bb, aa, ab. Essas propriedades são explicadas a seguir.
Retorna
Nada.
Descrição
Método; define informações de transformação de cor para um objeto Color. O parâmetro
colorTransformObject é um objeto genérico criado a partir do construtor new Object.
Ele possui parâmetros que especificam os valores de porcentagem e de deslocamento dos
componentes vermelho, verde, azul e alfa (transparência) de uma cor, inseridos no formato
0xRRGGBBAA.
Os parâmetros de um objeto de transformação de cor correspondem às configurações na caixa de
diálogo Efeito avançado e são definidos da seguinte forma:
•
•
•
•
•
•
•
•
é a porcentagem do componente vermelho (-100 a 100).
é o deslocamento do componente vermelho (-255 a 255).
ga é a porcentagem do componente verde (-100 a 100).
gb é o deslocamento do componente verde (-255 a 255).
ba é a porcentagem do componente azul (-100 a 100).
bb é o deslocamento do componente azul (-255 a 255).
aa é a porcentagem de alfa (-100 a 100).
ab é o deslocamento de alfa (-255 a 255).
ra
rb
Crie um parâmetro colorTransformObject desta maneira:
myColorTransform = new Object();
myColorTransform.ra = 50;
myColorTransform.rb = 244;
myColorTransform.ga = 40;
myColorTransform.gb = 112;
myColorTransform.ba = 12;
myColorTransform.bb = 90;
myColorTransform.aa = 40;
myColorTransform.ab = 70;
Além disso, é possível usar a seguinte sintaxe para criar um parâmetro colorTransformObject:
myColorTransform = { ra: ‘50’, rb: ‘244’, ga: ‘40’, gb: ‘112’, ba: ‘12’, bb:
‘90’, aa: ‘40’, ab: ‘70’}
362
Capítulo 12: Dicionário do ActionScript
Exemplo
Este exemplo cria uma nova instância do objeto Color para um SWF específico. Além disso, cria
um objeto genérico denominado myColorTransform com as propriedades definidas acima e usa o
método setTransform() para passar o colorTransformObject para um objeto Color. Para usar
esse código em um documento Flash (FLA), coloque-o no Frame 1 (Quadro 1) na Timeline
(Linha do tempo) principal e coloque um clipe de filme no Stage (Palco) com o nome de instância
my_mc, como no código a seguir:
// Cria um objeto Color chamado my_color no clipe my_mc
my_color = new Color(my_mc);
// Cria um objeto de transformação de cor chamado myColorTransform usando
// o objeto genérico Object
myColorTransform = new Object();
// Defina os valores de myColorTransform
myColorTransform = { ra: '50', rb: '244', ga: '40', gb: '112', ba: '12', bb:
'90', aa: '40', ab: '70'};
// Associe o objeto de transformação de cor ao objeto Color
// criado para my_mc
my_color.setTransform(myColorTransform);
Classe ContextMenu
Disponibilidade
Flash Player 7.
Descrição
A classe ContextMenu fornece controle em tempo de execução sobre os itens do menu contextual
do Flash Player, que aparece quando um usuário clica com o botão direito do mouse
(no Windows) ou pressiona Control e clica com o mouse (no Macintosh) no Flash Player.
É possível usar os métodos e propriedades da classe ContextMenu para adicionar itens de menu
personalizados, controlar a exibição dos itens internos do menu contextual, por exemplo, Zoom
In (Mais zoom) e Print (Imprimir), ou criar cópias de menus.
É possível anexar um objeto ContextMenu a um botão, clipe de filme ou objeto de campo de
texto específicos, ou a um nível de filme inteiro. Use a propriedade menu das classes Button,
MovieClip ou TextField para fazer isso. Para obter mais informações sobre a propriedade menu,
consulte Button.menu, MovieClip.menu e TextField.menu.
Para adicionar novos itens a um objeto ContextMenu, é possível criar uma instância da classe
ContextMenuItem e depois adicionar esse objeto ao array ContextMenu.customItems. Para
obter mais informações sobre a criação de itens de menu contextual, consulte a entrada da Classe
ContextMenuItem.
O Flash Player possui três tipos de menus contextuais: o menu padrão (que aparece quando você
clica com o botão direito do mouse no Flash Player), o menu de edição (que aparece quando você
clica com o botão direito sobre um campo de texto selecionável ou editável) e um menu de erro
(que aparece quando um arquivo SWF falhou ao carregar no Flash Player). Somente os menus
padrão e de edição podem ser modificados com a classe ContextMenu.
Classe ContextMenu
363
Os itens de menu personalizados sempre aparecem na parte superior do menu contextual do Flash
Player, acima de quaisquer itens de menu internos visíveis; uma barra separadora distingue os
itens de menu internos dos personalizados. Um menu contextual não pode conter mais de 15
itens de menu personalizados.
Use o construtor new ContextMenu() para criar um objeto ContextMenu antes de chamar
seus métodos.
Resumo de métodos da classe ContextMenu
Método
Descrição
ContextMenu.copy()
Retorna uma cópia do objeto ContextMenu especificado.
ContextMenu.hideBuiltInItems() Oculta todos os itens internos no menu contextual do Flash
Player, exceto Settings e About (Sobre).
Resumo de propriedades da classe ContextMenu
Propriedade
Descrição
ContextMenu.builtInItems
Um objeto cujos membros correspondem a itens internos do
menu contextual.
ContextMenu.customItems
Um array, indefinido por padrão, que contém objetos
ContextMenuItem.
Resumo de manipuladores de eventos da classe ContextMenu
Propriedade
Descrição
ContextMenu.onSelect
Um manipulador de retorno de chamada que é chamado antes
da exibição do menu.
Construtor da classe ContextMenu
Disponibilidade
Flash Player 7.
Uso
new ContextMenu ([callBackFunction])
Parâmetros
callBackFunction Uma referência a uma função que é chamada quando o usuário clica com o
botão direito do mouse, ou pressiona Control e clica com o mouse, antes do menu ser exibido.
Este parâmetro é opcional.
Retorna
Nada.
364
Capítulo 12: Dicionário do ActionScript
Descrição
Construtor; cria um novo objeto ContextMenu. É possível especificar, opcionalmente, um
identificador para uma função de retorno de chamada quando o objeto for criado. A função
especificada é chamada quando o usuário chama o menu contextual, mas antes que o menu seja
realmente exibido. Isso é útil para a personalização de conteúdo do menu com base no estado do
aplicativo ou no tipo de objeto (clipe de filme, campo de texto ou botão) em que o usuário clica
com o botão direito do mouse ou pressiona Control e clica com o mouse. Para obter mais
informações sobre a criação de uma função de retorno de chamada, consulte
ContextMenu.onSelect.
Exemplo
O exemplo a seguir oculta todos os objetos internos no menu contextual. Entretanto, os itens
Settings (Configurações) e About (Sobre) ainda aparecem, porque não podem ser desativados.
var newMenu = new ContextMenu();
newMenu.hideBuiltInItems();
_root.menu = newMenu;
Neste exemplo, a função de retorno de chamada especificada, menuHandler, ativa ou desativa um
item de menu personalizado (usando o array ContextMenu.customItems) com base no valor de
uma variável booleana denominada showItem. Se ela for false, o item de menu personalizado é
desativado; do contrário, ele é ativado.
var showItem = false; // Altere para true para ver o efeito
my_cm = new ContextMenu(menuHandler);
my_cm.customItems.push(new ContextMenuItem("Olá", itemHandler));
function menuHandler(obj, menuObj) {
if (showItem == false) {
menuObj.customItems[0].enabled = false;
} else {
menuObj.customItems[0].enabled = true;
}
}
function itemHandler(obj, item) {
}
_root.menu = my_cm;
Consulte também
Button.menu, ContextMenu.onSelect, ContextMenu.customItems,
ContextMenu.hideBuiltInItems(), MovieClip.menu, TextField.menu
Classe ContextMenu
365
ContextMenu.builtInItems
Disponibilidade
Flash Player 7.
Uso
my_cm.builtInItems
Descrição
Propriedade; um objeto que possui as seguintes propriedades booleanas: save, zoom, quality,
play, loop, rewind, forward_back e print. Se essas variáveis forem definidas como false,
os itens de menu correspondentes serão removidos do objeto ContextMenu especificado.
Essas propriedades são enumeráveis e são definidas como true por padrão.
Exemplo
Neste exemplo, os itens de menu internos Quality (Qualidade) e Print (Imprimir) estão
desativados para o objeto ContextMenu, my_cm, que está anexado à Timeline (Linha do tempo)
raiz do SWF.
var my_cm = new ContextMenu ();
my_cm.builtInItems.quality=false;
my_cm.builtInItems.print=false;
_root.menu = my_cm;
No próximo exemplo, um loop for..in enumera todos os nomes e valores dos itens de menu
internos do objeto ContextMenu, my_cm.
my_cm = new ContextMenu();
for(eachProp in my_cm.builtInItems) {
var propName = eachProp;
var propValue = my_cm.builtInItems[propName];
trace(propName + ": " + propValue);
}
366
Capítulo 12: Dicionário do ActionScript
ContextMenu.copy()
Disponibilidade
Flash Player 7.
Uso
my_cm.copy()
Parâmetros
Nenhum.
Retorna
Um objeto ContextMenu.
Descrição
Método; cria uma cópia do objeto ContextMenu especificado. A cópia herda todas as
propriedades do objeto de menu original.
Exemplo
Este exemplo cria uma cópia do objeto ContextMenu denominado my_cm cujos itens de menu
internos estão ocultos e adiciona um item de menu com o texto “Salvar...”. Ele depois cria uma
cópia de my_cm e a atribui à variável clone_cm, que herda todas as propriedades do menu original.
my_cm = new ContextMenu();
my_cm.hideBuiltInItems();
my_cm.customItems.push(new ContextMenuItem("Salvar...", saveHandler);
function saveHandler (obj, menuItem) {
saveDocument(); // função personalizada (não exibida)
}
clone_cm = my_cm.copy();
ContextMenu.copy()
367
ContextMenu.customItems
Disponibilidade
Flash Player 7.
Uso
my_cm.customItems
Descrição
Propriedade; um array com os objetos ContextMenuItem. Cada objeto no array representa um
item de menu contextual definido por você. Use essa propriedade para adicionar, remover ou
modificar esses itens de menu personalizados.
Para adicionar novos itens de menu, crie primeiro um novo objeto ContextMenuItem e depois
adicione-o ao array menu_mc.customItems (usando Array.push(), por exemplo). Para obter
mais informações sobre a criação de novos itens de menu, consulte a entrada da Classe
ContextMenuItem.
Exemplo
O exemplo a seguir cria um novo item de menu personalizado denominado menuItem_cm com a
legenda “Enviar e-mail” e um manipulador de retorno de chamada denominado emailHandler
(não mostrado). O novo item de menu é depois adicionado ao objeto ContextMenu, my_cm,
usando o array customItems. E, por fim, o novo menu é anexado a um clipe de filme
denominado email_mc.
var my_cm = new ContextMenu();
var menuItem_cm = new ContextMenuItem("Enviar e-mail", emailHandler);
my_cm.customItems.push(menuItem_cm);
email_mc.menu = my_cm;
Consulte também
Button.menu,
368
Classe ContextMenu, MovieClip.menu, TextField.menu
Capítulo 12: Dicionário do ActionScript
ContextMenu.hideBuiltInItems()
Disponibilidade
Flash Player 7.
Uso
my_cm.hideBuiltInItems()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; oculta todos os itens de menu internos, exceto Settings (Configuração) e About (Sobre),
no objeto ContextMenu especificado. Esse método oculta somente os itens de menu que
aparecem no menu contextual padrão; ele não afeta os itens que aparecem nos menus de edição
ou de erro. Para obter mais informações sobre os diferentes tipos de menu, consulte a entrada da
Classe ContextMenu.
Este método funciona definindo todos os membros booleanos de my_cm.builtInItems como
false. É possível, seletivamente, tornar um item interno visível definindo seu membro
correspondente em my_cm.builtInItems como true (como demonstrado no exemplo a seguir).
Exemplo
O exemplo a seguir cria um novo objeto ContextMenu denominado my_cm cujos itens de menu
internos estão ocultos, exceto para Print (Imprimir). O objeto de menu é anexado à Timeline
(Linha de tempo) raiz.
my_cm = new ContextMenu();
my_cm.hideBuiltInItems();
my_cm.builtInItems.print = true;
_root.menu = my_cm;
ContextMenu.hideBuiltInItems()
369
ContextMenu.onSelect
Disponibilidade
Flash Player 7.
Uso
my_cm.onSelect = function (item:Object, item_menu:ContextMenu) {
// aqui vai o seu código
}
Parâmetros
Uma referência ao objeto (clipe de filme, botão ou campo de texto selecionável) que estava
sob o ponteiro do mouse quando o menu contextual do Flash Player foi chamado e cuja
propriedade menu é definida como um objeto ContextMenu válido.
item
item_menu
Uma referência ao objeto ContextMenu atribuído à propriedade menu de object.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um usuário chama o menu contextual do Flash Player,
mas antes do menu ser realmente exibido. Isso permite que o conteúdo do menu contextual seja
personalizado com base no estado atual do aplicativo.
É possível também especificar o manipulador de retorno de chamada para um objeto
ContextMenu quando um novo objeto ContextMenu for construído. Para obter mais
informações, consulte a entrada da Classe ContextMenu.
Exemplo
O exemplo a seguir determina sobre qual tipo de objeto o menu contextual foi chamado.
my_cm = new ContextMenu();
menuHandler = function (obj:Object, menu:ContextMenu) {
if(obj instanceof MovieClip) {
trace("Clipe de filme: " + obj);
}
if(obj instanceof TextField) {
trace("Campo de texto: " + obj);
}
if(obj instanceof Button) {
trace("Botão: " + obj);
}
}
my_cm.onSelect = menuHandler;
370
Capítulo 12: Dicionário do ActionScript
Classe ContextMenuItem
Disponibilidade
Flash Player 7.
Descrição
Use a classe ContextMenuItem para criar itens de menu personalizados para exibição no menu
contextual do Flash Player. Cada objeto ContextMenuItem possui uma legenda (texto) que é
exibida no menu contextual e um manipulador de retorno de chamada (uma função) que é
chamado quando o item de menu é selecionado. Para adicionar um novo item a um menu
contextual, adicione-o ao array customItems de um objeto ContextMenu.
É possível ativar ou desativar itens de menu específicos, tornar os itens visíveis ou invisíveis ou
alterar a legenda ou o manipulador de retorno de chamada associados a um item de menu.
Itens de menu personalizados aparecem na parte superior do menu contextual, acima de todos os
itens internos. Uma barra separadora sempre divide itens de menu personalizados de itens
internos. É possível adicionar, no máximo, 15 itens personalizados ao menu contextual do Flash
Player. Cada item deve conter pelo menos um caractere visível - caracteres de controle, newlines e
outros caracteres de espaço em branco são ignorados. Nenhum item pode ter mais de 100
caracteres de comprimento. Os itens idênticos a qualquer outro item de menu interno, ou outro
item personalizado, serão ignorados, estando o item correspondente visível ou não. A comparação
dos itens de menu não considera maiúsculas e minúsculas, pontuação ou espaço em branco.
Nenhuma das seguintes palavras pode aparecer em um item personalizado: Macromedia, Flash
Player ou Configurações.
Resumo de métodos da classe ContextMenuItem
Método
Descrição
ContextMenuItem.copy()
Retorna uma cópia do objeto ContextMenuItem especificado.
Resumo de propriedades da classe ContextMenuItem
Propriedade
Descrição
ContextMenuItem.caption
Especifica o texto exibido no item de menu.
ContextMenuItem.enabled
Especifica se o item de menu está ativado ou desativado.
ContextMenuItem.separatorBefore Especifica se uma barra separadora deve aparecer acima do
item de menu.
ContextMenuItem.visible
Especifica se o item de menu está visível ou não.
Resumo de manipuladores de eventos da classe ContextMenuItem
Identificador de eventos
Descrição
ContextMenuItem.onSelect
Chamado quando o item de menu é selecionado.
Classe ContextMenuItem
371
Construtor da classe ContextMenuItem
Disponibilidade
Flash Player 7.
Uso
new ContextMenuItem(legenda, funçãoCallback, [separadorAntes,] [ativado,]
[visível]);
Parâmetros
legenda
Uma seqüência de caracteres que contém o texto associado ao item de menu.
funçãoCallback
Uma função, definida por você, que é chamada quando o item de menu é
selecionado.
separadorAntes Um valor booleano que indica se uma barra separadora deve aparecer acima
do item de menu no menu contextual. Esse parâmetro é opcional; seu valor padrão é false.
Um valor booleano que indica se o item de menu está ativado ou desativado no menu
contextual. Esse parâmetro é opcional; seu valor padrão é true.
ativado
visível Um valor booleano que indica se o item de menu está visível ou invisível.
Esse parâmetro é opcional; seu valor padrão é true.
Retorna
Nada.
Descrição
Construtor; cria um novo objeto ContextMenuItem que pode ser adicionado ao array
ContextMenu.customItems.
Exemplo
Este exemplo adiciona itens de menu Iniciar e Parar, separados por uma barra, ao objeto
ContextMenu, my_cm. A função startHandler() é chamada quando Iniciar é selecionado do
menu contextual; stopHandler() é chamada quando Parar é selecionado. O objeto
ContextMenu é aplicado à Timeline (Linha de tempo) raiz.
my_cm = new ContextMenu();
my_cm.customItems.push(new ContextMenuItem("Iniciar", startHandler));
my_cm.customItems.push(new ContextMenuItem("Parar", stopHandler, true));
function stopHandler(obj, item) {
trace("Parando...");
}
function startHandler(obj, item) {
trace("Iniciando...");
}
_root.menu = my_cm;
372
Capítulo 12: Dicionário do ActionScript
ContextMenuItem.caption
Disponibilidade
Flash Player 7.
Uso
menuItem_cmi.caption
Descrição
Propriedade; uma seqüência de caracteres que especifica a legenda (texto) do item de menu
exibida no menu contextual.
Exemplo
Este exemplo exibe a legenda do item de menu selecionado (Interromper jogo) no painel Output
(Saída).
my_cm = new ContextMenu();
menuItem_cmi = new ContextMenuItem("Interromper jogo", onPause);
my_cm.customItems.
function onPause(obj, menuItem) {
trace("Você selecionou: " + menuItem.caption);
}
ContextMenuItem.copy()
Disponibilidade
Flash Player 7.
Uso
menuItem_cmi.copy();
Retorna
Um objeto ContextMenuItem.
Descrição
Método; cria e retorna uma cópia do objeto ContextMenuItem especificado. A cópia inclui todas
as propriedades do objeto original.
Exemplo
Este exemplo cria um novo objeto ContextMenuItem denominado original_cmi com o texto
de legenda Pausa e um manipulador de retorno de chamada definido para a função onPause.
O exemplo depois cria uma cópia do objeto ContextMenuItem e a atribui à variável copy_cmi.
original_cmi = new ContextMenuItem("Pausa", onPause);
function onPause(obj, menu) {
_root.stop();
}
original_cmi.visible = false;
copy_cmi = orig_cmi.copy();
ContextMenuItem.copy()
373
ContextMenuItem.enabled
Disponibilidade
Flash Player 7.
Uso
menuItem_cmi.enabled
Descrição
Propriedade; um valor booleano que indica se o item de menu especificado está ativado ou
desativado. Por padrão, essa propriedade é true.
Exemplo
O exemplo a seguir cria um novo item de menu contextual e depois desativa esse item de menu.
var saveMenuItem = new ContextMenuItem("Salvar...", doSave);
saveMenuItem.enabled = false;
374
Capítulo 12: Dicionário do ActionScript
ContextMenuItem.onSelect
Disponibilidade
Flash Player 7.
Uso
menuItem_cmi.onSelect = function (obj, menuItem) {
// seus comandos vão aqui
}
Parâmetros
Uma referência ao clipe de filme ou Timeline (Linha de tempo), botão ou campo de texto
selecionável (editável) que o usuário clicou com o botão direito do mouse ou pressionou Control
e clicou com o mouse.
obj
menuItem
Uma referência ao objeto ContextMenuItem selecionado.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o item de menu especificado é selecionado no menu
contextual do Flash Player. O manipulador de retorno de chamada especificado recebe dois
parâmetros: obj, uma referência ao objeto sob o mouse quando o usuário chamou o menu
contextual do Flash Player e menuItem, uma referência ao objeto ContextMenuItem que
representa o item de menu selecionado.
Exemplo
O exemplo a seguir atribui uma função ao identificador onSelect para um objeto
ContextMenuItem denominado start_cmi. A função exibe a legenda do item de menu
selecionado.
start_cmi.onSelect = function (obj, item) {
trace("Você selecionou: " + item.caption);
}
Consulte também
ContextMenu.onSelect
ContextMenuItem.onSelect
375
ContextMenuItem.separatorBefore
Disponibilidade
Flash Player 7.
Uso
menuItem_cmi.separatorBefore
Descrição
Propriedade; um valor booleano que indica se uma barra separadora deve aparecer acima do item
de menu especificado. Por padrão, essa propriedade é false.
Observação: Uma barra separadora sempre aparece entre os itens de menu personalizados e os
itens de menu internos.
Exemplo
Este exemplo cria três itens de menu rotulados Abrir, Salvar e Imprimir. Uma barra separadora
divide os itens Salvar e Imprimir. Os itens de menu são depois adicionados ao array customItems
do objeto ContextMenu. E, por fim, o menu é anexado à Timeline (Linha de tempo) raiz
do SWF.
my_cm = new ContextMenu();
open_cmi = new ContextMenuItem("Abrir", itemHandler);
save_cmi = new ContextMenuItem("Salvar", itemHandler);
print_cmi = new ContextMenuItem("Imprimir", itemHandler);
print_cmi.separatorBefore = true;
my_cm.customItems.push(open_cmi, save_cmi, print_cmi);
function itemHandler(obj, menuItem) {
trace("Você selecionou: " + menuItem.caption);
};
_root.menu = my_cm;
Consulte também
ContextMenu.onSelect
ContextMenuItem.visible
Disponibilidade
Flash Player 7.
Uso
menuItem_cmi.visible
Descrição
Propriedade; um valor booleano que indica se o item de menu especificado estará visível quando o
menu contextual do Flash Player for exibido. Por padrão, essa propriedade é true.
376
Capítulo 12: Dicionário do ActionScript
continue
Disponibilidade
Flash Player 4.
Uso
continue
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Comando; aparece em vários tipos de comandos de loop; em cada um dos tipos tem um
comportamento diferente.
Em um loop while, continue faz o interpretador do Flash ignorar o resto do corpo do loop e
saltar para o início do loop, onde a condição é testada.
Em um loop do...while, continue faz o interpretador do Flash ignorar o resto do corpo do
loop e saltar para o fim do loop, onde a condição é testada.
Em um loop for, continue faz o interpretador do Flash ignorar o resto do corpo do loop e saltar
para a avaliação da pós-expressão for do loop.
Em um loop for...in, continue faz o interpretador do Flash ignorar o resto do corpo do loop e
voltar ao início do loop, onde o próximo valor na enumeração é processado.
Consulte também
do while, for, for..in, while
Classe CustomActions
Disponibilidade
Flash Player 6.
Descrição
Os métodos da classe CustomActions permitem que um arquivo SWF que esteja sendo executado
na ferramenta de criação do Flash gerencie quaisquer ações personalizadas que estejam registradas
com a ferramenta de criação. Um SWF pode instalar e desinstalar ações personalizadas, recuperar
a definição XML de uma ação personalizada e recuperar a lista de ações personalizadas registradas.
Use esses métodos para montar SWFs que sejam extensões da ferramenta de criação do Flash.
Uma extensão como essa poderia, por exemplo, usar o protocolo do aplicativo Flash para navegar
em um repositório UDDI e fazer download de serviços da Web na caixa de ferramentas Actions
(Ações).
Classe CustomActions
377
Resumo de métodos da classe CustomActions
Método
Descrição
CustomActions.get()
Lê o conteúdo de um arquivo de definição XML de ações
personalizadas.
CustomActions.install()
Instala um novo arquivo de definição XML de ações personalizadas.
CustomActions.list()
Retorna uma lista de todas as ações personalizadas registradas.
CustomActions.uninstall()
Remove um arquivo de definição XML de ações personalizadas.
CustomActions.get()
Disponibilidade
Flash Player 6.
Uso
CustomActions.get(customActionsName)
Parâmetros
customActionsName
O nome da definição de ações personalizadas a ser recuperada.
Retorna
Se a definição XML de ações personalizadas for localizada, retornará uma seqüência de caracteres;
do contrário, retornará undefined.
Descrição
Método; lê o conteúdo do arquivo de definição XML de ações personalizadas denominado
customActionsName.
O nome do arquivo de definições deve ser simples, sem a extensão de arquivo .xml e sem qualquer
separador de diretório (':', '/' ou '\').
Se o arquivo de definições especificado por customActionsName não puder ser encontrado,
será retornado o valor undefined. Se a definição XML de ações personalizadas especificada pelo
parâmetro customActionsName for localizada, ela será lida por inteiro e retornada como uma
seqüência de caracteres.
378
Capítulo 12: Dicionário do ActionScript
CustomActions.install()
Disponibilidade
Flash Player 6.
Uso
CustomActions.install(customActionsName, customXMLDefinition)
Parâmetros
customActionsName
O nome da definição de ações personalizadas a ser instalada.
customXMLDefinition
O texto da definição XML a ser instalada.
Retorna
Um valor booleano.
Descrição
Método; instala um novo arquivo de definição XML de ações personalizadas indicado pelo
parâmetro customActionsName. O conteúdo do arquivo é especificado pela seqüência de
caracteres customXMLDefinition.
O nome do arquivo de definições deve ser simples, sem a extensão de arquivo .xml e sem qualquer
separador de diretório (':', '/' ou '\').
Se já existir um arquivo de ações personalizadas com o nome customActionsName, ele será
substituído.
Se ocorrer um erro durante a instalação, será retornado o valor false; caso contrário, será
retornado o valor true para indicar que a ação personalizada foi instalada com êxito.
Se o diretório Configuração/ActionsPanel/CustomActions for inexistente quando esse método for
chamado, então o diretório será criado.
CustomActions.list()
Disponibilidade
Flash Player 6.
Uso
CustomActions.list()
Parâmetros
Nenhum.
Retorna
Uma matriz.
Descrição
Método; retorna um objeto Array que contém os nomes de todas as ações personalizadas
registradas na ferramenta de criação do Flash. Os elementos do array são nomes simples, sem a
extensão de arquivo .xml e sem nenhum separador de diretório (por exemplo, “:”, “/” ou “\”).
Se não houver ações personalizadas registradas, list() retornará um array de tamanho zero.
Se ocorrer um erro, list() retornará o valor undefined.
CustomActions.list()
379
CustomActions.uninstall()
Disponibilidade
Flash Player 6.
Uso
CustomActions.uninstall(customActionsName)
Parâmetros
customActionsName
O nome da definição de ações personalizadas a ser desinstalada.
Retorna
Um valor booleano.
Descrição
Método; remove o arquivo de definição XML de ações personalizadas denominado
customActionsName.
O nome do arquivo de definições deve ser simples, sem a extensão de arquivo .xml e sem qualquer
separador de diretório (':', '/' ou '\').
Se não forem localizadas ações personalizadas com o nome customActionsName, será retornado o
valor false. Se a remoção das ações personalizadas for bem sucedida, será retornado o valor true.
380
Capítulo 12: Dicionário do ActionScript
Classe Date
Disponibilidade
Flash Player 5.
Descrição
A classe Date permite a recuperação dos valores de data e hora relativos à hora universal (Hora de
Greenwich, agora chamada de hora universal ou UTC) ou ao sistema operacional em que o Flash
Player está sendo executado. Os métodos da classe Date não são estáticos, mas se aplicam somente
à instância individual do objeto Date especificado quando o método é chamado. O método
Date.UTC() é uma exceção; ele é estático.
A classe Date trata do horário de verão de modo diferente, de acordo com o sistema operacional
usado e com a versão do Flash Player. O Flash Player 6 e as versões posteriores gerenciam o
horário de verão nos sistemas operacionais a seguir das seguintes maneiras:
• Windows—a saída do objeto Date é ajustada automaticamente para o horário de verão.
•
O objeto Date detecta se o horário de verão está em vigor no local atual. Em caso positivo,
ele detecta a data e hora da transição do horário padrão para o horário de verão. Contudo,
as datas de mudança atualmente em vigor são aplicadas a datas passadas e futuras, sendo assim,
as diferenças de horário de verão podem ser calculadas de forma errada em datas passadas
quando o local tiver datas de mudança diferentes.
Mac OS X—o objeto Date ajusta automaticamente a saída para horário de verão. No Mac OS
X, o banco de dados com as informações de fuso horário é usado para determinar se a diferença
de horário de verão deve ser aplicada a alguma data ou hora atual ou passada.
O Flash Player 5 gerencia o horário de verão nestes sistemas operacionais da seguinte maneira:
• Windows—as regras americanas para o horário de verão são sempre aplicadas, o que leva a
mudanças incorretas nos países da Europa e de outras regiões que adotam o horário de verão
com horas de transição diferentes das dos Estados Unidos. O Flash detecta corretamente se o
horário de verão está em vigor no local atual.
Para chamar os métodos da classe Date, é necessário criar primeiro um objeto Date usando o
construtor para a classe Date, descrito posteriormente nesta seção.
Classe Date
381
Resumo de métodos da classe Date
382
Método
Descrição
Date.getDate()
Retorna o dia do mês de acordo com a hora local.
Date.getDay()
Retorna o dia da semana de acordo com a hora local.
Date.getFullYear()
Retorna o ano com quatro dígitos de acordo com a hora local.
Date.getHours()
Retorna a hora de acordo com a hora local.
Date.getMilliseconds()
Retorna os milissegundos de acordo com a hora local.
Date.getMinutes()
Retorna os minutos de acordo com a hora local.
Date.getMonth()
Retorna o mês de acordo com a hora local.
Date.getSeconds()
Retorna os segundos de acordo com a hora local.
Date.getTime()
Retorna o número de milissegundos desde a meia-noite de 1º de
janeiro de 1970, hora universal.
Date.getTimezoneOffset()
Retorna a diferença, em minutos, entre o a hora local do computador
e a hora universal.
Date.getUTCDate()
Retorna o dia (data) do mês de acordo com a hora universal.
Date.getUTCDay()
Retorna o dia da semana de acordo com a hora universal.
Date.getUTCFullYear()
Retorna o ano com quatro dígitos de acordo com a hora universal.
Date.getUTCHours()
Retorna a hora de acordo com a hora universal.
Date.getUTCMilliseconds()
Retorna os milissegundos de acordo com a hora universal.
Date.getUTCMinutes()
Retorna os minutos de acordo com a hora universal.
Date.getUTCMonth()
Retorna o mês de acordo com a hora universal.
Date.getUTCSeconds()
Retorna os segundos de acordo com a hora universal.
Date.getYear()
Retorna o ano de acordo com a hora local.
Date.setDate()
Define o dia do mês de acordo com a hora local. Retorna a nova hora
em milissegundos.
Date.setFullYear()
Define o ano completo de acordo com a hora local. Retorna a nova
hora em milissegundos.
Date.setHours()
Define a hora de acordo com a hora local. Retorna a nova hora em
milissegundos.
Date.setMilliseconds()
Define os milissegundos de acordo com a hora local. Retorna a nova
hora em milissegundos.
Date.setMinutes()
Define os minutos de acordo com a hora local. Retorna a nova hora
em milissegundos.
Date.setMonth()
Define o mês de acordo com a hora local. Retorna a nova hora em
milissegundos.
Date.setSeconds()
Define os segundos de acordo com a hora local. Retorna a nova hora
em milissegundos.
Capítulo 12: Dicionário do ActionScript
Método
Descrição
Date.setTime()
Define a data em milissegundos. Retorna a nova hora em
milissegundos.
Date.setUTCDate()
Define a data de acordo com a hora universal. Retorna a nova hora
em milissegundos.
Date.setUTCFullYear()
Define o ano de acordo com a hora universal. Retorna a nova hora em
milissegundos.
Date.setUTCHours()
Define a hora de acordo com a hora universal. Retorna a nova hora
em milissegundos.
Date.setUTCMilliseconds()
Define os milissegundos de acordo com a hora universal. Retorna a
nova hora em milissegundos.
Date.setUTCMinutes()
Define os minutos de acordo com a hora universal. Retorna a nova
hora em milissegundos.
Date.setUTCMonth()
Define o mês de acordo com a hora universal. Retorna a nova hora
em milissegundos.
Date.setUTCSeconds()
Define os segundos de acordo com a hora universal. Retorna a nova
hora em milissegundos.
Date.setYear()
Define o ano de acordo com a hora local.
Date.toString()
Retorna uma seqüência de caracteres representando a data e a hora
armazenadas no objeto Date especificado.
Date.UTC()
Retorna o número de milissegundos entre a meia-noite de 1º de
janeiro de 1970, hora universal, e a hora especificada.
Construtor da classe Date
Disponibilidade
Flash Player 5.
Uso
new Date()
new Date(ano [, mês [, data [, hora [, minutos [, segundos [, milissegundos
]]]]])
Classe Date
383
Parâmetros
ano
Um valor de 0 a 99 indica 1900 a 1999; caso contrário, especifique todos os 4 dígitos do
ano.
mês
Um inteiro entre 0 (janeiro) e 11 (dezembro).
data
Um inteiro de 1 a 31. Este parâmetro é opcional.
hora
Um inteiro entre 0 (meia-noite) e 23 (11 p.m.).
minuto
segundo
Um inteiro de 0 a 59. Este parâmetro é opcional.
Um inteiro de 0 a 59. Este parâmetro é opcional.
milissegundo
Um inteiro de 0 a 999. Este parâmetro é opcional.
Retorna
Nada.
Descrição
Objeto; constrói um objeto new Date que mantém a data e hora atuais ou a data especificada.
Exemplo
O exemplo a seguir recupera a data e hora atuais.
data_agora = new Date();
O exemplo a seguir cria um novo objeto Date para o dia de nascimento de Beto, 12 de agosto de
1974. Como o parâmetro mês começa em zero, o exemplo usa 7 para o mês, não 8.
dataNasc_Beto = new Date (74, 7, 12);
O exemplo a seguir cria um novo objeto Date, concatena os valores retornados por
Date.getMonth(), Date.getDate() e Date.getFullYear() e exibe-os no campo de texto
especificado pela variável date_str.
data_hoje = new Date();
data_str = ((data_hoje.getMonth() + 1) + "/" + data_hoje.getDate() + "/" +
data_hoje.getFullYear());
384
Capítulo 12: Dicionário do ActionScript
Date.getDate()
Disponibilidade
Flash Player 5.
Uso
my_date.getDate()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o dia do mês (um inteiro de 1 a 31) do objeto Date especificado, de acordo com
a hora local. A hora local é determinada pelo sistema operacional em que o Flash Player está sendo
executado.
Date.getDay()
Disponibilidade
Flash Player 5.
Uso
my_date.getDay()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o dia da semana (0 para domingo, 1 para segunda-feira 1, etc.) do objeto Date
especificado, de acordo com a hora local. A hora local é determinada pelo sistema operacional em
que o Flash Player está sendo executado.
Date.getDay()
385
Date.getFullYear()
Disponibilidade
Flash Player 5.
Uso
my_date.getFullYear()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o ano completo (um número de quatro dígitos, por exemplo, 2000) do objeto
Date especificado, de acordo com a hora local. A hora local é determinada pelo sistema
operacional em que o Flash Player está sendo executado.
Exemplo
O exemplo a seguir usa o construtor para criar um novo objeto Date e enviar o valor retornado
pelo método getFullYear() para o painel Output (Saída):
data = new Date();
trace(data.getFullYear());
Date.getHours()
Disponibilidade
Flash Player 5.
Uso
my_date.getHours()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna a hora (um inteiro de 0 a 23) do objeto Date especificado, de acordo com a hora
local. A hora local é determinada pelo sistema operacional em que o Flash Player está sendo
executado.
386
Capítulo 12: Dicionário do ActionScript
Date.getMilliseconds()
Disponibilidade
Flash Player 5.
Uso
my_date.getMilliseconds()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna os milissegundos (um inteiro de 0 a 999) do objeto Date especificado, de acordo
com a hora local. A hora local é determinada pelo sistema operacional em que o Flash Player está
sendo executado.
Date.getMinutes()
Disponibilidade
Flash Player 5.
Uso
my_date.getMinutes()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna os minutos (um inteiro de 0 a 59) do objeto Date especificado, de acordo com a
hora local. A hora local é determinada pelo sistema operacional em que o Flash Player está sendo
executado.
Date.getMinutes()
387
Date.getMonth()
Disponibilidade
Flash Player 5.
Uso
my_date.getMonth()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o mês (0 para janeiro, 1 para fevereiro, etc.) do objeto Date especificado,
de acordo com a hora local. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
Date.getSeconds()
Disponibilidade
Flash Player 5.
Uso
my_date.getSeconds()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna os segundos (um inteiro de 0 a 59) do objeto Date especificado, de acordo com a
hora local. A hora local é determinada pelo sistema operacional em que o Flash Player está sendo
executado.
388
Capítulo 12: Dicionário do ActionScript
Date.getTime()
Disponibilidade
Flash Player 5.
Uso
my_date.getTime()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o número de milissegundos desde a meia-noite de 1º de janeiro de 1970,
hora universal, do objeto Date especificado. Use este método para representar um instante
específico no tempo quando comparar dois ou mais objetos Date.
Date.getTimezoneOffset()
Disponibilidade
Flash Player 5.
Uso
my_date.getTimezoneOffset()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna a diferença, em minutos, entre a hora local do computador e a hora universal.
Exemplo
O exemplo a seguir retorna a diferença entre o horário de verão de São Francisco e a hora
universal. O horário de verão será incluído no resultado apresentado somente se a data definida
no objeto Date constar do período do horário de verão.
trace(new Date().getTimezoneOffset());
// o valor 420 é apresentado no painel Output (Saída)
// (7 horas * 60 minutos/hora = 420 minutos)
// Este é um exemplo de horário de verão do Pacífico (PDT (Pacific Daylight
Time) GMT-0700).
// O resultado varia em função do local e da hora do ano.
Date.getTimezoneOffset()
389
Date.getUTCDate()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCDate()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o dia do mês (um inteiro de 1 a 31) do objeto Date especificado, de acordo com
a hora universal.
Date.getUTCDay()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCDay()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o dia da semana (0 para domingo, 1 para segunda-feira 1, etc.) do objeto Date
especificado, de acordo com a hora universal.
390
Capítulo 12: Dicionário do ActionScript
Date.getUTCFullYear()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCFullYear()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o ano com quatro dígitos do objeto Date especificado, de acordo com a
hora universal.
Date.getUTCHours()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCHours()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna a hora do objeto Date especificado, de acordo com a hora universal.
Date.getUTCHours()
391
Date.getUTCMilliseconds()
Disponibilidade
Flash Player 5.
Uso
minha_data.getUTCMilliseconds()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna os milissegundos do objeto Date especificado, de acordo com a hora universal.
Date.getUTCMinutes()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCMinutes()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna os minutos do objeto Date especificado, de acordo com a hora universal.
392
Capítulo 12: Dicionário do ActionScript
Date.getUTCMonth()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCMonth()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o mês (0 para janeiro, 1 para fevereiro e assim por diante) do objeto Date
especificado, de acordo com a hora universal.
Date.getUTCSeconds()
Disponibilidade
Flash Player 5.
Uso
my_date.getUTCSeconds()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna os segundos do objeto Date especificado, de acordo com a hora universal.
Date.getUTCSeconds()
393
Date.getYear()
Disponibilidade
Flash Player 5.
Uso
my_date.getYear()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna o ano do objeto Date especificado, de acordo com a hora local. A hora local é
determinada pelo sistema operacional em que o Flash Player está sendo executado. O ano é o ano
completo menos 1900. Por exemplo, o ano 2000 é representado como 100.
Consulte também
Date.getFullYear()
Date.setDate()
Disponibilidade
Flash Player 5.
Uso
my_date.setDate(dia)
Parâmetros
data
Um inteiro de 1 a 31.
Retorna
Um inteiro.
Descrição
Método; define o dia do mês do objeto Date especificado, de acordo com a hora local, e retorna a
nova hora em milissegundos. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
394
Capítulo 12: Dicionário do ActionScript
Date.setFullYear()
Disponibilidade
Flash Player 5.
Uso
my_Date.setFullYear(ano [, mês [, dia]] )
Parâmetros
Um número de quatro dígitos que especifica um ano. Números de dois dígitos não
representam anos; por exemplo, 99 não é o ano 1999, mas o ano 99.
ano
mês
Um inteiro entre 0 (janeiro) e 11 (dezembro). Este parâmetro é opcional.
dia
Um inteiro de 1 a 31. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define o ano do objeto Date especificado, de acordo com a hora local, e retorna a nova
hora em milissegundos. Se os parâmetros mês e dia forem especificados, esses também serão
definidos para a hora local. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
Quando este método é chamado, os outros campos do objeto Date especificado não são
modificados, mas Date.getUTCDay() Date.getUTCDay() e Date.getDay() Date.getDay()
podem retornar um novo valor se o dia da semana for alterado como resultado da chamada
desse método.
Date.setHours()
Disponibilidade
Flash Player 5.
Uso
my_date.setHours(horas)
Parâmetros
hora
Um inteiro entre 0 (meia-noite) e 23 (11 p.m.).
Retorna
Um inteiro.
Descrição
Método; define as horas do objeto Date especificado, de acordo com a hora local, e retorna a nova
hora em milissegundos. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
Date.setHours()
395
Date.setMilliseconds()
Disponibilidade
Flash Player 5.
Uso
my_date.setMilliseconds(milissegundos)
Parâmetros
milissegundos
Um inteiro de 0 a 999.
Retorna
Um inteiro.
Descrição
Método; define os milissegundos do objeto Date especificado, de acordo com a hora local,
e retorna a nova hora em milissegundos. A hora local é determinada pelo sistema operacional em
que o Flash Player está sendo executado.
Date.setMinutes()
Disponibilidade
Flash Player 5.
Uso
my_date.setMinutes(minutos)
Parâmetros
minutos
Um inteiro de 0 a 59.
Retorna
Um inteiro.
Descrição
Método; define os minutos do objeto Date especificado, de acordo com a hora local, e retorna a
nova hora em milissegundos. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
396
Capítulo 12: Dicionário do ActionScript
Date.setMonth()
Disponibilidade
Flash Player 5.
Uso
my_Date.setMonth(mês [, dia ])
Parâmetros
mês
Um inteiro entre 0 (janeiro) e 11 (dezembro).
dia
Um inteiro de 1 a 31. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define o mês do objeto Date especificado, de acordo com a hora local, e retorna a nova
hora em milissegundos. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
Date.setSeconds()
Disponibilidade
Flash Player 5.
Uso
my_date.setSeconds(segundos)
Parâmetros
segundos
Um inteiro de 0 a 59.
Retorna
Um inteiro.
Descrição
Método; define os segundos do objeto Date especificado, de acordo com a hora local, e retorna a
nova hora em milissegundos. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
Date.setSeconds()
397
Date.setTime()
Disponibilidade
Flash Player 5.
Uso
my_date.setTime(milissegundos)
Parâmetros
milissegundos
Um valor inteiro onde 0 representa 0:00 GMT de 1º jan. 1970.
Retorna
Um inteiro.
Descrição
Método; define a data do objeto Date especificado, em milissegundos, desde a meia-noite de 1º
de janeiro de 1970, e retorna a nova hora em milissegundos.
Date.setUTCDate()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCDate(dia)
Parâmetros
dia
Um inteiro de 1 a 31.
Retorna
Um inteiro.
Descrição
Método; define a data do objeto Date especificado, de acordo com a hora universal, e retorna a
nova hora em milissegundos. Quando este método é chamado, os outros campos do objeto Date
especificado não são modificados, mas Date.getUTCDay() e Date.getDay() podem retornar um
novo valor se o dia da semana for alterado como resultado da chamada desse método.
398
Capítulo 12: Dicionário do ActionScript
Date.setUTCFullYear()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCFullYear(ano [, mês [, dia]] )
Parâmetros
ano
O ano especificado com quatro dígitos completos; por exemplo, 2000.
mês
Um inteiro entre 0 (janeiro) e 11 (dezembro). Este parâmetro é opcional.
dia
Um inteiro de 1 a 31. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define o ano do objeto Date especificado (my_date), de acordo com a hora universal,
e retorna a nova hora em milissegundos.
Opcionalmente, este método também pode definir o mês e a data representados pelo objeto Date
especificado. Quando este método é chamado, os outros campos do objeto Date especificado não
são modificados, mas Date.getUTCDay() e Date.getDay() podem retornar um novo valor se o
dia da semana for alterado como resultado da chamada desse método.
Date.setUTCHours()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCHours(horas [, minutos [, segundos [, milissegundos]]])
Parâmetros
horas
Um inteiro entre 0 (meia-noite) e 23 (11 p.m.).
minutos
Um inteiro de 0 a 59. Este parâmetro é opcional.
segundos
Um inteiro de 0 a 59. Este parâmetro é opcional.
milissegundos
Um inteiro de 0 a 999. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define a hora do objeto Date especificado, de acordo com a hora universal, e retorna a
nova hora em milissegundos.
Date.setUTCHours()
399
Date.setUTCMilliseconds()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCMilliseconds(milissegundos)
Parâmetros
milissegundos
Um inteiro de 0 a 999.
Retorna
Um inteiro.
Descrição
Método; define os milissegundos do objeto Date especificado, de acordo com a hora universal,
e retorna a nova hora em milissegundos.
Date.setUTCMinutes()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCMinutes(minutos [, segundos [, milissegundos]])
Parâmetros
minutos
Um inteiro de 0 a 59.
segundo
Um inteiro de 0 a 59. Este parâmetro é opcional.
milissegundo
Um inteiro de 0 a 999. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define os minutos do objeto Date especificado, de acordo com a hora universal, e retorna
a nova hora em milissegundos.
400
Capítulo 12: Dicionário do ActionScript
Date.setUTCMonth()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCMonth(mês [, dia])
Parâmetros
mês
Um inteiro entre 0 (janeiro) e 11 (dezembro).
dia
Um inteiro de 1 a 31. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define o mês e, opcionalmente, o dia (data), do objeto Date especificado, de acordo
com a hora universal, e retorna a nova hora em milissegundos. Quando este método é chamado,
os outros campos do objeto Date especificado não são modificados, mas Date.getUTCDay() e
Date.getDay() podem retornar um novo valor se o dia da semana for alterado como resultado da
especificação de um valor para o parâmetro dia.
Date.setUTCSeconds()
Disponibilidade
Flash Player 5.
Uso
my_date.setUTCSeconds(segundos [, milissegundos]))
Parâmetros
segundos
Um inteiro de 0 a 59.
milissegundos
Um inteiro de 0 a 999. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; define os segundos do objeto Date especificado, de acordo com a hora universal,
e retorna a nova hora em milissegundos.
Date.setUTCSeconds()
401
Date.setYear()
Disponibilidade
Flash Player 5.
Uso
my_date.setYear(ano)
Parâmetros
Se ano for um número inteiro entre 0–99, setYear definirá o ano como 1900 + ano;
caso contrário, o ano será o valor do parâmetro ano.
ano
Retorna
Um inteiro.
Descrição
Método; define o ano do objeto Date especificado, de acordo com a hora local, e retorna a nova
hora em milissegundos. A hora local é determinada pelo sistema operacional em que o Flash
Player está sendo executado.
Date.toString()
Disponibilidade
Flash Player 5.
Uso
my_date.toString()
Parâmetros
Nenhum.
Retorna
Uma seqüência de caracteres.
Descrição
Método; retorna, em um formato legível, o valor de uma seqüência de caracteres do objeto Date
especificado, e retorna a nova hora em milissegundos.
Exemplo
O exemplo a seguir retorna as informações no objeto Date dataNasc_date como uma seqüência
de caracteres.
var dataNasc_date = new Date(74, 7, 12, 18, 15);
trace (dataNasc_date.toString());
Saída (para Hora padrão do Pacífico):
Seg Ago 12 18:15:00 GMT-0700 1974
402
Capítulo 12: Dicionário do ActionScript
Date.UTC()
Disponibilidade
Flash Player 5.
Uso
Date.UTC(ano, mês [, data [, hora [, minutos [, segundos [, milissegundos
]]]]]);
Parâmetros
ano
Um número de quatro dígitos; por exemplo, 2000.
mês
Um inteiro entre 0 (janeiro) e 11 (dezembro).
data
Um inteiro de 1 a 31. Este parâmetro é opcional.
hora
Um inteiro entre 0 (meia-noite) e 23 (11 p.m.).
minutos
Um inteiro de 0 a 59. Este parâmetro é opcional.
segundos
Um inteiro de 0 a 59. Este parâmetro é opcional.
milissegundos
Um inteiro de 0 a 999. Este parâmetro é opcional.
Retorna
Um inteiro.
Descrição
Método; retorna o número de milissegundos entre a meia-noite de 1º de janeiro de 1970,
hora universal, e a hora especificada nos parâmetros. Este é um método estático chamado pelo
construtor do objeto Date, não por um objeto Date específico. Este método permite criar um
objeto Date que assuma uma hora universal, enquanto o construtor de Date assume a hora local.
Exemplo
O exemplo a seguir cria um novo objeto Date dataNasc_Beto, definido de acordo com a hora
universal. Esta é a variação de hora universal do exemplo usado para o método construtor new
Date:
DataNasc_Beto = new Date(Date.UTC(1974, 7, 12));
Date.UTC()
403
default
Disponibilidade
Flash Player 6.
Uso
default: comandos
Parâmetros
comandos
Qualquer comando.
Retorna
Nada.
Descrição
Comando; define o caso padrão de uma ação switch. Os comandos serão executados se o
parâmetro expressão da ação switch for diferente (usando a igualdade estrita) de todos os
parâmetros expressão que seguem as palavras-chaves de case de uma ação switch.
Para ter um case default, não é necessária uma ação switch. Um case default não precisa ser o
último da lista. O uso de uma ação default fora de uma ação switch representa um erro e o
script não é compilado.
Exemplo
No exemplo a seguir, a expressão A é diferente das expressões B e D, portanto, o comando que
segue a palavra-chave default é executado e a ação trace() é enviada para o painel Output
(Saída).
switch ( A ) {
case B:
C;
break;
case D:
E;
break;
default:
trace ("não foi encontrado nenhum caso específico");
}
Consulte também
switch, case, break
404
Capítulo 12: Dicionário do ActionScript
delete
Disponibilidade
Flash Player 5.
Uso
delete referência
Parâmetros
referência
O nome da variável ou do objeto a ser eliminado.
Retorna
Nada.
Descrição
Operador; elimina o objeto ou a variável especificada pelo parâmetro referência e retorna true
se o objeto for excluído com êxito; do contrário, retorna false. Este operador é útil para liberar
memória usada pelos scripts. Embora delete seja um operador, normalmente ele é usado como
um comando, como no exemplo a seguir:
delete x;
O operador delete pode falhar e retornar false se o parâmetro de referência não existir ou
não puder ser excluído. Objetos e propriedades predefinidos e variáveis declaradas com var não
podem ser excluídas. Não é possível usar o operador delete para remover clipes de filme.
Exemplo
O exemplo a seguir cria um objeto, usa-o e o exclui quando não for mais necessário.
account = new Object();
account.name = 'Jon';
account.balance = 10000;
delete account;
Exemplo
O exemplo a seguir exclui uma propriedade de um objeto.
// cria um novo objeto "account"
account = new Object();
// atribui nome de propriedade a account
account.name = 'Jon';
// exclui a propriedade
delete account.name;
delete
405
Exemplo
O exemplo a seguir é outro exemplo de exclusão da propriedade de um objeto.
// cria um objeto Array com tamanho 0
meu_array = new Array();
// adiciona um elemento ao array. A propriedade Array.length agora vale 1
my_array[0] = "abc";
// adiciona outro elemento ao array. A propriedade Array.length agora vale 2
my_array[1] = "def";
// adiciona outro elemento ao array. A propriedade Array.length agora vale 3
my_array[2] = "ghi";
// my_array[2] será excluído, mas Array.length não é alterado
delete array[2];
trace(my_array.length);
O exemplo a seguir ilustra o comportamento de delete em referências de objetos.
// cria um novo objeto e atribui a variável ref1
// para fazer referência ao objeto
ref1 = new Object();
ref1.name = "Jody";
// copia a variável de referência para uma nova variável
// e exclui ref1
ref2 = ref1;
delete ref1;
Se ref1 não tivesse sido copiada para ref2, o objeto teria sido excluído durante a exclusão de
ref1, pois não haveria referências. Se ref2 for excluído, não haverá mais referências ao objeto;
ele será eliminado e a memória que estava sendo usada ficará disponível.
Consulte também
var
406
Capítulo 12: Dicionário do ActionScript
do while
Disponibilidade
Flash Player 4.
Uso
do {
comando(s)
} while (condição)
Parâmetros
condição
A condição a ser avaliada.
comando(s) O(s) comando(s) a ser(em) executado(s) desde que o parâmetro condição seja
avaliado como true.
Retorna
Nada.
Descrição
Comando; executa os comandos e, a seguir, avalia a condição do loop, repetindo enquanto a
condição for true.
Consulte também
break, continue
do while
407
duplicateMovieClip()
Disponibilidade
Flash Player 4.
Uso
duplicateMovieClip(destino, novonome, profundidade)
Parâmetros
destino
novonome
O caminho de destino do clipe de filme a ser duplicado.
Um identificador exclusivo do clipe de filme duplicado.
Um nível de profundidade exclusivo para o clipe de filme duplicado. O nível de
profundidade é uma ordem de empilhamento para os clipes de filmes duplicados. Essa ordem de
empilhamento é muito parecida com a ordem de empilhamento das camadas na Linha de tempo;
os clipes de filmes com um nível de profundidade inferior ficam ocultos abaixo de clipes com uma
ordem de empilhamento superior. Deve-se atribuir um nível de profundidade exclusivo para cada
clipe de filme duplicado, para evitar que ele substitua arquivos SWF em níveis ocupados.
profundidade
Retorna
Nada.
Descrição
Função; cria uma instância de um clipe de filme durante a reprodução do SWF. A reprodução em
clipes de filme duplicados sempre começa pelo Quadro 1, independente da posição da reprodução
no clipe de filme original (ou “pai”). As variáveis no clipe de filme pai não são copiadas para o
clipe de filme duplicado. Se o clipe de filme pai for excluído, o clipe de filme duplicado também o
será. Use a ação ou método removeMovieClip() para excluir uma instância de clipe de filme
criada com duplicateMovieClip().
Exemplo
Este comando duplica a instância do clipe de filme flower dez vezes. A variável i é usada para
criar um novo nome de instância e uma profundidade exclusiva para cada clipe de filme
duplicado.
on (release) {
amount = 10;
while (amount > 0) {
duplicateMovieClip (_root.flower, "mc"+i, i);
setProperty ("mc"+i, _x, random(275));
setProperty ("mc"+i, _y, random(275));
setProperty ("mc"+i, _alpha, random(275));
setProperty ("mc"+i, _xscale, random(50));
setProperty ("mc"+i, _yscale, random(50));
i++;
amount--;
}
}
Consulte também
MovieClip.duplicateMovieClip(), removeMovieClip(), MovieClip.removeMovieClip()
408
Capítulo 12: Dicionário do ActionScript
dynamic
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
dynamic class nome_classe [ extends nome_classe] {}
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA. Essa palavrachave é suportada somente quando usada em arquivos de scripts externos, não em scripts escritos
no painel Actions (Ações).
Descrição
Aplique a palavra-chave dynamic a definições de classes para indicar quais instâncias da classe
podem adicionar e acessar propriedades dinâmicas em tempo de execução. A verificação de tipos
nessas classes é mais tolerante, pois os membros acessados dentro da definição de classe e nas
instâncias das classes não são comparados aos definidos no escopo da classe. Entretanto, os tipos
de retorno e os parâmetros das funções que são membros das classes ainda podem ter verificados.
Esse comportamento é especialmente útil ao trabalhar com objetos MovieClip, onde há muitas
maneiras diferentes de adicionar propriedades e objetos a um clipe de filme dinamicamente, tais
como MovieClip.createEmptyMovieClip() e MovieClip.createTextField(). Para obter
mais informações, consulte “Criando classes dinâmicas” na página 178.
Exemplo
No exemplo a seguir, a classe B foi marcada como dinâmica, assim, chamar uma função não
declarada na mesma não causará um erro no tempo de compilação.
dynamic class B extends A
{
function B() {/*este é o construtor*/}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
Consulte também
class
dynamic
409
else
Disponibilidade
Flash Player 4.
Uso
if (condição){
comandos(s);
} else (condição){
comandos(s);
}
Parâmetros
condição
Uma expressão que seja avaliada como true ou false.
comando(s)
comando if
Uma série alternativa de comandos a ser executada se a condição especificada no
for false.
Retorna
Nada.
Descrição
Comando; especifica os comandos a serem executados se a condição no comando if retornar
false.
Consulte também
if
410
Capítulo 12: Dicionário do ActionScript
else if
Disponibilidade
Flash Player 4.
Uso
if (condição){
comandos(s);
} else if (condição){
comandos(s);
}
Parâmetros
condição
Uma expressão que seja avaliada como true ou false.
comando(s)
comando if
Uma série alternativa de comandos a ser executada se a condição especificada no
for false.
Retorna
Nada.
Descrição
Comando; se a condição no comando if inicial retornar false avalia a condição e especifica os
comandos a serem executados. Se a condição else if retornar true, o interpretador Flash
executará os comandos que seguem a condição entre chaves ({}). Se a condição else if for
false, o Flash ignorará os comandos entre chaves e executará os comandos após as chaves. Use a
ação else if para criar uma lógica ramificada em seus scripts.
Exemplo
O exemplo seguinte faz uso de ações else if para verificar se cada lado de um objeto está dentro
de um limite específico.
// se o objeto ultrapassar os limites,
// mande-o de volta e inverta a velocidade de percurso
if (this._x>rightBound) {
this._x = rightBound;
xInc = -xInc;
} else if (this._x<leftBound) {
this._x = leftBound;
xInc = -xInc;
} else if (this._y>bottomBound) {
this._y = bottomBound;
yInc = -yInc;
} else if (this._y<topBound) {
this._y = topBound;
yInc = -yInc;
}
Consulte também
if
else if
411
#endinitclip
Disponibilidade
Flash Player 6.
Uso
#endinitclip
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Diretiva do compilador; indica o término de um bloco de ações de inicialização.
Exemplo
#initclip
...ações de inicialização entram aqui...
#endinitclip
Consulte também
#initclip
eq (igual — específico de seqüência de caracteres)
Disponibilidade
Flash Player 4. Este operador foi substituído no Flash 5 pelo operador == (igualdade).
Uso
expressão1 eq expressão2
Parâmetros
expression1,expression2
Números, seqüências de caracteres ou variáveis.
Retorna
Nada.
Descrição
Operador de comparação; avalia se duas expressões são iguais e retorna o valor true se a
representação da seqüência de caracteres da expressão1 for igual à representação da seqüência de
caracteres da expressão2; caso contrário, a operação retorna o valor false.
Consulte também
== (igualdade)
412
Capítulo 12: Dicionário do ActionScript
Classe Error
Disponibilidade
Flash Player 7.
Descrição
Contém informações sobre um erro que ocorreu em um script. É possível criar um objeto Error
usando a função construtora Error. Geralmente, um novo objeto Error é "lançado" a partir do
interior de um bloco de código try{} e depois é "capturado" por um bloco de código catch{}
ou finally{}.
É possível também criar uma subclasse da classe Error e lançar instâncias dessa subclasse.
Resumo de métodos da classe Error
Método
Descrição
Error.toString()
Retorna a representação da seqüência de caracteres do objeto Error.
Resumo de propriedades da classe Error
Propriedade
Descrição
Error.message
Uma seqüência de caracteres que contém uma mensagem de erro
associada a um erro.
Error.name
Uma seqüência de caracteres que contém o nome do objeto Error.
Construtor da classe Error
Disponibilidade
Flash Player 7.
Uso
new Error([mensagem])
Parâmetros
mensagem
Uma seqüência de caracteres associada ao objeto Error; este parâmetro é opcional.
Retorna
Nada.
Descrição
Construtor; cria uma nova instância do objeto Error. Se mensagem for especificada, seu valor será
atribuído à propriedade Error.message do objeto.
Classe Error
413
Exemplo
No exemplo a seguir, uma função lança um erro (com uma mensagem especificada) se as duas
seqüências de caracteres passadas para ela não forem idênticas.
function compareStrings(string_1, string_2) {
if(string_1 != string_2) {
throw new Error("Strings não coincidem.");
}
}
try {
compareStrings("Cão","cão");
} catch (e) {
trace(e.toString());
}
Consulte também
throw, try..catch..finally
Error.message
Disponibilidade
Flash Player 7.
Uso
myError.message
Descrição
Propriedade; contém a mensagem associada ao objeto Error. O valor padrão desta propriedade é
"Error". É possível dar um valor para a propriedade message ao criar um novo objeto Error,
passando a seqüência de caracteres de erro para a função construtora Error.
Consulte também
throw, try..catch..finally
Error.name
Disponibilidade
Flash Player 7.
Uso
myError.name
Descrição
Propriedade; contém o nome do objeto Error. O valor padrão desta propriedade é "Error".
Consulte também
throw, try..catch..finally
414
Capítulo 12: Dicionário do ActionScript
Error.toString()
Disponibilidade
Flash Player 7.
Uso
my_err.toString()
Retorna
Uma seqüência de caracteres.
Descrição
Método; retorna a seqüência de caracteres "Error" por padrão ou o valor contido em
Error.message, se definido.
Consulte também
Error.message, throw, try..catch..finally
escape
Disponibilidade
Flash Player 5.
Uso
escape(expressão)
Parâmetros
expressão
A expressão a ser convertida em seqüência de caracteres e codificada em formato
de URL.
Retorna
Nada.
Descrição
Função; converte o parâmetro em uma seqüência de caracteres e o codifica em formato de URL,
onde todos os caracteres que não são alfanuméricos são substituídos por seqüências hexadecimais
de %.
Exemplo
A execução do código a seguir apresenta o resultado Oi%7B%5BMundo%5D%7D.
escape("Oi{[Mundo]}");
Consulte também
unescape
escape
415
eval()
Disponibilidade
Flash Player 5 ou posterior com funcionalidade completa. Você pode usar a função eval() ao
exportar para o Flash Player 4, mas deve usar a notação de barra e só pode acessar variáveis,
mas não propriedades ou objetos.
Uso
eval(expressão)
Parâmetros
expressão Uma seqüência de caracteres que contém o nome de uma variável, propriedade,
objeto ou clipe de filme a ser recuperado.
Retorna
Nada.
Descrição
Função; acessa variáveis, propriedades, objetos ou clipes de filmes por nome. Se expressão for
uma variável ou propriedade, será retornado o valor da variável ou propriedade. Se expressão for
um objeto ou clipe de filme, será retornada uma referência ao objeto ou clipe de filme. Se não for
possível encontrar o elemento citado na expressão, será retornado o valor undefined.
No Flash 4, eval() era usada para simular arrays; no Flash 5 ou posterior, recomenda-se o uso da
classe Array para esse fim.
No Flash 4, também é possível usar eval() para definir e recuperar de forma dinâmica o valor de
uma variável ou um nome de instância. Porém, também é possível fazer isso através do operador
de acesso a matrizes ([]).
No Flash 5 e posteriores, não é possível usar eval() para definir e recuperar dinamicamente o
valor de uma variável ou nome de instância porque não é possível usar eval() no lado esquerdo
de uma equação. Por exemplo, substitua o código
eval ("var" + i) = "primeiro";
por este:
this["var"+i] = "primeiro"
ou este:
set ("var" + i, "primeiro");
Exemplo
O exemplo a seguir usa eval() para determinar o valor da expressão "trecho" + x. Como o
resultado é um nome de variável, trecho3, eval() retorna o valor da variável e o atribui a y:
piece3 = "perigoso";
x = 3;
y = eval("piece" + x);
trace(y);
// Saída: perigoso
416
Capítulo 12: Dicionário do ActionScript
Consulte também
Classe Array
extends
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
class nome_classe extends outro_nome_classe
interface nome_interface extends outro_nome_interface
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA. Essa palavrachave é suportada somente quando usada em arquivos de scripts externos, não em scripts escritos
no painel Actions (Ações).
Descrição
Palavra-chave; define uma classe ou interface como subclasse de outra classe ou interface; a última
é a superclasse. A subclasse herda todos os métodos, propriedades, funções e tudo o que for
definido na superclasse.
Uma classe não pode estender mais de uma classe e uma interface não pode estender mais de uma
interface.
Se você não fizer uma chamada para o superconstrutor na função construtora de uma subclasse,
uma chamada para o construtor de sua superclasse imediata sem parâmetros será
automaticamente inserida como o primeiro comando da função. Entretanto, se a superclasse
requerer parâmetros em sua definição, deve ser criado um construtor na subclasse e a superclasse
com os parâmetros necessários deve ser chamada.
Para obter mais informações, consulte “Criando subclasses” na página 167.
Exemplo
Na classe B definida abaixo, será inserida automaticamente uma chamada para o superconstrutor
da classe A, como o primeiro comando da função construtora de B, já que não existe uma
chamada nela.
class B extends class A
{
function B() { // este é o construtor
super(); // opcional; inserida durante a compilação se houver sido omitida
}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
Consulte também
class, interface
extends
417
false
Disponibilidade
Flash Player 5.
Uso
false
Descrição
Constante; um valor booleano único que representa o oposto de true.
Consulte também
true
_focusrect
Disponibilidade
Flash Player 4.
Uso
_focusrect = Booleano;
Descrição
Propriedade (global); especifica se é exibido um retângulo amarelo em volta do botão ou clipe de
filme que possui foco de teclado. O valor padrão, true, faz exibir um retângulo amarelo em volta
do botão ou clipe de filme com foco no momento quando o usuário pressiona a tecla Tab para
navegar pelos objetos em um arquivo SWF. Especifique false se você não desejar exibir o
retângulo amarelo. Essa é uma propriedade global que pode ser cancelada para instâncias
específicas.
Consulte também
Button._focusrect, MovieClip._focusrect
418
Capítulo 12: Dicionário do ActionScript
for
Disponibilidade
Flash Player 5.
Uso
for(início; condição; próxima) {
comando(s);
}
Parâmetros
início Uma expressão a ser avaliada antes do início da seqüência de loop, geralmente uma
expressão de atribuição. O comando var também é permitido para este parâmetro.
condição Uma expressão que seja avaliada como true ou false. A condição é avaliada antes de
cada iteração do loop; o loop termina quando a condição é avaliada como false.
Uma expressão que é avaliada após cada iteração do loop; geralmente uma expressão de
atribuição com os operadores ++ (aumento) ou -- (diminuição).
próxima
comando(s)
Uma instrução ou instruções a ser(em) executada(s) no corpo do loop.
Descrição
Comando; um construtor de loop que avalia a expressão início (inicialização) uma vez e depois
começa a seqüência do loop pelo qual, enquanto condição for avaliada como true, comando será
executado e a próxima expressão será avaliada.
Algumas propriedades não podem ser enumeradas pelas ações for nem for..in. Por exemplo,
os métodos internos da classe Array (Array.sort() e Array.reverse()) não são incluídos na
enumeração de um objeto Array e as propriedades de clipe de filme, tais como _x e _y, não são
enumeradas.
for
419
Exemplo
O exemplo a seguir usa for para adicionar os elementos a uma matriz:
my_array=new Array();
for(i=0; i < 10; i++) {
my_array [i] = (i + 5)*10;
trace(my_array[i]);
}
Os seguintes resultados são exibidos no painel Output (Saída):
50
60
70
80
90
100
110
120
130
140
O exemplo a seguir mostra o uso de for para executar a mesma ação repetidamente. No código
abaixo, o loop for adiciona os números de 1 a 100.
var sum = 0;
for (var i=1; i<=100; i++) {
soma = soma + i;
}
Consulte também
++ (incremento), –– (decremento), for..in, var
420
Capítulo 12: Dicionário do ActionScript
for..in
Disponibilidade
Flash Player 5.
Uso
for(variableIterant in objeto){
comando(s);
}
Parâmetros
O nome de uma variável que age como iterando, fazendo referência a cada
propriedade de um objeto ou elemento em uma matriz.
variableIterant
objeto
O nome de um objeto a ser repetido.
comando(s)
Uma instrução a ser executada para cada iteração.
Retorna
Nada.
Descrição
Comando; realiza uma passagem pelas propriedades de um objeto ou elemento em um array e
executa o comando para cada propriedade de um objeto.
Algumas propriedades não podem ser enumeradas pelas ações for nem for..in. Por exemplo,
os métodos internos da classe Array (Array.sort() e Array.reverse()) não são incluídos na
enumeração de um objeto Array e as propriedades de clipe de filme, tais como _x e _y, não são
enumeradas.
A construção for..in faz a iteração das propriedades de objetos na cadeia protótipo do objeto
iterado. Se o protótipo do filho for pai, a iteração das propriedades do filho com for..in
também fará a iteração das propriedades do pai.
A ação for..in enumera todos os objetos na cadeia protótipo de um objeto. As propriedades do
objeto são enumeradas primeiro, a seguir, as propriedades de seu protótipo imediato, a seguir,
as propriedades do protótipo do protótipo e assim por diante. A ação for..in não enumera o
mesmo nome de propriedade duas vezes. Se o objeto filho tiver um pai protótipo e ambos
contiverem a propriedade prop, a ação for..in iniciada sobre o filho enumerará prop a partir
do filho, mas ignorará a que está no pai.
for..in
421
Exemplo
O exemplo a seguir mostra o uso de for..in para iteração das propriedades de um objeto:
myObject = { name:'Tara', age:27, city:'San Francisco' };
for (name in myObject) {
trace ("myObject." + name + " = " + myObject[name]);
}
A saída deste exemplo é:
myObject.name = Tara
myObject.age = 27
myObject.city = San Francisco
O exemplo a seguir mostra o uso do operador typeof com for..in para iterar um tipo específico
de filho:
for (name in my_mc) {
if (typeof (my_mc[name]) = "movieclip") {
trace ("I have a movie clip child named " + name);
}
}
O exemplo a seguir enumera os filhos de um clipe de filme e envia cada um para o Frame 2 de
suas respectivas Timelines. O clipe de filme RadioButtonGroup é pai de vários filhos,
_RedRadioButton_, _GreenRadioButton_ e _BlueRadioButton.
for (var name in RadioButtonGroup) {
RadioButtonGroup[name].gotoAndStop(2);
}
422
Capítulo 12: Dicionário do ActionScript
fscommand()
Disponibilidade
Flash Player 3.
Uso
fscommand("command", "parameters")
Parâmetros
Uma seqüência de caracteres passada ao aplicativo host para qualquer uso ou um
comando passado ao Flash Player independente.
comand
Uma seqüência de caracteres passada ao aplicativo host para qualquer uso ou um
valor passado ao Flash Player.
parâmetros
Retorna
Nada.
Descrição
Função; permite ao arquivo SWF comunicar-se com o Flash Player ou com o programa que
hospeda o Flash Player, como um navegador da Web. Você também pode usar a ação fscommand
para passar mensagens para o Macromedia Director ou para o Visual Basic, Visual C++ e outros
programas que possam hospedar controles ActiveX.
Uso 1: Para enviar uma mensagem ao Flash Player, você deve usar comandos e parâmetros
predefinidos. A tabela abaixo mostra os valores que podem ser especificados para os parâmetros
comando e parâmetros, da ação fscommand, para controlar um SWF reproduzido em um Flash
Player independente (incluindo projetores):
Comando
Parâmetros
Objetivo
quit
Nenhum
Fecha o projetor.
fullscreen
true ou false
A especificação de true define o Flash Player no modo de tela
cheia. A especificação de false retorna o exibidor para a
exibição normal de menu.
allowscale
true ou false
O valor false faz com que o exibidor sempre desenhe o SWF
em seu tamanho original e nunca redimensionado. O valor true
força o SWF a ser redimensionado para 100% do exibidor.
showmenu
true ou false
A especificação de true ativa o conjunto completo de itens do
menu de contexto. A especificação de false torna esmaecidos
todos os itens do menu de contexto, exceto Sobre o Flash
Player.
exec
Caminho para o
aplicativo
Executa um aplicativo no projetor.
trapallkeys
true ou false
A especificação de true envia todos os eventos de teclas,
incluindo as teclas de aceleração, para o identificador
onClipEvent(keyDown/keyUp) no Flash Player.
fscommand()
423
O comando exec só pode conter os caracteres A–Z, a–z, 0–9, ponto (.) e sublinhado (_).
O comando exec é executado somente no subdiretório fscommand. Em outras palavras, se você
usar o comando fscommand exec para chamar um aplicativo, o aplicativo deverá residir em um
subdiretório com o nome de fscommand.
Uso 2: Para usar a ação fscommand para enviar uma mensagem para uma linguagem de script,
como JavaScript, em um navegador da Web, você pode passar dois valores quaisquer nos
parâmetros comando e parâmetros. Esses parâmetros podem ser seqüências de caracteres ou
expressões e serão usados em uma função JavaScript que “captura”, ou manipula, a ação
fscommand.
Em um navegador da Web, a ação fscommand chama a função JavaScript
na página HTML que contém o filme Flash. O moviename é o nome
do Flash Player conforme atribuído pelo atributo NAME da tag EMBED ou pela propriedade ID da
tag OBJECT. Se o nome atribuído ao Flash Player for meuDocumento, a função JavaScript chamada
será meuDocumento_DoFSCommand.
nomefilme_DoFScommand
Uso 3: A ação fscommand pode enviar mensagens ao Macromedia Director que são interpretadas
pelo Lingo como seqüências de caracteres, eventos ou código Lingo executável. Se a mensagem for
uma seqüência de caracteres ou um evento, você deverá criar o código Lingo para recebê-la a
partir da ação fscommand e executar uma ação no Director. Director Support Center. Para obter
mais informações, consulte o Director Support Center em www.macromedia.com/support/
director.
Uso 4: No Visual Basic, Visual C++ e em outros programas que podem hospedar controles
ActiveX, fscommand envia um evento VB com duas seqüências de caracteres que podem ser
manipuladas na linguagem de programação do ambiente. Para obter mais informações, pesquise
no Flash Support Center usando as palavras-chave Flash method em www.macromedia.com/
support/flash.
Exemplo
Uso 1: No exemplo abaixo, a ação fscommand determina que o Flash Player ajuste o SWF para o
tamanho de tela cheia quando o botão é liberado.
on (release) {
fscommand("fullscreen", true);
}
Uso 2: O exemplo abaixo usa a ação fscommand aplicada a um botão no Flash para abrir uma
caixa de mensagem JavaScript em uma página HTML. A mensagem em si é enviada para
JavaScript como o parâmetro de fscommand.
Você deve adicionar uma função à página HTML que contém o arquivo SWF. Essa função,
meuDocumento_DoFSCommand, ficará situada na página HTML e aguardará uma ação fscommand
no Flash. Quando fscommand é ativado no Flash (por exemplo, quando um usuário pressiona o
botão), as seqüências de caracteres comando e parâmetros são passadas para a função
meuDocumento_DoFSCommand. Você pode usar as seqüências de caracteres passadas no seu código
JavaScript ou VBScript da maneira que desejar. Neste exemplo, a função contém um comando
condicional if que verifica se a seqüência de caracteres de comando é “caixa_de_mensagem”.
Se for, será aberta uma caixa de alerta JavaScript (ou “caixa de mensagem”) que exibirá o conteúdo
da seqüência de caracteres parâmetros.
424
Capítulo 12: Dicionário do ActionScript
function meuDocumento_DoFSCommand(comando, args) {
if (comando == "caixa_de_mensagem") {
alert(args);
}
}
No documento Flash, adicione a ação fscommand a um botão:
fscommand("caixa_de_mensagem", "Esta é uma caixa de mensagem chamada de dentro
do Flash.")
Você também pode usar expressões para a ação fscommand e seus parâmetros, como no seguinte
exemplo:
fscommand("caixa_de_mensagem", "Olá, " + nome + ", bem-vindo a nosso website!")
Para testar o filme, escolha File (Arquivo) > Publish Preview (Visualizar Publicação) > HTML.
Observação: Se você publicar o filme usando o modelo Flash com FSCommand em HTML Publish
Settings (Configurações de Publicação em HTML), a função meuDocumento_DoFSCommand será
inserida automaticamente. Os atributos NAME e ID do SWF serão o nome do arquivo. Por exemplo,
para o arquivo meuDocumento.fla, estes atributos seriam definidos como meuDocumento.
fscommand()
425
function
Disponibilidade
Flash Player 5.
Uso
function functionname ([parameter0, parameter1,...parameterN]){
comando(s)
}
function ([parameter0, parameter1,...parameterN]){
comando(s)
}
Parâmetros
functionname
O nome da nova função.
Um identificador que representa um parâmetro a ser passado para a função.
Esses parâmetros são opcionais.
parameter
comando(s)
Qualquer instrução ActionScript definida para o corpo da função.
Retorna
Nada.
Descrição
Comando; formado por um conjunto de comandos que você define para realizar uma
determinada tarefa. Você pode declarar, ou definir, uma função em um local e chamá-la, ou
invocá-la, de diferentes scripts em um arquivo SWF. Quando você define uma função, também
pode especificar parâmetros para ela. Os parâmetros são espaços reservados para valores sobre os
quais a função fará suas operações. Você pode passar parâmetros diferentes para uma função todas
as vezes que chamá-la. Isso permite reutilizar uma função em diversas situações diferentes.
Use a ação return no(s) comando(s) de uma função para fazer a função retornar, ou apresentar,
um valor.
Uso 1: Declaração de uma função com o nomeFunção, os parâmetros e o(s) comando(s)
especificados. Quando uma função é chamada, a declaração da função é chamada. Não é
permitido repassar uma referência; na mesma lista de ações, uma função pode ser declarada após
ser chamada. Uma declaração de função substitui qualquer declaração anterior da mesma função.
Esta sintaxe pode ser usada sempre que for permitido um comando.
Uso 2: Criação de uma função anônima e retorno. Esta sintaxe é usada em expressões e é
particularmente útil para a instalação de métodos em objetos.
426
Capítulo 12: Dicionário do ActionScript
Exemplo
Uso 1: O exemplo abaixo define a função sqr, que aceita um parâmetro e retorna o quadrado
(x*x) do parâmetro. Observe que, se a função for declarada e usada no mesmo script,
a declaração de função pode aparecer após o uso da função.
y=sqr(3);
function sqr(x) {
return x*x;
}
Uso 2: A função abaixo define um objeto Circle:
function Circle(radius) {
this.radius = radius;
}
O comando a seguir define uma função anônima que calcula a área de um círculo e a anexa ao
objeto Circle como um método:
Circle.prototype.area = function () {return Math.PI * this.radius *
this.radius}
Classe Function
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Resumo de métodos da classe Function
Método
Descrição
Function.apply()
Ativa o código ActionScript para chamar uma função.
Function.call()
Invoca a função representada por um objeto Function.
Resumo de propriedades da classe Function
Propriedade
Descrição
Function.prototype
Refere-se a um objeto que é o protótipo de uma classe.
Classe Function
427
Function.apply()
Disponibilidade
Flash Player 6.
Uso
myFunction.apply(thisObject, argumentsObject)
Parâmetros
thisObject
O objeto ao qual myFunction é aplicada.
argumentsObject
Uma matriz cujos elementos são passados para myFunction como
parâmetros.
Retorna
Qualquer valor que a função chamada especifica.
Descrição
Método; especifica o valor de this para ser usado em qualquer função que ActionScript chame.
Este método também especifica os parâmetros a serem passados a qualquer função chamada.
Como apply() é um método da classe Function, também é um método de todo objeto Function
no ActionScript.
Os parâmetros são especificados como um objeto Array. Em geral, isso é útil quando o número de
parâmetros a serem passados só é conhecido quando o script é realmente executado.
Exemplo
As invocações de função a seguir são equivalentes.
Math.atan2(1, 0)
Math.atan2.apply(null, [1, 0])
Você pode construir um arquivo SWF contendo campos de entrada que permitam ao usuário
inserir o nome de uma função a ser chamada e zero ou mais parâmetros a serem passados à função.
O botão “Chamar” usaria então o método apply para chamar a função, especificando os
parâmetros.
No exemplo, o usuário especifica um nome de função em um campo de texto de entrada
denominado functionName. A quantidade de parâmetros é especificada em um campo de texto
de entrada denominado numParameters. Até 10 parâmetros são especificados em campos de
texto denominados parameter1, parameter2, até parameter10.
on (release) {
callTheFunction();
}
...
function callTheFunction()
{
var theFunction = eval(functionName.text);
var n = Number(numParameters);
var parameters = [];
for (var i = 0; i < n; i++) {
parameters.push(eval("parameter" + i));
}
theFunction.apply(null, parameters);
}
428
Capítulo 12: Dicionário do ActionScript
Function.call()
Disponibilidade
Flash Player 6.
Uso
myFunction.call(thisObject, parameter1, ..., parameterN)
Parâmetros
thisObject
Especifica o valor de this no corpo da função.
parameter1
Um parâmetro a ser passado a myFunction. Você pode especificar zero ou mais
parâmetros.
parameterN
Retorna
Nada.
Descrição
Método; invoca a função representada por um objeto Function. Toda função em ActionScript é
representada por um objeto Function para que todas as funções ofereçam suporte a esse método.
Em quase todos os casos, o operador de chamada de função (()) pode ser usado no lugar desse
método. O operador de chamada de função produz um código conciso e de fácil leitura. Esse
método é útil principalmente quando o parâmetro this da invocação da função precisa ser
explicitamente controlado. Normalmente, se uma função é invocada como um método de um
objeto, no corpo da função, this é definido para myObject como no exemplo a seguir:
myObject.myMethod(1, 2, 3);
Em algumas situações, pode ser preferível que this aponte para algum outro lugar; por exemplo,
se uma função tiver que ser invocada como um método de um objeto, mas não estiver realmente
armazenada como um método desse objeto.
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Você pode passar o valor null para o parâmetro thisObject para invocar uma função como uma
função regular e não como um método de um objeto. Por exemplo, as seguintes invocações de
função são equivalentes:
Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)
Exemplo
Este exemplo usa o método Function.call() para fazer uma função se comportar como um
método de outro objeto, sem armazenar a função no objeto.
function MyObject() {
}
function MyMethod(obj) {
trace("this == obj? " + (this == obj));
}
var obj = new MyObject();
MyMethod.call(obj, obj);
A ação trace() envia o seguinte código ao painel Output (Saída):
this == obj? true
Function.call()
429
Function.prototype
Disponibilidade
Flash Player 5.
Uso
myFunction.prototype
Descrição
Propriedade; em uma função construtora do ActionScript 1, a propriedade prototype refere-se a
um objeto que é o protótipo da classe construída. Cada instância da classe que é criada pela
função construtora herda todas as propriedades e métodos do objeto protótipo.
ge (maior ou igual a — específico de seqüências de caracteres)
Disponibilidade
Flash Player 4. Este operador foi substituído no Flash 5 pelo operador >= (maior ou igual a).
Uso
expressão1 ge expressão2
Parâmetros
expression1, expression2
Números, seqüências de caracteres ou variáveis
Retorna
Nada.
Descrição
Operador (comparação); compara a representação em seqüência de caracteres da expressão1
com a representação em seqüência de caracteres da expressão2 e retorna true se a expressão1
for maior ou igual à expressão2; caso contrário, retorna false.
Consulte também
>= (maior ou igual a)
get
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA.
Consulte também
set
430
Capítulo 12: Dicionário do ActionScript
getProperty
Disponibilidade
Flash Player 4.
Uso
getProperty(my_mc, property)
Parâmetros
my_mc
O nome da instância de um clipe de filme da qual a propriedade está sendo recuperada.
property
Uma propriedade de um clipe de filme.
Retorna
O valor da propriedade especificada.
Descrição
Função; retorna o valor da propriedade especificada do clipe de filme my_mc.
Exemplo
O exemplo a seguir recupera a coordenada do eixo horizontal (_x) do clipe de filme my_mc e a
atribui à variável my_mc_x:
my_mc_x = getProperty(_root.my_mc, _x);
getTimer
Disponibilidade
Flash Player 4.
Uso
getTimer()
Parâmetros
Nenhum.
Retorna
A quantidade de milissegundos decorridos desde o início da reprodução do arquivo SWF.
Descrição
Função; retorna o número de milissegundos decorridos desde o início da reprodução do
arquivo SWF.
getTimer
431
getURL()
Disponibilidade
Flash 2. As opções GET e POST só estão disponíveis no Flash Player 4 e versões posteriores.
Uso
getURL(url [, window [, "variables"]])
Parâmetros
url
O URL de onde o documento será obtido.
window Um parâmetro opcional que especifica a janela ou quadro HTML em que o documento
deve ser carregado. Você pode inserir o nome de uma janela específica ou escolher um dos
seguintes nomes de destino reservados:
•
•
•
•
especifica o quadro atual na janela atual.
especifica uma nova janela.
_parent especifica a origem do quadro atual.
_top especifica o quadro de nível superior na janela atual.
_self
_blank
variables Um método GET ou POST para envio de variáveis. Caso não haja variáveis, omitir
esse parâmetro. O método GET anexa as variáveis ao final do URL e é usado para pequenos
números. O método POST envia as variáveis em um cabeçalho HTTP separado e é usado com
longas seqüências de caracteres.
Retorna
Nada.
Descrição
Função; carrega um documento de um URL específico em uma janela ou passa variáveis para
outro aplicativo em um URL definido. Para testar esta ação, certifique-se de que o arquivo a ser
carregado esteja no local especificado. Para usar um URL absoluto (por exemplo, http://
www.meuservidor.com), você precisa de uma conexão de rede.
Exemplo
Este exemplo carrega um novo URL em uma janela em branco do navegador. A ação getURL()
utiliza a variável incomingAd como o parâmetro url, para que você possa alterar o URL
carregado sem ter que editar o arquivo SWF. O valor da variável incomingAd é passado para o
Flash no início do SWF usando a ação loadVariables().
on (release) {
getURL(incomingAd, "_blank");
}
Consulte também
loadVariables(), XML.send(), XML.sendAndLoad(), XMLSocket.send()
432
Capítulo 12: Dicionário do ActionScript
getVersion
Disponibilidade
Flash Player 5.
Uso
getVersion()
Parâmetros
Nenhum.
Retorna
Uma seqüência de caracteres contendo informações sobre a versão e plataforma do Flash Player.
Descrição
Função; retorna uma seqüência de caracteres contendo informações sobre a versão e plataforma
do Flash Player.
A função getVersion só retorna informações do Flash Player 5 ou versões posteriores.
Exemplo
O exemplo a seguir mostra uma seqüência de caracteres apresentada como resposta pela função
getVersion.
WIN 5,0,17,0
Esta seqüência indica que a plataforma é Windows e que a versão principal do Flash Player é a 5 e
a versão secundária 17 (5.0r17).
Consulte também
System.capabilities.os, System.capabilities.version
getVersion
433
_global object
Disponibilidade
Flash Player 6.
Uso
_global.identifier
Parâmetros
Nenhum.
Retorna
Uma referência ao objeto global que possui as principais classes ActionScript, como String,
Object, Math e Array.
Descrição
Identificador; cria variáveis globais, objetos ou classes. Por exemplo, você poderia criar uma
biblioteca que é exposta como um objeto global ActionScript, muito parecido com o objeto Math
ou Date. Ao contrário das funções e variáveis declaradas no Timeline (Linha de tempo) ou locais,
as variáveis e funções globais são visíveis para todas as linhas de tempo e escopos em um arquivo
SWF, desde que não sejam encobertas por identificadores com nomes idênticos em escopos
internos.
Exemplo
Este exemplo cria a função de alto nível factorial(), disponível para todas as linhas de tempo e
escopos em um arquivo SWF:
_global.factorial = function (n) {
if (n <= 1) {
return 1;
else {
return n * factorial(n-1);
}
}
Consulte também
var, set variable
434
Capítulo 12: Dicionário do ActionScript
gotoAndPlay()
Disponibilidade
Flash 2.
Uso
gotoAndPlay([scene,] frame)
Parâmetros
Seqüência de caracteres opcional que especifica o nome da cena para a qual é enviada a
reprodução.
scene
frame
O número do quadro ou identificador para onde a reprodução é enviada.
Retorna
Nada.
Descrição
Função; desloca a reprodução para o quadro especificado em uma cena e reproduz a partir desse
quadro. Se não for especificada uma cena, a reprodução segue para o quadro especificado na
cena atual.
Exemplo
Quando o usuário clica em um botão ao qual está associado gotoAndPlay(), a reprodução é
deslocada ao Frame (Quadro) 16 da cena atual e é iniciada.
on (release) {
gotoAndPlay(16);
}
gotoAndPlay()
435
gotoAndStop()
Disponibilidade
Flash 2.
Uso
gotoAndStop([scene,] frame)
Parâmetros
Seqüência de caracteres opcional que especifica o nome da cena para a qual é enviada a
reprodução.
scene
frame
O número do quadro ou identificador para onde a reprodução é enviada.
Retorna
Nada.
Descrição
Função; desloca a reprodução para o quadro especificado em uma cena e a interrompe. Se não for
especificada uma cena, a reprodução segue para o quadro especificado na cena atual.
Exemplo
Quando o usuário clica em um botão ao qual está associado gotoAndStop(), a reprodução é
deslocada ao Frame 5 da cena atual e o SWF pára.
on (release) {
gotoAndStop(5);
}
Consulte também
stop()
gt (maior que — específico de seqüência de caracteres)
Disponibilidade
Flash Player 4. Este operador foi substituído no Flash 5 pelo novo operador > (maior que).
Uso
expressão1 gt expressão2
Parâmetros
expression1,expression2
Números, seqüências de caracteres ou variáveis.
Descrição
Operador (comparação); compara a representação em seqüência de caracteres da expressão1
com a representação em seqüência de caracteres da expressão2 e retorna true se a expressão1
for maior que a expressão2; caso contrário, retorna false.
Consulte também
> (maior que)
436
Capítulo 12: Dicionário do ActionScript
_highquality
Disponibilidade
Flash Player 4.
Uso
_highquality
Descrição
Propriedade (global); especifica o nível de eliminação de serrilhado aplicado ao arquivo SWF
atual. Especifique 2 (melhor qualidade) para aplicar alta qualidade com a suavização de bitmap
sempre ativada. Especifique 1 (alta qualidade) para aplicar o recurso de eliminação de serrilhado.
Isso suavizará os bitmaps se o arquivo SWF não tiver animação. Especifique 0 (baixa qualidade)
para evitar o recurso sem serrilhado.
Exemplo
_highquality = 1;
Consulte também
_quality, toggleHighQuality()
_highquality
437
if
Disponibilidade
Flash Player 4.
Uso
if(condição) {
comandos(s);
}
Parâmetros
condição
comando(s)
Uma expressão que seja avaliada como true ou false.
As instruções a serem executadas se ou quando a condição for avaliada como true.
Retorna
Nada.
Descrição
Comando; avalia uma condição para determinar a próxima ação em um arquivo SWF. Se a
condição for true, o Flash executará os comandos que estiverem dentro das chaves ({}) após a
condição. Se a condição for false, o Flash ignorará os comandos contidos nas chaves e executará
os comandos posteriores a elas. Use a ação if para criar lógica ramificada em seus scripts.
Exemplo
No exemplo a seguir, a condição entre parênteses avalia a variável name para verificar se ela tem o
valor literal “Erica”. Se for o caso, será executada a ação play() entre chaves.
if(name == "Erica"){
play();
}
O exemplo abaixo utiliza uma ação if para avaliar quando o usuário solta um objeto arrastável no
arquivo SWF. Se o objeto tiver sido liberado menos de 300 milissegundos depois de arrastado,
a condição será avaliada como true e os comandos entre chaves serão executados. Esses comandos
definem variáveis para armazenar informações como a nova posição do objeto, a força e a
velocidade com que ele foi lançado. A variável timePressed também é redefinida. Se o objeto
tiver sido liberado mais de 300 milissegundos depois de arrastado, a condição será avaliada como
false e nenhum comando será executado.
if (getTimer() < timePressed+300) {
// se a condição for true,
// o objeto foi jogado.
// qual é a nova posição deste objeto?
xNewLoc = this._x;
yNewLoc = this._y;
// qual a força do lançamento?
xTravel = xNewLoc-xLoc;
yTravel = yNewLoc-yLoc;
// definindo a velocidade do objeto,
// dependendo de quanto ele viajou
xInc = xTravel/2;
yInc = yTravel/2;
timePressed = 0;
}
438
Capítulo 12: Dicionário do ActionScript
Consulte também
else
ifFrameLoaded
Disponibilidade
Flash Player 3. A ação ifFrameLoaded foi substituída no Flash 5. A Macromedia recomenda o
uso da propriedade MovieClip._framesloaded.
Uso
ifFrameLoaded([scene,] frame) {
comando(s);
}
Parâmetros
scene
Seqüência de caracteres opcional que especifica o nome da cena que deve ser carregada.
quadro O número ou identificador do quadro que deve ser carregado antes da execução do
próximo comando.
comando(s)
As instruções a serem executadas se uma determinada cena (ou cena e quadro)
for carregada.
Retorna
Nada.
Descrição
Ação substituída; verifica se o conteúdo de um quadro específico está disponível localmente.
Use ifFrameLoaded para iniciar a reprodução de uma animação simples durante o download do
restante do arquivo SWF no computador local. A diferença entre o uso de _framesloaded e
ifFrameLoaded é que _framesloaded permite que você adicione seus próprios comandos if ou
else.
Consulte também
MovieClip._framesloaded
ifFrameLoaded
439
implements
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
myClass implements interface01 [, interface02, ...]
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA. Essa palavrachave é suportada somente quando usada em arquivos de scripts externos, não em scripts escritos
no painel Actions (Ações).
Descrição
Palavra-chave; define uma classe que deve fornecer implementação para todos os métodos
definidos nas interfaces. Para obter mais informações, consulte “Criando e usando interfaces”
na página 171.
Consulte também
class, interface
import
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 6.
Uso
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA.
Descrição
Para obter mais informações, consulte “Importando classes” na página 175.
440
Capítulo 12: Dicionário do ActionScript
#include
Disponibilidade
Todas as versões do Flash Player 4.
Uso
#include "[path] filename.as"
Observação: Não coloque ponto-e-vírgula (;) no final da linha que contém a condição #include.
Parâmetros
É o nome do arquivo e caminho opcional do script a ser adicionado ao
painel Actions (Ações); .as é a extensão de arquivo recomendada.
[path] filename.as
Retorna
Nada.
Descrição
Diretiva de compilador; inclui o conteúdo do arquivo especificado, como se os comandos que
estão no arquivo fossem parte do próprio script. A diretiva #include é invocada no momento da
compilação. Portanto, se você fizer qualquer alteração em um arquivo externo, será preciso salvar
o arquivo e recompilar os arquivos FLA que o utilizam.
Se usar o botão Check Syntax (Verificar sintaxe) para um script que contenha comandos
#include, a sintaxe dos arquivos incluídos também será verificada.
Você pode usar o #include em arquivos FLA e em arquivos de script externos, mas não em
arquivos de classe ActionScript 2.
O #include não pode ser usado para incluir o conteúdo de um arquivo de classe ActionScript 2.
Se você, por exemplo, definir uma classe Circle em um arquivo nomeado como Circle.as, o
comando #include Circle.as não funcionará. Para dar acesso explícito a arquivos de classes
que não estejam em seus caminhos de classes, use o comando import.
Você pode especificar um caminho relativo, um caminho absoluto ou nenhum caminho para o
arquivo a ser incluído.
• Se você não especificar um caminho, o arquivo AS deverá estar no mesmo diretório do arquivo
•
•
FLA ou do script que contém o comando #include.
Para especificar um caminho para o arquivo AS relativo ao script ou arquivo FLA, use dois
pontos (..) e barra (/). Veja os exemplos a seguir.
Para especificar um caminho absoluto para o arquivo AS, use o formato suportado por sua
plataforma (Macintosh ou Windows). Veja os exemplos a seguir. Contudo, não se recomenda
este uso porque ele requer que a estrutura de diretório seja a mesma em qualquer máquina
usada para compilar o script.
#include
441
Exemplo
Os exemplos abaixo mostram várias maneiras de especificar um caminho para um arquivo a ser
incluído no script.
// Note que os comandos #include não terminam com um ponto-e-vírgula (;)
// O arquivo AS está no mesmo diretório do arquivo FLA ou do script
#include "init_script.as"
// O arquivo AS está em um subdiretório do diretório
//
que contém o arquivo FLA ou o script
// O subdiretório chama-se "FLA_includes"
#include "FLA_includes/init_script.as"
// O arquivo AS está em um diretório no mesmo nível do arquivo FLA ou do script
// O diretório chama-se "ALL_includes"
#include "../ALL_includes/init_script.as"
// O arquivo AS é definido por um caminho absoluto no Windows
// Note que se usam barras e não barras invertidas
#include "C:/Flash_scripts/init_script.as"
// O arquivo AS é definido por um caminho absoluto no Macintosh
#include "Mac HD:Flash_scripts:init_script.as"
Consulte também
import
Infinity
Disponibilidade
Flash Player 5.
Uso
Infinity
Descrição
Constante; especifica o valor IEEE-754 que representa o infinito positivo. O valor dessa constante
é o mesmo de Number.POSITIVE_INFINITY.
-Infinity
Disponibilidade
Flash Player 5.
Uso
-Infinity
Descrição
Constante; especifica o valor IEEE-754 que representa o infinito negativo. O valor dessa
constante é o mesmo de Number.NEGATIVE_INFINITY.
442
Capítulo 12: Dicionário do ActionScript
#initclip
Disponibilidade
Flash Player 6.
Uso
#initclip order
Parâmetros
order Um número inteiro que especifica a ordem de execução de blocos de código #initclip.
Este é um parâmetro opcional.
Descrição
Diretiva de compilador; indica o início de um bloco de ações de inicialização. Quando vários
clipes são inicializados ao mesmo tempo, você pode usar o parâmetro ordem para especificar a
inicialização que ocorrerá primeiro. As ações de inicialização são executadas quando é definido um
símbolo de clipe de filme. Se o clipe de filme for um símbolo exportado, as ações de inicialização
serão executadas antes das ações do Frame (Quadro) 1 do arquivo SWF. Caso contrário, elas serão
executadas imediatamente antes das ações do quadro que contém a primeira instância do símbolo
de clipe de filme associado.
As ações de inicialização são executadas apenas uma vez durante a reprodução de um SWF. Use-as
para inicializações realizadas somente uma vez, como a definição e registro de classes.
Exemplo
O exemplo de código a seguir é associado ao primeiro quadro de um SWF, que é um componente
CheckBox. As ações #initclip e #endinitclip definem os limites do bloco de comandos que
são ações de inicialização. Os comandos delimitados registram a classe e os métodos de
armazenamento em um objeto de protótipo.
#initclip
if (typeof(CheckBox) == "indefinido") {
// Definir o construtor para (e, portanto, definir) a classe CheckBox
function CheckBox() {
//Configurar nossas vinculações de dados
this.watch ('value', function (id, oldval, newval) { ... };
this.watch ('label', function (id, oldval, newval) { ... };
}
// Definir que a cadeia de protótipos CheckBox herda de MovieClip
CheckBox.prototype = new MovieClip();
// Registrar CheckBox como a classe do símbolo de "Caixa de seleção"
Object.registerClass("Caixa de seleção", CheckBox);
// Configurar alguns métodos
CheckBox.prototype.enable = function () { ... };
CheckBox.prototype.show = function () { ... };
CheckBox.prototype.hide = function () { ... };
// Configurar uma função conveniente para criar
// caixas de seleção
CheckBox.create = function (parent_mc, instanceName, depth) {
parent_mc.attachMovie("CheckBox", instanceName, depth);
};
}
#endinitclip
#initclip
443
Observação: Se você copiar e colar este código no painel Actions (Ações), será gerado um erro
quando o script for compilado, por causa das funções indefinidas ({...}).
Consulte também
#endinitclip
instanceof
Disponibilidade
Flash Player 6.
Uso
object instanceof class
Parâmetros
object
class
Um objeto ActionScript.
Uma referência a uma função construtora ActionScript, como String ou Date.
Retorna
Se o objeto for uma instância de classe, instanceof retornará true; caso contrário,
instanceof retornará false.
Descrição
Operador; determina se um objeto pertence a uma determinada classe. Testa se o objeto é uma
instância de classe.
Um objeto ActionScript é considerado uma instância de uma classe quando o objeto de protótipo
da função construtora está na cadeia de protótipos do objeto ActionScript.
O operador instanceof não converte tipos primitivos em objetos envoltórios. Por exemplo,
o código a seguir retorna true:
new String("Olá") instanceof String
Já o código a seguir retorna false:
"Olá" instanceof String
Exemplo
Para ilustrar o algoritmo do operador instanceof, o exemplo a seguir mostra a aparência possível
desse operador instanceof caso seja codificado como uma função do ActionScript.
function instanceof (theObject, theClass){
while ((theObject = theObject.__proto__) != null) {
if (theObject == theClass.prototype) {
return true;
}
}
return false;
}
Consulte também
typeof
444
Capítulo 12: Dicionário do ActionScript
int
Disponibilidade
Flash Player 4. Esta função foi substituída no Flash 5 por Math.round().
Uso
int(valor)
Parâmetros
valor
Um número a ser arredondado para um inteiro.
Retorna
Nada.
Descrição
Função; converte um número decimal no valor inteiro mais próximo.
Consulte também
Math.floor()
interface
Disponibilidade
Flash Player 6.
Uso
interface InterfaceName {}
interface InterfaceName [extends InterfaceName [, InterfaceName ...] {}
Observação: Para usar esta palavra-chave, é necessário especificar ActionScript 2 e Flash Player 6
ou Flash Player 7 na guia Flash da caixa de diálogo Publish Settings do arquivo FLA. Essa palavrachave é suportada somente quando usada em arquivos de scripts externos, não em scripts escritos
no painel Actions (Ações).
Descrição
Palavra-chave; define uma interface. Interfaces são semelhantes às classes, com as seguintes
diferenças relevantes:
• As interfaces contêm somente descrições de métodos e não sua implementação. Isto é, toda
•
classe que implementa uma interface deve trazer uma implementação para cada método
definido na interface.
Em uma definição de interface, são permitidos apenas membros públicos. Além disso, não são
permitidas variáveis de instância.
Embora não sejam equivalentes às classes abstratas de Java, as interfaces podem ser consideradas
abstratas no sentido que definem apenas possíveis comportamentos de suas instâncias. Para obter
mais informações, consulte “Criando e usando interfaces” na página 171.
interface
445
Exemplo
(em arquivos .as de pacote de nível superior Ia, B, C, Ib, D, Ic, E)
// nome do arquivo Ia.as
interface Ia
{
function k():Number;
// somente a declaração do método
function n(x:Number):Number; // sem implementação
}
// nome do arquivo B.as
class B implements Ia
{
function k():Number {return 25;}
function n(x:Number):Number {return x+5;}
}
// script externo ou painel Actions (Ações)
mvar = new B();
trace(B.k());
// 25
trace(B.n(7)); // 12
// nome do arquivo c.as
class C implements Ia
{
function k():Number {return 25;}
} // erro: a classe deve implementar todos os métodos da interface
// nome do arquivo Ib.as
interface Ib
{
function o():Void;
}
class D implements Ia, Ib
{
function k():Number {return 15;}
function n(x:Number):Number {return x*x;}
function o():Void {trace("o");}
}
// script externo ou painel Actions (Ações)
mvar = new D();
trace(D.k());
// 15
trace(D.n(7)); // 49
trace(D.o());
// "o"
interface Ic extends Ia
{
function p():Void;
}
class E implements Ib, Ic
{
function k():Number {return 25;}
function n(x:Number):Number {return x+5;}
function o():Void {trace("o");}
function p():Void {trace("p");}
}
Consulte também
class, extends, implements
446
Capítulo 12: Dicionário do ActionScript
isFinite
Disponibilidade
Flash Player 5.
Uso
isFinite(expressão)
Parâmetros
expressão
Valor booleano, variável ou outra expressão a ser avaliada.
Retorna
Um valor booleano.
Descrição
Função; avaliará a expressão e retornará true se for um número finito ou false se for um
número infinito ou infinito negativo. A presença do infinito ou infinito negativo indica uma
condição de erro matemático como uma divisão por 0.
Exemplo
A seguir são mostrados exemplos dos valores retornados por isFinite:
isFinite(56)
// retorna true
isFinite(Number.POSITIVE_INFINITY)
// retorna false
isFinite
447
isNaN()
Disponibilidade
Flash Player 5.
Uso
isNaN(expressão)
Parâmetros
expressão
Um valor booleano, variável ou outra expressão a ser avaliada.
Retorna
Um valor booleano.
Descrição
Função; avaliará o parâmetro e retornará true se o valor não for um número (NaN), e isto indicará
a presença de erros matemáticos.
Exemplo
O código a seguir demonstra valores de retorno para a função isNaN.
isNaN("Árvore")
// retorna true
isNaN(56)
// retorna false
isNaN(Number.POSITIVE_INFINITY)
// retorna false
Consulte também
NaN, Number.NaN
448
Capítulo 12: Dicionário do ActionScript
Classe key
Disponibilidade
Flash Player 6.
Descrição
A classe Key é uma classe do nível mais alto cujos métodos e propriedades podem ser usados sem
lançar um construtor. Use os métodos da classe Key para criar uma interface que possa ser
controlada por um usuário com um teclado padrão. As propriedades da classe Key são constantes
que representam as teclas mais comumente usadas para controlar jogos. Para obter uma lista
completa de valores de códigos de teclas, consulte Apêndice C, “Teclas do teclado e valores de
códigos de teclas”, na página 859.
Exemplo
O script a seguir usa o objeto Key para identificar teclas em qualquer teclado, de forma que o
usuário possa controlar um clipe de filme.
onClipEvent (enterFrame) {
if(Key.isDown(Key.RIGHT)) {
this._x=_x+10;
} else if (Key.isDown(Key.DOWN)) {
this._y=_y+10;
}
}
Resumo de métodos da classe Key
Método
Descrição
Key.addListener()
Registra um objeto para receber a notificação quando os métodos
onKeyDown e onKeyUp são chamados.
Key.getAscii()
Retorna o valor ASCII da última tecla pressionada.
Key.getCode()
Retorna o código de tecla virtual da última tecla pressionada.
Key.isDown()
Retorna true se a tecla especificada no parâmetro for pressionada.
Key.isToggled()
Retorna true se a tecla Num Lock ou Caps Lock estiver ativada.
Key.removeListener() Remove um objeto anteriormente registrado com Key.addListener().
Classe key
449
Resumo de propriedades da classe Key
Todas as propriedades da classe Key são constantes.
Propriedade
Descrição
Key.BACKSPACE
Constante associada ao código da tecla Backspace (8).
Key.CAPSLOCK
Constante associada ao código da tecla Caps Lock (20).
Key.CONTROL
Constante associada ao código da tecla Control (17).
Key.DELETEKEY
Constante associada ao código da tecla Delete (46).
Key.DOWN
Constante associada ao código da tecla Seta para baixo (40).
Key.END
Constante associada ao valor do código da tecla End (35).
Key.ENTER
Constante associada ao valor do código da tecla Enter (13).
Key.ESCAPE
Constante associada ao valor do código da tecla Escape (27).
Key.HOME
Constante associada ao valor do código da tecla Home (36).
Key.INSERT
Constante associada ao valor do código da tecla Insert (45).
Key.LEFT
Constante associada ao valor do código da tecla Seta para esquerda (37).
Key.PGDN
Constante associada ao valor do código da tecla Page Down (34).
Key.PGUP
Constante associada ao valor do código da tecla Page Up (33).
Key.RIGHT
Constante associada ao valor do código da tecla Seta para direita (39).
Key.SHIFT
Constante associada ao valor do código da tecla Shift (16).
Key.SPACE
Constante associada ao valor do código da tecla Barra de espaços (32).
Key.TAB
Constante associada ao valor do código da tecla Tab (9).
Key.UP
Constante associada ao valor do código da tecla Seta para cima (38).
Resumo de ouvintes da classe Key
450
Método
Descrição
Key.onKeyDown
Notificado quando uma tecla é pressionada.
Key.onKeyUp
Notificado quando uma tecla é liberada
Capítulo 12: Dicionário do ActionScript
Key.addListener()
Disponibilidade
Flash Player 6.
Uso
Key.addListener (newListener)
Parâmetros
newListener
Um objeto com os métodos onKeyDown e onKeyUp.
Retorna
Nada.
Descrição
Método; registra um objeto para receber a notificação onKeyDown e onKeyUp. Quando uma tecla é
pressionada ou liberada, independentemente do foco de entrada, todos os objetos ouvintes
registrados com addListener() têm o método onKeyDown ou onKeyUp chamado. Vários objetos
podem ouvir notificações de teclado. Se o ouvinte newListener já estiver registrado, nenhuma
alteração ocorrerá.
Exemplo
Este exemplo cria um novo objeto ouvinte e define uma função para onKeyDown e onKeyUp.
A última linha usa o addListener() para registrar o ouvinte com o objeto Key, de forma a poder
receber notificações dos eventos de tecla pressionada e de tecla liberada.
myListener = new Object();
myListener.onKeyDown = function () {
trace ("Você pressionou uma tecla.");
}
myListener.onKeyUp = function () {
trace ("Você liberou uma tecla.");
}
Key.addListener(myListener);
Key.BACKSPACE
Disponibilidade
Flash Player 5.
Uso
Key.BACKSPACE
Descrição
Propriedade; constante associada ao valor do código da tecla Backspace (8).
Key.BACKSPACE
451
Key.CAPSLOCK
Disponibilidade
Flash Player 5.
Uso
Key.CAPSLOCK
Descrição
Propriedade; constante associada ao valor do código da tecla Caps Lock (20).
Key.CONTROL
Disponibilidade
Flash Player 5.
Uso
Key.CONTROL
Descrição
Propriedade; constante associada ao valor do código da tecla Control (17).
Key.DELETEKEY
Disponibilidade
Flash Player 5.
Uso
Key.DELETEKEY
Descrição
Propriedade; constante associada ao valor do código da tecla Delete (46).
Key.DOWN
Disponibilidade
Flash Player 5.
Uso
Key.DOWN
Descrição
Propriedade; constante associada ao valor do código da tecla Seta para baixo (40).
452
Capítulo 12: Dicionário do ActionScript
Key.END
Disponibilidade
Flash Player 5.
Uso
Key.END
Descrição
Propriedade; constante associada com o valor do código de chave da tecla End (35).
Key.ENTER
Disponibilidade
Flash Player 5.
Uso
Key.ENTER
Descrição
Propriedade; constante associada ao valor do código da tecla Enter (13).
Key.ESCAPE
Disponibilidade
Flash Player 5.
Uso
Key.ESCAPE
Descrição
Propriedade; constante associada ao valor do código da tecla Escape (27).
Key.ESCAPE
453
Key.getAscii()
Disponibilidade
Flash Player 5.
Uso
Key.getAscii();
Parâmetros
Nenhum.
Retorna
Um inteiro que representa o valor ASCII da última tecla pressionada.
Descrição
Método; retorna o código ASCII da última tecla pressionada ou liberada. Os valores ASCII
retornados correspondem aos valores do teclado inglês. Se, por exemplo, você pressionar Shift+2,
Key.getAscii() retornará @ em um teclado japonês, como em um teclado inglês.
Key.getCode()
Disponibilidade
Flash Player 5.
Uso
Key.getCode();
Parâmetros
Nenhum.
Retorna
Um inteiro que representa o código de tecla da última tecla pressionada.
Descrição
Método; retorna o valor do código de tecla da última tecla pressionada. Para que o valor do código
da tecla coincida com a tecla de um teclado padrão, consulte Apêndice C, “Teclas do teclado e
valores de códigos de teclas”, na página 859.
Key.HOME
Disponibilidade
Flash Player 5.
Uso
Key.HOME
Descrição
Propriedade; constante associada ao valor do código da tecla Home (36).
454
Capítulo 12: Dicionário do ActionScript
Key.INSERT
Disponibilidade
Flash Player 5.
Uso
Key.INSERT
Descrição
Propriedade; constante associada ao valor do código da tecla Insert (45).
Key.isDown()
Disponibilidade
Flash Player 5.
Uso
Key.isDown(keycode)
Parâmetros
Valor do código de tecla atribuído a uma determinada tecla ou a uma propriedade da
classe Key associada a uma tecla específica. Para que o valor do código da tecla coincida com a
tecla de um teclado padrão, consulte Apêndice C, “Teclas do teclado e valores de códigos de
teclas”, na página 859.
keycode
Retorna
Um valor booleano.
Descrição
Método; retornará true, se for pressionada a tecla especificada no códigoTecla, ou false, se
essa tecla não for pressionada. No Macintosh, os valores do código de tecla das teclas Caps Lock e
Num Lock são idênticos.
Key.isToggled()
Disponibilidade
Flash Player 5.
Uso
Key.isToggled(keycode)
Parâmetros
keycode
O código da tecla Caps Lock (20) ou Num Lock (144).
Key.isToggled()
455
Retorna
Um valor booleano.
Descrição
Método; retornará true, se for ativada (ou alternada) a tecla Caps Lock ou Num Lock, ou false
caso contrário. No Macintosh, os valores do código de tecla das teclas Caps Lock e Num Lock são
idênticos.
Key.LEFT
Disponibilidade
Flash Player 5.
Uso
Key.LEFT
Descrição
Propriedade; constante associada ao valor do código de tecla para a tecla Seta para esquerda (37).
Key.onKeyDown
Disponibilidade
Flash Player 6.
Uso
someListener.onKeyDown
Descrição
Ouvinte; notificado quando uma tecla é pressionada. É necessário criar um objeto ouvinte para
usar onKeyDown. Em seguida, é possível definir uma função para onKeyDown e usar o
addListener() para registrar o ouvinte junto ao objeto Key, como abaixo:
someListener = new Object();
someListener.onKeyDown = function () { ... };
Key.addListener(someListener);
Os ouvintes permitem a cooperação de partes diferentes de código. Isso ocorre porque vários
ouvintes podem receber notificações sobre um único evento.
Consulte também
Key.addListener()
456
Capítulo 12: Dicionário do ActionScript
Key.onKeyUp
Disponibilidade
Flash Player 6.
Uso
someListener.onKeyUp
Descrição
Ouvinte; notificado quando uma tecla é liberada. É necessário criar um objeto ouvinte para usar
onKeyUp. Em seguida, é possível definir uma função para onKeyUp e usar o addListener() para
registrar o ouvinte junto ao objeto Key, como abaixo:
someListener = new Object();
someListener.onKeyUp = function () { ... };
Key.addListener(someListener);
Os ouvintes permitem a cooperação de partes diferentes de código. Isso ocorre porque vários
ouvintes podem receber notificações sobre um único evento.
Consulte também
Key.addListener()
Key.PGDN
Disponibilidade
Flash Player 5.
Uso
Key.PGDN
Descrição
Propriedade; constante associada ao valor do código de tecla para a tecla Page Down (34).
Key.PGUP
Disponibilidade
Flash Player 5.
Uso
Key.PGUP
Descrição
Propriedade; constante associada ao valor do código da tecla Page Up (33).
Key.PGUP
457
Key.removeListener()
Disponibilidade
Flash Player 6.
Uso
Key.removeListener (ouvinte)
Parâmetros
ouvinte
Um objeto.
Retorna
Se o ouvinte tiver sido removido com êxito, o método retornará true. Caso o ouvinte não
tenha sido removido com êxito, por exemplo, se ele não estava na lista de ouvintes do objeto Key,
o método retornará false.
Descrição
Método; remove um objeto anteriormente registrado com Key.addListener()
Key.addListener().
Key.RIGHT
Disponibilidade
Flash Player 5.
Uso
Key.RIGHT
Descrição
Propriedade; constante associada ao valor do código da tecla Seta para direita (39).
Key.SHIFT
Disponibilidade
Flash Player 5.
Uso
Key.SHIFT
Descrição
Propriedade; constante associada ao valor do código da tecla Shift (16).
458
Capítulo 12: Dicionário do ActionScript
Key.SPACE
Disponibilidade
Flash Player 5.
Uso
Key.SPACE
Descrição
Propriedade; constante associada ao valor do código de tecla da Barra de espaços (32).
Key.TAB
Disponibilidade
Flash Player 5.
Uso
Key.TAB
Descrição
Propriedade; constante associada ao valor do código da tecla Tab (9).
Key.UP
Disponibilidade
Flash Player 5.
Uso
Key.UP
Descrição
Propriedade; constante associada ao valor do código da tecla Seta para cima (38).
Key.UP
459
le (menor ou igual a — específico de seqüência de caracteres)
Disponibilidade
Flash Player 4. Este operador foi substituído no Flash 5 pelo operador <= (menor ou igual
que).
Uso
expression1 le expression2
Parâmetros
expressão1, expressão2
Números, seqüências de caracteres ou variáveis.
Retorna
Nada.
Descrição
Operador (comparação); compara expression1 com expression2 e retorna um valor true se
expression1 for menor ou igual a expresssion2; de outra forma, retorna um valor false.
Consulte também
<= (menor ou igual que)
460
Capítulo 12: Dicionário do ActionScript
length
Disponibilidade
Flash Player 4. Esta função, juntamente com todas as funções de seqüências de caracteres,
foi substituída no Flash 5. A Macromedia recomenda o uso dos métodos da classe String e da
propriedade String.length para a realização das mesmas operações.
Uso
length(expressão)
length(variável)
Parâmetros
expressão
variável
Uma seqüência de caracteres.
O nome de uma variável.
Retorna
O comprimento da seqüência de caracteres ou da variável definida.
Descrição
Função de seqüência de caracteres; retorna o comprimento da seqüência de caracteres ou do nome
da variável especificada.
Exemplo
O exemplo a seguir retorna o valor da seqüência de caracteres "Olá".
length("Olá");
O resultado é 4.
Consulte também
" " (delimitador de seqüência de caracteres),
Classe String, String.length
length
461
_level
Disponibilidade
Flash Player 4.
Uso
_levelN
Descrição
Identificador; uma referência à Timeline (Linha de tempo) raiz de _levelN. É preciso usar
loadMovieNum() para carregar arquivos SWF no Flash Player, antes de usar a propriedade _level
para especificá-los. Também é possível utilizar _levelN para especificar um SWF carregado no
nível atribuído por N.
O arquivo SWF inicial carregado em uma instância do Flash Player é carregado automaticamente
no _level0. O SWF no _level0 define a taxa de quadros, a cor de fundo e o tamanho do
quadro para todos os SWF carregados em seguida. Depois, os SWF são empilhados em níveis com
numeração mais alta, acima do SWF do _level0.
É necessário atribuir um nível para cada arquivo SWF carregado no Flash Player com
É possível atribuir níveis em qualquer ordem. Se você atribuir um nível que já
contenha um arquivo SWF (inclusive _level0), o SWF nesse nível será descarregado e
substituído pelo novo SWF.
loadMovieNum().
Exemplo
O exemplo abaixo interrompe a reprodução da Timeline (Linha de tempo) principal do SWF em
_level9.
_level9.stop();
O exemplo a seguir desloca a reprodução da Timeline principal do SWF no _level4 para o
Frame 5. O SWF no _level4 deve ter sido anteriormente carregado com a ação
loadMovieNum().
_level4.gotoAndStop(5);
Consulte também
loadMovie(), MovieClip.swapDepths()
462
Capítulo 12: Dicionário do ActionScript
loadMovie()
Disponibilidade
Flash Player 3.
Uso
loadMovie("url",target [, method])
Parâmetros
O URL absoluto ou relativo do arquivo SWF ou JPEG que deve ser carregado. O caminho
relativo deve ser relacionado ao arquivo SWF no nível 0. Para que sejam usados no Flash Player ou
no modo de teste do aplicativo de criação Flash, todos os arquivos SWF devem ser armazenados
na mesma pasta e os nomes de arquivo não podem incluir as especificações da pasta ou da unidade
de disco.
url
Um caminho para um clipe de filme de destino. O clipe de filme de destino será
substituído pela imagem ou arquivo SWF carregado.
destino
Parâmetro opcional que especifica um método HTTP para o envio de variáveis.
O parâmetro deve ser a seqüência de caracteres GET ou POST. Se não houver nenhuma variável a
ser enviada, omita esse parâmetro. O método GET anexa as variáveis ao final do URL e é usado
para pequenos números de variáveis. O método POST envia as variáveis em um cabeçalho HTTP
separado e é usado para seqüências de caracteres maiores de variáveis.
method
Retorna
Nada.
Descrição
Função; carrega um arquivo SWF ou JPEG no Flash Player durante a reprodução do arquivo
SWF original. A função loadMovie() permite que você exiba vários SWF de uma vez e alterne
entre os SWF sem carregar outro documento HTML. Sem a função loadMovie(), o Flash Player
exibe um único arquivo SWF e é encerrado em seguida.
Se quiser carregar um arquivo SWF ou JPEG em um determinado nível, use loadMovieNum() em
vez de loadMovie().
Se um SWF for carregado em um clipe de filme de destino, use o caminho de destino desse clipe
para especificar o SWF carregado. Um SWF ou imagem carregada em um destino herda as
propriedades de posição, rotação e dimensionamento do clipe de filme de destino. O canto
superior esquerdo da imagem ou SWF carregado se alinha com o ponto de registro do clipe de
filme de destino. De maneira alternativa, se o destino for a Timeline (Linha de tempo) _root,
o canto superior esquerdo da imagem ou SWF se alinhará com o canto superior esquerdo do
Stage (Palco).
Use unloadMovie() para remover arquivos SWF carregados com loadMovie().
loadMovie()
463
Exemplo
O comando loadMovie() a seguir é anexado a um botão de navegação chamado Products
(Produtos). Há um clipe de filme invisível no Palco com o nome de instância dropZone.
A função loadMovie() usa esse clipe de filme como o parâmetro de destino para carregar os
produtos no arquivo SWF, na posição correta no Stage (Palco).
on (release) {
loadMovie("products.swf",_root.dropZone);
}
O exemplo abaixo carrega uma imagem JPEG do mesmo diretório do arquivo SWF que chama a
função loadMovie():
loadMovie("image45.jpeg", "nosso_clipe_de_filme");
Consulte também
loadMovieNum(), unloadMovie(), _level
loadMovieNum()
Disponibilidade
Flash Player 4. Os arquivos do Flash 4, abertos no Flash 5 ou posterior, são convertidos para que
usem a sintaxe correta.
Uso
loadMovieNum("url",level [, variables])
Parâmetros
url O URL absoluto ou relativo do arquivo SWF ou JPEG a ser carregado. Um caminho
relativo deve ser relacionado ao arquivo SWF no nível 0. Para que sejam usados no Flash Player
independente ou no modo de teste de filme, no aplicativo de criação Flash, todos os arquivos
SWF devem ser armazenados na mesma pasta e os nomes dos arquivos não podem incluir
especificações da pasta ou da unidade de disco.
nível
Um inteiro que especifica o nível em que o arquivo SWF será carregado no Flash Player.
variáveis Um parâmetro opcional que especifica um método HTTP para o envio de variáveis.
O parâmetro deve ser a seqüência de caracteres GET ou POST. Se não houver nenhuma variável a
ser enviada, omita esse parâmetro. O método GET anexa as variáveis ao final do URL e é usado
para pequenos números de variáveis. O método POST envia as variáveis em um cabeçalho HTTP
separado e é usado para seqüências de caracteres maiores de variáveis.
Retorna
Nada.
Descrição
Função; carrega um arquivo SWF ou JPEG em um nível do Flash Player durante a reprodução do
arquivo SWF originalmente carregado. Normalmente, o Flash Player exibe um único arquivo
SWF e em seguida é encerrado. A ação loadMovieNum() permite que você exiba vários SWF de
uma vez e alterne entre eles sem carregar outro documento HTML.
Se quiser especificar um destino em vez de um nível, use loadMovie() em vez de
loadMovieNum().
464
Capítulo 12: Dicionário do ActionScript
O Flash Player tem uma ordem de empilhamento de níveis começando do nível 0. Esses níveis são
como folhas de transparências, a não ser pelos objetos presentes em cada nível. Quando você usa
loadMovieNum(), é necessário especificar um nível do Flash Player no qual o arquivo SWF será
carregado. Depois que o SWF é carregado em um nível, é possível usar a sintaxe _levelN, onde N
é o número do nível, para especificar o SWF.
Quando carrega um arquivo SWF, você pode especificar qualquer número de nível, inclusive
carregar arquivos SWF em um nível que já contenha um arquivo SWF carregado. Caso faça isto,
o novo SWF substituirá o SWF existente. Se você carregar um SWF no nível 0, todos os níveis do
Flash Player serão descarregados e o nível 0 será substituído pelo novo arquivo. O SWF no nível 0
define a taxa de quadros, a cor de fundo e o tamanho do quadro de todos os outros SWF
carregados.
A ação loadMovieNum() também permite carregar arquivos JPEG em um arquivo SWF durante a
reprodução do mesmo. No caso de imagens e arquivos SWF, o canto superior esquerdo da
imagem é alinhado com o canto superior esquerdo do Palco durante o carregamento do arquivo.
Além disso, nos dois casos, o arquivo carregado herda a rotação e o dimensionamento e o
conteúdo original é substituído.
Use unloadMovieNum()
loadMovieNum().
para remover imagens ou arquivos SWF carregados com
Exemplo
Este exemplo carrega a imagem JPEG image45.jpg no nível 2 do Flash Player.
loadMovieNum("http://www.blag.com/image45.jpg", 2);
Consulte também
loadMovie(), unloadMovieNum(), _level
loadVariables()
Disponibilidade
Flash Player 4.
Uso
loadVariables ("url" , "target" [, variables])
Parâmetros
url Um URL absoluto ou relativo no qual as variáveis estão localizadas. Se você acessar o
arquivo SWF com um navegador da Web, o host do URL deverá estar no mesmo subdomínio do
SWF.
destino
O caminho de destino para um clipe de filme que recebe as variáveis carregadas.
variáveis Um parâmetro opcional que especifica um método HTTP para o envio de variáveis.
O parâmetro deve ser a seqüência de caracteres GET ou POST. Se não houver nenhuma variável a
ser enviada, omita esse parâmetro. O método GET anexa as variáveis ao final do URL e é usado
para pequenos números de variáveis. O método POST envia as variáveis em um cabeçalho HTTP
separado e é usado para seqüências de caracteres maiores de variáveis.
Retorna
Nada.
loadVariables()
465
Descrição
Função; lê dados de um arquivo externo, como um arquivo de texto ou um texto gerado por um
script CGI, Active Server Pages (ASP), PHP ou um script Perl, e define os valores das variáveis em
um nível do Flash Player ou em um clipe de filme de destino. Esta ação também pode ser usada
para atualizar as variáveis no SWF ativo com novos valores.
O texto no URL especificado deve ter o formato MIME padrão aplicativo/x-www-formato de url
codificado (um formato padrão usado por scripts CGI). O SWF e as variáveis a serem carregadas
devem residir no mesmo subdomínio. Qualquer número de variáveis pode ser especificado. Por
exemplo, a frase abaixo define várias variáveis:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
O primeiro arquivo SWF a ser aberto em uma instância do Flash Player é carregado no nível
inferior (identificado no código como _level0). Quando você usa loadMovie() ou
loadMovieNum() para carregar arquivos SWF subseqüentes no Flash Player, é necessário atribuir
um número de nível no Flash Player ou um clipe de filme de destino no qual todo SWF será
carregado. Ao usar loadVariables(), você precisa especificar um MovieClip de destino no qual
as variáveis serão carregadas.
Se quiser carregar variáveis em um nível específico, use loadVariablesNum() em vez de
loadVariables().
Exemplo
Este exemplo carrega informações de um arquivo de texto em campos de texto no clipe de filme
varTarget da Linha de tempo principal. Os nomes das variáveis dos campos de texto devem
corresponder aos nomes das variáveis no arquivo data.txt.
on (release) {
loadVariables("data.txt", "_root.varTarget");
}
Consulte também
loadVariablesNum(), loadMovie(), loadMovieNum(), getURL(), MovieClip.loadMovie(),
MovieClip.loadVariables()
loadVariablesNum()
Disponibilidade
Flash Player 4. Os arquivos Flash 4 abertos no Flash 5 ou posterior serão convertidos para que
usem a sintaxe correta.
Uso
loadVariablesNum ("url" ,level [, variables])
466
Capítulo 12: Dicionário do ActionScript
Parâmetros
url Um URL absoluto ou relativo no qual as variáveis estão localizadas. Se você acessar o
arquivo SWF com um navegador da Web, o host do URL deverá estar no mesmo subdomínio do
SWF.
nível
Um inteiro que especifica o nível que receberá as variáveis no Flash Player.
variáveis Um parâmetro opcional que especifica um método HTTP para o envio de variáveis.
O parâmetro deve ser a seqüência de caracteres GET ou POST. Se não houver nenhuma variável a
ser enviada, omita esse parâmetro. O método GET anexa as variáveis ao final do URL e é usado
para pequenos números de variáveis. O método POST envia as variáveis em um cabeçalho HTTP
separado e é usado para seqüências de caracteres maiores de variáveis.
Retorna
Nada.
Descrição
Função; lê os dados de um arquivo externo, como um arquivo de texto ou um texto gerado por
um script CGI, Active Server Pages (ASP), PHP ou script Perl, e define os valores das variáveis em
um nível do Flash Player. Você também pode usar esta função para atualizar variáveis no arquivo
SWF ativo com novos valores.
O texto no URL especificado deve ter o formato MIME padrão aplicativo/x-www-formato de url
codificado (um formato padrão usado por scripts CGI). O arquivo SWF e as variáveis a serem
carregadas devem residir no mesmo subdomínio. Qualquer número de variáveis pode ser
especificado. Por exemplo, a frase abaixo define várias variáveis:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
O primeiro SWF a ser aberto em uma instância do Flash Player é carregado no nível inferior
(identificado no código como _level0). Quando você usa loadMovie() ou loadMovieNum()
para carregar SWF subseqüentes no Flash Player, é necessário atribuir um número de nível no
Flash Player ou um clipe de filme de destino no qual todo SWF será carregado. Quando usar
loadVariablesNum(), você precisará especificar um nível do Flash Player no qual as variáveis
serão carregadas.
Se quiser carregar variáveis em um MovieClip de destino, use loadVariables() em vez de
loadVariablesNum().
Exemplo
Este exemplo carrega informações de um arquivo de texto para campos de texto na Linha de
tempo principal do SWF, no nível 0 do Flash Player. Os nomes das variáveis dos campos de texto
devem corresponder aos nomes das variáveis no arquivo data.txt.
on (release) {
loadVariablesNum("data.txt", 0);
}
Consulte também
getURL(), loadMovie(), loadMovieNum(), loadVariables(), MovieClip.loadMovie(),
MovieClip.loadVariables()
loadVariablesNum()
467
Classe LoadVars
Disponibilidade
Flash Player 6.
Descrição
A classe LoadVars é uma alternativa à função loadVariables() de transferência de variáveis entre
um aplicativo Flash e um servidor.
Você pode usar a classe LoadVars para obter a verificação de carregamento de dados adequado,
indicações de progresso e fluxo de dados durante o download. A classe LoadVars funciona de
maneira muito semelhante ao Classe XML. Ela utiliza os métodos load(), send() e
sendAndLoad() para se comunicar com um servidor. A diferença principal entre a classe
LoadVars e a XML é que a primeira transfere pares de nome e valor ActionScript, em vez da
árvore DOM XML armazenada no objeto XML.
A classe LoadVars segue as mesmas restrições de segurança da classe XML.
É necessário usar o construtor new LoadVars() para criar um objeto LoadVars antes de chamar
seus métodos.
Resumo dos métodos da classe LoadVars
Método
Descrição
LoadVars.addRequestHeader() Adiciona ou altera cabeçalhos HTTP de operações POST.
LoadVars.getBytesLoaded()
Retorna o número de bytes descarregados por LoadVars.load() ou
por LoadVars.sendAndLoad().
LoadVars.getBytesTotal()
Retorna o número total de bytes que serão descarregados por um
método load ou sendAndLoad.
LoadVars.load()
Faz download de variáveis de um URL especificado.
LoadVars.send()
Envia variáveis de um objeto LoadVars para um URL.
LoadVars.sendAndLoad()
Envia variáveis de um objeto LoadVars para um URL e faz o
download da resposta do servidor para um objeto de destino.
LoadVars.toString()
Retorna uma seqüência de caracteres codificados de URL que
contenha todas as variáveis enumeráveis do objeto LoadVars.
Resumo das propriedades da classe LoadVars
468
Propriedade
Descrição
LoadVars.contentType
Indica um tipo de dados MIME.
LoadVars.loaded
Um valor booleano que indica se foi realizada uma operação load
ou sendAndLoad.
Capítulo 12: Dicionário do ActionScript
Resumo de manipuladores de eventos da classe LoadVars
Identificador de eventos
Descrição
LoadVars.onLoad
Chamado quando uma operação load or sendAndLoad é concluída.
Construtor da classe LoadVars
Disponibilidade
Flash Player 6.
Uso
new LoadVars()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Construtor; cria um objeto LoadVars. Em seguida, você pode usar os métodos desse objeto
LoadVars para enviar e carregar dados.
Exemplo
O exemplo abaixo cria um objeto LoadVars chamado my_lv:
var my_lv = new LoadVars();
LoadVars.addRequestHeader()
Disponibilidade
Flash Player 6.
Uso
my_lv.addRequestHeader(headerName, headerValue)
my_lv.addRequestHeader(["headerName_1", "headerValue_1" ... "headerName_n",
"headerValue_n"])
Parâmetros
headerName
headerValue
Nome de cabeçalho de solicitação HTTP.
Valor associado ao headerName.
Retorna
Nada.
LoadVars.addRequestHeader()
469
Descrição
Método; adiciona ou altera os cabeçalhos de solicitação HTTP (como Content-Type ou
SOAPAction) enviados com ações POST. No primeiro uso, passam-se duas seqüências de caracteres
para o método: headerName e headerValue. No segundo uso, passa-se um array de seqüências de
caracteres, que alterna nomes e valores de cabeçalho.
Se forem feitas várias chamadas para definir o mesmo nome de cabeçalho, cada valor sucessivo
substituirá o valor definido na chamada anterior.
Os seguintes cabeçalhos HTTP padrão não podem ser incluídos nem alterados com este método:
Accept-Ranges, Age, Allow, Allowed, Connection, Content-Length, Content-Location,
Content-Range, ETag, Host, Last-Modified, Locations, Max-Forwards, ProxyAuthenticate, Proxy-Authorization, Public, Range, Retry-After, Server, TE, Trailer,
Transfer-Encoding, Upgrade, URI, Vary, Via, Warning e WWW-Authenticate.
Exemplo
Este exemplo acrescenta ao objeto my_lv um cabeçalho HTTP personalizado, denominado
SOAPAction, com o valor qualquer.
my_lv.addRequestHeader("SOAPAction", "'qualquer");
O seguinte exemplo cria um array denominado cabeçalhos que contém dois cabeçalhos HTTP
alternados com seus respectivos valores. O array é passado como argumento para
addRequestHeader().
var headers = ["Content-Type", "text/plain", "X-ClientAppVersion", "2.0"];
my_lv.addRequestHeader(cabeçalhos);
Consulte também
XML.addRequestHeader()
470
Capítulo 12: Dicionário do ActionScript
LoadVars.contentType
Disponibilidade
Flash Player 6.
Uso
my_lv.contentType
Descrição
Propriedade; o tipo MIME enviado ao servidor quando você chama LoadVars.send() ou
LoadVars.sendAndLoad(). O padrão é aplicativo/x-www-codificado na forma de url.
Consulte também
LoadVars.send(), LoadVars.sendAndLoad()
LoadVars.getBytesLoaded()
Disponibilidade
Flash Player 6.
Uso
my_lv.getBytesLoaded()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna a quantidade de bytes descarregada por LoadVars.load() ou
LoadVars.sendAndLoad(). Este método retornará undefined se não houver nenhum
carregamento em execução ou se a carga ainda não tiver sido iniciada.
LoadVars.getBytesLoaded()
471
LoadVars.getBytesTotal()
Disponibilidade
Flash Player 6.
Uso
my_lv.getBytesTotal()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna a quantidade total de bytes descarregada por LoadVars.load() ou
LoadVars.sendAndLoad(). Este método retornará undefined se não houver nenhum
carregamento em execução ou se a carga ainda não tiver sido iniciada. Este método também
retornará undefined se não for possível determinar o número total de bytes, por exemplo,
quando o download tiver sido iniciado, mas o servidor não tiver transmitido um elemento
content-length de HTTP.
LoadVars.load()
Disponibilidade
Flash Player 6.
Uso
my_lv.load(url)
Parâmetros
url
O URL de onde será feito o download das variáveis.
Retorna
Uma seqüência de caracteres.
Descrição
Método; faz download de variáveis do URL especificado, analisa os dados da variável e coloca as
variáveis resultantes em my_lv. As propriedades de my_lv com o mesmo nome de variáveis
descarregadas são substituídas. As propriedades de my_lv com nomes diferentes das variáveis
descarregadas não são excluídas. Esta é uma ação assíncrona.
Os dados descarregados devem estar codificados com o tipo de conteúdo MIME aplicativo/xwww-codificado na forma de url. Este é o mesmo formato usado por loadVariables().
Este método é semelhante a XML.load().
472
Capítulo 12: Dicionário do ActionScript
LoadVars.loaded
Disponibilidade
Flash Player 6.
Uso
my_lv.loaded
Descrição
Propriedade; indefinida por padrão. Quando é iniciada a operação LoadVars.load() ou
LoadVars.sendAndLoad(), a propriedade loaded é definida como false; quando a operação é
concluída, a propriedade loaded é definida como true. Se a operação ainda não tiver sido
concluída ou tiver apresentado erros, a propriedade loaded permanecerá definida como false.
Esta propriedade é semelhante a XML.loaded.
LoadVars.loaded
473
LoadVars.onData
Disponibilidade
Flash Player 5.
Uso
my_lv.onData = function(src) {
// seus comandos vão aqui
}
Parâmetros
src Dados brutos (não analisados) de uma chamada de método LoadVars.load() ou
.LoadVars.sendAndLoad()
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando totalmente concluído o download dos dados do
servidor ou se ocorrer um erro durante o download de dados de um servidor. Este manipulador é
chamado antes da análise dos dados e, portanto, pode ser usado para chamar uma rotina de
análise personalizada em vez da análise incorporada ao Flash Player. O valor do parâmetro src
passado para a função associada a LoadVars.onData pode ser undefined ou uma seqüência de
caracteres que contenha os pares de valores de nome com codificação URL descarregados do
servidor. Se o valor retornado for undefined, terá ocorrido um erro durante o download dos
dados do servidor.
A implementação padrão de LoadVars.onData invoca LoadVars.onLoad. Você pode substituir a
implementação padrão atribuindo uma função personalizada a LoadVars.onData, porém
LoadVars.onLoad não será mais chamado a menos que você o chame na implementação de
LoadVars.onData.
Exemplo
O exemplo abaixo mostra a implementação padrão de LoadVars.onData:
LoadVars.prototype.onData = function (src) {
if (src == undefined) {
this.onLoad(false);
else {
this.decode(src);
this.loaded = true;
this.onLoad(true);
}
}
474
Capítulo 12: Dicionário do ActionScript
LoadVars.onLoad
Disponibilidade
Flash Player 6.
Uso
my_lv.onLoad = function(sucesso) {
// seus comandos vão aqui
}
Parâmetros
sucesso
O parâmetro indica se a operação de carregamento foi concluída com êxito (true) ou
não (false).
Retorna
Um valor booleano.
Descrição
Manipulador de eventos; chamado quando é concluída uma operação LoadVars.load() ou
LoadVars.sendAndLoad(). Se a operação tiver sido bem sucedida, my_lv será preenchida com
variáveis descarregadas pela operação, que ficarão disponíveis quando este manipulador for
invocado.
Este método permanecerá indefinido por padrão, mas será possível defini-lo pela associação de
uma função de retorno de chamada.
Este método é semelhante a XML.onLoad().
LoadVars.onLoad
475
LoadVars.send()
Disponibilidade
Flash Player 6.
Uso
my_lv.send(url [,destino, método])
Parâmetros
url
O URL no qual as variáveis devem ser carregadas.
destino
A janela de quadro do navegador na qual as respostas serão exibidas.
método
O método GET ou POST do protocolo HTTP.
Retorna
Uma seqüência de caracteres.
Descrição
Método; envia as variáveis do objeto my_lv para o URL especificado. Todas as variáveis
enumeráveis de my_lv são concatenadas a uma seqüência de caracteres no formato application/xwww-urlform-encoded, por padrão, e a seqüência de caracteres é enviada para o URL usando o
método HTTP POST. Este é o mesmo formato usado pela ação loadVariables(). O tipo de
conteúdo MIME enviado nos cabeçalhos de solicitação HTTP é o valor de my_lv.contentType
ou o padrão application/x-www-urlform-encoded. É usado o método POST, a menos que seja
especificado GET.
Se o parâmetro destino for especificado, a resposta do servidor será exibida na janela de quadro
do navegador chamada destino. Se o parâmetro destino for omitido, a resposta do servidor será
descartada.
Este método é semelhante a XML.send().
476
Capítulo 12: Dicionário do ActionScript
LoadVars.sendAndLoad()
Disponibilidade
Flash Player 6.
Uso
my_lv.sendAndLoad(url, objetoDestino[, método])
Parâmetros
O objeto LoadVars a partir do qual as variáveis devem ser carregadas.
my_lv
url
O URL no qual as variáveis devem ser carregadas.
targetObject
método
O objeto LoadVars que recebe as variáveis descarregadas.
O método GET ou POST do protocolo HTTP.
Retorna
Uma seqüência de caracteres.
Descrição
Método; envia variáveis do objeto my_lv para o URL especificado. A resposta do servidor é
descarregada e analisada como dados variáveis. As variáveis resultantes são colocadas no objeto
objetoDestino.
As variáveis são enviadas por POST da mesma maneira que em LoadVars.send(). As variáveis
são descarregadas em objetoDestino da mesma maneira que em LoadVars.load().
Este método é semelhante a XML.sendAndLoad().
LoadVars.sendAndLoad()
477
LoadVars.toString()
Disponibilidade
Flash Player 6.
Uso
my_lv.toString()
Parâmetros
Nenhum.
Retorna
Uma seqüência de caracteres.
Descrição
Método; retorna uma seqüência de caracteres que contém todas as variáveis enumeráveis em
my_lv, na codificação de conteúdo MIME application/x-www-urlform-encoded.
Exemplo
var myVars = new LoadVars();
myVars.name = “Gary”;
myVars.age = 26;
trace (myVars.toString());
//would output
//nome=Beto&idade=26
478
Capítulo 12: Dicionário do ActionScript
Classe LocalConnection
Disponibilidade
Flash Player 6.
Descrição
A classe LocalConnection permite que você desenvolva arquivos SWF que possam enviar
instruções uns aos outros sem usar fscommand() ou JavaScript. Objetos LocalConnection só
podem se comunicar entre arquivos SWF em execução na mesma máquina cliente, porém podem
ser executados em dois aplicativos diferentes — por exemplo, um arquivo SWF em execução em
um navegador e um arquivo SWF em execução em um projetor. Os objetos LocalConnection
podem ser usados para enviar e receber dados dentro de um único SWF, mas esta não é uma
implementação padrão; todos os exemplos desta seção ilustram a comunicação entre diferentes
SWFs.
Os métodos básicos usados para enviar e receber dados são LocalConnection.send() e
No modo mais básico, o código implementará os seguintes
comandos. Observe que tanto o comando LocalConnection.send() quanto o
LocalConnection.connect() especificam o mesmo nome de conexão, lc_name:
LocalConnection.connect().
// Código no filme receptor
receiving_lc = new LocalConnection();
receiving_lc.metodoAExecutar = function(param1, param2)
{
// Código a executar
}
receiving_lc.connect("lc_name");
// Código no filme emissor
sending_lc = new LocalConnection();
sending_lc.send("lc_name", "metodoAExecutar", dado1, dado2)
A maneira mais simples de usar um objeto LocalConnection é permitir a comunicação somente
entre objetos LocalConnection localizados no mesmo domínio, pois você não terá que cuidar de
questões relativas à segurança. Entretanto, se precisar permitir a comunicação entre domínios,
você terá várias maneiras de implementar medidas de segurança. Para obter mais informações,
consulte a descrição do parâmetro connectionName em LocalConnection.send(), além das
entradas LocalConnection.allowDomain e LocalConnection.domain().
Resumo de métodos da classe LocalConnection
Método
Descrição
LocalConnection.close()
Fecha (desconecta) o objeto LocalConnection.
LocalConnection.connect()
Prepara o objeto LocalConnection para receber comandos de um
comando LocalConnection.send().
LocalConnection.domain()
Retorna uma seqüência de caracteres que representa o
subdomínio do local do arquivo SWF atual.
LocalConnection.send()
Invoca um método de um objeto LocalConnection específico.
Classe LocalConnection
479
Resumo de manipuladores de eventos da classe LocalConnection
Identificador de eventos
Descrição
LocalConnection.allowDomain
Invocado sempre que o objeto LocalConnection (receptor) atual
recebe uma solicitação para invocar um método de um objeto
LocalConnection emissor.
LocalConnection.onStatus
Invocado depois que um objeto LocalConnection emissor tenta
enviar um comando para um objeto LocalConnection receptor.
Construtor da classe LocalConnection
Disponibilidade
Flash Player 6.
Uso
new LocalConnection()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Construtor; cria um objeto LocalConnection.
Exemplo
O exemplo abaixo mostra como um SWF receptor e emissor cria objetos LocalConnnection.
Observe que os dois SWF podem usar o mesmo nome ou nomes diferentes para os respectivos
objetos LocalConnection. Neste exemplo, eles usam o mesmo nome — my_lc.
// Código do SWF receptor
my_lc = new LocalConnection();
my_lc.umMetodo = function() {
// Seus comandos vão aqui
}
my_lc.connect("connectionName");
// Código do SWF emissor
my_lc = new LocalConnection();
my_lc.send("connectionName", "umMetodo");
Consulte também
LocalConnection.connect(), LocalConnection.send()
480
Capítulo 12: Dicionário do ActionScript
LocalConnection.allowDomain
Disponibilidade
Flash Player 6.
Uso
receiving_lc.allowDomain = function([sendingDomain]) {
// Seus comandos, que retornam true ou false
}
Parâmetros
Parâmetro opcional que especifica o subdomínio do arquivo SWF que contém
o objeto LocalConnection emissor.
sendingDomain
Retorna
Nada.
Descrição
Manipulador de eventos; invocado sempre que receiving_lc recebe uma solicitação para
invocar um método de um objeto LocalConnection emissor. O Flash espera de que o código que
você implementar neste manipulador retorne um valor booleano true ou false. Se o
manipulador não retornar true, a solicitação do objeto emissor será ignorada e o método não será
invocado.
Use este comando para permitir explicitamente que objetos LocalConnection dos domínios
especificados ou de qualquer domínio executem métodos do objeto LocalConnection receptor.
Se não passar um valor para o parâmetro sendingDomain, assume-se que você deseja aceitar
comandos de qualquer domínio. Neste caso, o código do seu manipulador será simplesmente
return true. Caso passe um valor para sendingDomain, seu código deverá comparar o valor de
sendingDomain com os domínios dos quais deseja a aceitar comandos. Essas duas
implementações são ilustradas nos seguintes exemplos.
Exemplo
O exemplo abaixo mostra como um objeto LocalConnection de um SWF receptor pode permitir
que SWFs de qualquer domínio invoquem seus métodos. Compare com o exemplo em
LocalConnection.connect(), no qual somente SWFs do mesmo domínio podem invocar o
método Trace no SWF receptor. Para obter uma descrição do uso do sublinhado (_) no nome da
conexão, consulte LocalConnection.send().
var aLocalConnection = new LocalConnection();
aLocalConnection.Trace = function(aString)
{
aTextField = aTextField + aString + newline;
}
aLocalConnection.allowDomain = function() {
// Qualquer domínio pode invocar métodos deste objeto LocalConnection
retorna true;
}
aLocalConnection.connect("_trace");
LocalConnection.allowDomain
481
No exemplo abaixo, o arquivo SWF receptor aceita comandos somente dos SWF localizados em
esteDominio.com ou em aqueleDominio.com.
var aLocalConnection = new LocalConnection();
aLocalConnection.Trace = function(aString)
{
aTextField = aTextField + aString + newline;
}
aLocalConnection.allowDomain = function(sendingDomain)
{
return(sendingDomain=="esteDominio.com" ||
sendingDomain=="aqueleDomínio.com");
}
aLocalConnection.connect("_trace");
Consulte também
LocalConnection.connect(), LocalConnection.domain(), LocalConnection.send()
LocalConnection.allowInsecureDomain()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 7.
LocalConnection.close()
Disponibilidade
Flash Player 6.
Uso
receiving_lc.close
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; fecha (desconecta) um objeto LocalConnection. Utilize este comando quando não
LocalConnection.connect() quiser mais que o objeto aceite comandos — por exemplo,
quando quiser utilizar um comando usando o mesmo parâmetro connectionName em outro
arquivoSWF.
Consulte também
LocalConnection.connect()
482
Capítulo 12: Dicionário do ActionScript
LocalConnection.connect()
Disponibilidade
Flash Player 6.
Uso
receiving_lc.connect(connectionName)
Parâmetros
connectionName Seqüência de caracteres correspondente ao nome da conexão especificada
comando LocalConnection.send(), que deve fazer a comunicação com receiving_lc.
no
Retorna
O valor booleano true, se não houver outro processo em execução, na mesma máquina cliente,
que já tenha emitido este comando com o mesmo valor para o parâmetro connectionName.
Caso contrário, o valor será false.
Descrição
Método; prepara um objeto LocalConnection para receber comandos de um comando
LocalConnection.send() (chamado "objeto LocalConnection emissor”). O objeto usado com
este comando é chamado "objeto LocalConnection receptor". Os objetos receptor e emissor
devem estar em execução na mesma máquina cliente.
É importante definir os métodos anexados a receiving_lc antes de chamar este método,
conforme mostrado em todos os exemplos desta seção.
Por padrão, o Flash Player converte connectionName em um valor no formato
"subdomain:connectionName", onde subdomain é o subdomínio do arquivo SWF que contém
o comando LocalConnection.connect(). Se, por exemplo, o SWF que contém o objeto
LocalConnection receptor estiver no endereço www.umDominio.com, o connectionName o
resolverá com "umDominio.com:connectionName". (Se um SWF for localizado na máquina
cliente, o valor atribuído a subdomain será "localhost".)
Também como padrão, o Flash Player permite que o objeto LocalConnection receptor aceite
comandos apenas dos objetos LocalConnection emissores cujos nomes de conexão também
estejam no formato "subdomain:connectionName". Deste modo, o Flash torna muito simples a
comunicação entre os SWFs localizados no mesmo domínio.
Se você estiver implementando comunicação somente entre arquivos SWF do mesmo domínio,
especifique uma seqüência de caracteres para connectionName que não comece com um
sublinhado (_) e que não especifique um nome de domínio (por exemplo,
"myDomain:connectionName"). Use a mesma seqüência de caracteres no comando
LocalConnection.connect(connectionName).
Se você estiver implementando comunicação entre arquivos SWF localizados em domínios
diferentes, consulte LocalConnection.send() e LocalConnection.allowDomain, além da
discussão sobre connectionName em LocalConnection.domain().
LocalConnection.connect()
483
Exemplo
O exemplo abaixo mostra como um arquivo SWF em um determinado domínio pode invocar um
método chamado Trace em um SWF receptor do mesmo domínio. O SWF receptor funciona
como uma janela do SWF emissor onde se apresentam textos através de ações trace. Ele contém
dois métodos que podem ser chamados por outros SWF — Trace e Clear. Pressionar botões nos
SWF emissores chama esses métodos com os parâmetros especificados.
// SWF receptor
var aLocalConnection = new LocalConnection();
aLocalConnection.Trace = function(aString)
{
aTextField = aTextField + aString + newline;
}
aLocalConnection.Clear = function()
{
aTextField = "";
}
aLocalConnection.connect("trace");
stop();
O SWF1 contém o seguinte código anexado a um botão com o rótulo Pressione. Ao pressionar o
botão, você verá a frase "O botão foi pressionado" no SWF receptor.
on (press)
{
var lc = new LocalConnection();
lc.send("trace", "Trace", "O botão foi pressionado.");
delete lc;
}
O SWF 2 contém uma caixa de texto de entrada com um nome de variável myText e o seguinte
código anexado a um botão com o rótulo Copy (Copiar). Ao digitar algum texto e pressionar o
botão, você verá o texto que digitou no SWF receptor.
on (press)
{
_parent.lc.send("trace", "Trace", _parent.myText);
_parent.myText = "";
}
O SWF 3 contém o seguinte código anexado a um botão com o rótulo Clear (Limpar).
Ao pressionar o botão, você limpa (apaga) o conteúdo da janela de controle do SWF receptor.
on (press)
{
var lc = new LocalConnection();
lc.send("trace", "Clear");
delete lc;
}
Consulte também
LocalConnection.send()
484
Capítulo 12: Dicionário do ActionScript
LocalConnection.domain()
Disponibilidade
Flash Player 6.
Uso
my_lc.domain()
Parâmetros
Nenhum.
Retorna
Uma seqüência de caracteres que representa o subdomínio do local do atual arquivo SWF.
Descrição
Método; retorna uma seqüência de caracteres que representa o subdomínio do local do arquivo
SWF atual. Se, por exemplo, o SWF estiver localizado no endereço www.macromedia.com, este
comando retorna "macromedia.com". Se o SWF atual for um arquivo local residente na máquina
cliente, este comando retornará "localhost".
A maneira mais comum de usar este comando é incluindo o nome de domínio do objeto
LocalConnection emissor como um parâmetro para o método que você planeja invocar no objeto
LocalConnection receptor, ou em conjunto com LocalConnection.allowDomain para aceitar
comandos de um determinado domínio. Se estiver ativando a comunicação somente entre objetos
LocalConnection localizados no mesmo domínio, você provavelmente não precisará usar este
comando.
Exemplo
No exemplo abaixo, o SWF receptor somente aceita comandos de outros SWF localizados no
mesmo domínio ou no macromedia.com.
my_lc = new LocalConnection();
my_lc.allowDomain = function(sendingDomain)
{
return (sendingDomain==this.domain() || sendingDomain=="macromedia.com");
}
Neste exemplo, um SWF localizado em seudominio.com invoca um método em um SWF
receptor localizado em meudominio.com. O SWF emissor inclui seu nome de domínio como um
parâmetro para o método que invoca, assim o SWF receptor pode retornar um valor de resposta
para um objeto LocalConnection no domínio correto. O SWF emissor também especifica que
aceitará comandos somente dos SWF em meudominio.com.
Os números de linhas são incluídos para fins de referência. A seqüência de eventos é a seguinte:
• O SWF receptor prepara-se para receber comandos em uma conexão chamada "sum"
•
(linha 11). O Flash Player resolve o nome desta conexão como "meudominio.com:sum"
(consulte LocalConnection.connect()).
O SWF emissor prepara-se para receber uma resposta no objeto LocalConnection chamado
"result" (linha 58). E também especifica que aceitará comandos somente de SWF do
meudominio.com (linhas 51 a 53).
LocalConnection.domain()
485
• O SWF invoca o método aSum de uma conexão chamada "meudominio.com:sum" (linha 59) e
•
passa os seguintes parâmetros: seu domínio (lc.domain()), o nome da conexão para
recebimento da resposta ("result") e os valores que devem ser usados por aSum (123 e 456).
O método aSum (linha 6) é invocado com os seguintes valores:
sender="meudominio.com:result", replyMethod="aResult", n1=123, and n2=456.
Portanto, ele executa a seguinte linha de código:
this.send("meudominio.com:result", "aResult", (123 + 456));
• O método aResult (linha 54) exibe o valor retornado por aSum (579).
// O SWF receptor em http://www.meudominio.com/folder/movie.swf
// contém o seguinte código
1
2
3
4
5
6
7
8
9
10
11
var aLocalConnection = new LocalConnection();
aLocalConnection.allowDomain = function()
{
// Permite conexões de qualquer domínio
return true;
}
aLocalConnection.aSum = function(sender, replyMethod, n1, n2)
{
this.send(sender, replyMethod, (n1 + n2));
}
aLocalConnection.connect("sum");
// O SWF emissor em http://www.seudominio.com/folder/movie.swf
// contém o seguinte código
50
51
52
53
54
55
56
57
58
59
var lc = new LocalConnection();
lc.allowDomain = function(aDomain) {
// Permite conexões somente de meudominio.com
return (aDomain == "meudominio.com");
}
lc.aResult = function(aParam) {
trace("A soma é " + aParam);
}
lc.connect("result");
lc.send("meudominio.com:sum", "aSum", lc.domain() + ':' + "result",
"aResult", 123, 456);
Consulte também
LocalConnection.allowDomain
486
Capítulo 12: Dicionário do ActionScript
LocalConnection.onStatus
Disponibilidade
Flash Player 6.
Uso
sending_lc.onStatus = function(infoObject) {
// seus comandos vão aqui
}
Parâmetros
Um parâmetro definido de acordo com a mensagem de status. Para obter
informações sobre este parâmetro, veja a descrição abaixo.
infoObject
Retorna
Nada.
Descrição
Manipulador de eventos; invocado depois que um objeto LocalConnection emissor tenta enviar
um comando para um objeto LocalConnection receptor. Se quiser responder a este manipulador
de eventos, você precisará criar uma função para processar o objeto de informações enviado pelo
objeto LocalConnection.
Se a propriedade level do objeto de informações retornado por este manipulador apresentar o
valor "status", o Flash terá tido sucesso no envio do comando para um objeto LocalConnection
receptor. Isto não significa que o Flash invocou com êxito o método específico do objeto
LocalConnection receptor, mas significa apenas que o Flash conseguiu enviar o comando.
Por exemplo, o método não será invocado se o objeto LocalConnection receptor não permitir
conexões do domínio emissor ou se não for um método existente. A única maneira de saber com
certeza se o método foi invocado é fazendo com que o objeto receptor envie uma resposta ao
objeto emissor.
Se a propriedade level do objeto de informações retornado por este identificador apresentar o
valor "error", o Flash não terá conseguido enviar o comando para um objeto LocalConnection
receptor, muito provavelmente porque não há nenhum objeto LocalConnection receptor
conectado cujo nome corresponda ao nome especificado no comando sending_lc.send() que
invocou este manipulador.
Na maioria dos casos, você implementará este manipulador somente para responder às condições
de erro, conforme mostrado no exemplo abaixo.
Exemplo
Este exemplo exibe informações em uma janela de controle sobre uma conexão interrompida.
sending_lc = new LocalConnection();
sending_lc.onStatus = function(infoObject)
{
if (infoObject.level == "error")
{
trace("Não foi possível conectar.");
}
}
sending_lc.send("receiving_lc", "methodName");
LocalConnection.onStatus
487
Consulte também
LocalConnection.send()
LocalConnection.send()
Disponibilidade
Flash Player 6.
Uso
sending_lc.send (connectionName, method [, p1,...,pN])
Parâmetros
connectionName Seqüência de caracteres que corresponde ao nome de conexão especificado no
comando LocalConnection.connect() que precisa se comunicar com sending_lc.
method Seqüência de caracteres que especifica o nome do método a ser invocado no objeto
LocalConnection receptor. Os nomes dos seguintes métodos levam à falha do comando: send,
connect, close, domain, onStatus e allowDomain.
p1,...pN
Parâmetros opcionais que devem ser passados para o método específico.
Retorna
O valor booleano true, se o Flash puder executar a solicitação; caso contrário, o valor será false.
Observação: O retorno do valor true não significa necessariamente que o Flash conectou-se com
êxito a um objeto LocalConnection receptor, mas que o comando está sintaticamente correto. Para
determinar se a conexão foi bem sucedida, consulte LocalConnection.onStatus.
Descrição
Método; invoca o método chamado method em uma conexão aberta com o comando
LocalConnection.connect(connectionName) (chamado “objeto LocalConnection receptor”).
O objeto usado com este comando é chamado “objeto LocalConnection emissor”. Os arquivos
SWF que contêm os objetos emissor e receptor devem estar em execução na mesma máquina
cliente.
Há um limite para a quantidade de dados que pode ser passada como parâmetro para este
comando. Se o comando retornar false, mas a sintaxe estiver correta, tente dividir as solicitações
LocalConnection.send() em vários comandos.
Conforme discutido na entrada LocalConnection.connect(), como padrão, o Flash adiciona o
atual subdomínio a connectionName. Se estiver implementando comunicação entre domínios
diferentes, você precisará definir o connectionName nos dois objetos LocalConnection emissor e
receptor, de tal maneira que o Flash não adicione o atual subdomínio ao connectionName.
Há duas maneiras de fazer isso:
• Use um sublinhado (_) no início do connectionName dos objetos LocalConnection emissor e
receptor. No arquivo SWF que contém o objeto receptor, use
para especificar que as conexões de qualquer domínio serão
aceitas. Esta implementação permite que você armazene os SWF emissor e receptor em
qualquer domínio.
LocalConnection.allowDomain
488
Capítulo 12: Dicionário do ActionScript
• Inclua o subdomínio do connectionName no objeto LocalConnection emissor. Por exemplo,
meudominio:myConnectionName.
No objeto receptor, use LocalConnection.allowDomain
para indicar que as conexões do domínio especificado serão aceitas (neste caso,
meudominio.com) ou que as conexões de qualquer domínio serão aceitas.
Observação: Você não pode especificar um subdomínio do connectionName no objeto
LocalConnection receptor, somente no objeto LocalConnection emissor.
Exemplo
Para obter um exemplo da comunicação entre objetos LocalConnection localizados no mesmo
domínio, consulte LocalConnection.connect(). Para obter um exemplo da comunicação entre
objetos LocalConnection localizados em qualquer domínio, consulte
LocalConnection.allowDomain. Para obter um exemplo da comunicação entre objetos
LocalConnection localizados em domínios específicos, consulte LocalConnection.allowDomain
e LocalConnection.domain().
Consulte também
LocalConnection.allowDomain, LocalConnection.connect(),
LocalConnection.domain(), LocalConnection.onStatus
lt (menor que — seqüência de caracteres específica)
Disponibilidade
Flash Player 4. Este operador foi substituído no Flash 5 pelo novo operador < (menor que).
Uso
expression1 lt expression2
Parâmetros
expression1, expression2
Números, seqüências de caracteres ou variáveis
Descrição
Operador (comparação); compara a expression1 com a expression2 e retorna true se
expression1 for menor do que expression2; caso contrário, retorna false.
Consulte também
< (menor que)
lt (menor que — seqüência de caracteres específica)
489
Classe Math
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Descrição
A classe Math é uma classe do nível mais alto, cujos métodos e propriedades podem ser usados
sem um construtor.
Use os métodos e propriedades desta classe para acessar e manipular constantes e funções
matemáticas. Todas as propriedades e métodos da classe Math são estáticas e devem ser chamadas
com a sintaxe Math.method(parameter) ou Math.constant. Em ActionScript, as constantes são
definidas com a precisão máxima de números de ponto flutuante IEEE-754 de dupla precisão.
Vários métodos da classe Math usam o radiano de um ângulo como parâmetro. Você pode usar a
equação abaixo para calcular os valores radianos ou simplesmente passar a equação (inserindo um
valor para graus) para o parâmetro radiano.
Para calcular um valor radiano, use esta fórmula:
radiano = Math.PI/180 * grau
O exemplo a seguir mostra a passagem de uma equação como um parâmetro para calcular o seno
de um ângulo de 45 graus:
Math.SIN(Math.PI/180 * 45)
é o mesmo que Math.SIN(.7854)
A classe Math é totalmente suportada no Flash Player 5. No Flash Player 4, podem ser usados
métodos da classe Math, mas eles são emulados com aproximações e podem não ser tão precisos
como as funções matemáticas não emuladas suportadas pelo Flash Player 5.
Resumo de métodos da classe Math
490
Método
Descrição
Math.abs()
Calcula um valor absoluto.
Math.acos()
Calcula um arco cosseno.
Math.asin()
Calcula um arco seno.
Math.atan()
Calcula um arco tangente.
Math.atan2()
Calcula um ângulo do eixo x ao ponto.
Math.ceil()
Arredonda um número para o inteiro mais próximo
Math.cos()
Calcula um cosseno.
Math.exp()
Calcula um valor exponencial.
Math.floor()
Arredonda um número para o inteiro mais próximo
Math.log()
Calcula um logaritmo natural.
Math.max()
Retorna o maior de dois inteiros.
Capítulo 12: Dicionário do ActionScript
Método
Descrição
Math.min()
Retorna o menor de dois inteiros.
Math.pow()
Calcula x elevado à potência de y.
Math.random()
Retorna um número pseudo-aleatório entre 0.0 e 1.0.
Math.round()
Arredonda para o inteiro mais próximo.
Math.sin()
Calcula um seno.
Math.sqrt()
Calcula uma raiz quadrada.
Math.tan()
Calcula uma tangente.
Resumo de propriedades da classe Math
Todas as propriedades da classe Math são constantes.
Propriedade
Descrição
Math.E
Constante de Euler e a base de logaritmos naturais (aproximadamente 2,718).
Math.LN2
O logaritmo natural de 2 (aproximadamente 0,693).
Math.LOG2E
O logaritmo de base 2 de e (aproximadamente 1,442).
Math.LN2
O logaritmo natural de10 (aproximadamente 2,302).
Math.LOG10E
O logaritmo de base 10 de e (aproximadamente 0,434).
Math.PI
A razão entre a circunferência de um círculo e o seu diâmetro (aproximadamente
3,14159).
Math.SQRT1_2
O inverso da raiz quadrada de 1/2 (aproximadamente 0,707).
Math.SQRT2
A raiz quadrada de 2 (aproximadamente 1,414).
Math.abs()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.abs(x)
Parâmetros
x
Um número.
Retorna
Um número.
Descrição
Método; calcula e retorna o valor absoluto do número especificado pelo parâmetro x.
Math.abs()
491
Math.acos()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.acos(x)
Parâmetros
x
Um número de -1,0 a 1,0.
Retorna
Nada.
Descrição
Método; calcula e retorna o arco cosseno do número especificado no parâmetro x, em radianos.
Math.asin()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.asin(x);
Parâmetros
x
Um número de -1,0 a 1,0.
Retorna
Um número.
Descrição
Método; calcula e retorna o arco seno de um número especificado no parâmetro x, em radianos.
492
Capítulo 12: Dicionário do ActionScript
Math.atan()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.atan(x)
Parâmetros
x
Um número.
Retorna
Um número.
Descrição
Método; calcula e retorna o arco tangente do número especificado no parâmetro x. O valor
retornado está entre o pi negativo dividido por 2 e o pi positivo dividido por 2.
Math.atan2()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.atan2(y, x)
Parâmetros
x
Um número que especifica a coordenada x do ponto.
y
Um número que especifica a coordenada y do ponto.
Retorna
Um número.
Descrição
Método; calcula e retorna o arco tangente de y/x em radianos. O valor retornado representa o
ângulo referente ao cateto oposto de um triângulo retângulo, onde x é o cateto adjacente e y é o
cateto oposto.
Math.atan2()
493
Math.ceil()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.ceil(x)
Parâmetros
x
Um número ou expressão.
Retorna
Um número.
Descrição
Método; retorna o teto do número ou expressão especificada. O teto de um número é o número
inteiro mais próximo que é maior que ou igual ao número.
Math.cos()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e as propriedades da classe Math são emulados
através de aproximações e podem não ser tão precisos quanto as funções matemáticas não
emuladas suportadas pelo Flash Player 5.
Uso
Math.cos(x)
Parâmetros
x
Um ângulo medido em radianos.
Retorna
Um número.
Descrição
Método; retorna o cosseno (um valor de -1,0 a 1,0) do ângulo especificado pelo parâmetro x.
O ângulo x deve ser especificado em radianos. Use as informações descritas na entrada Classe
Math para calcular um radiano.
494
Capítulo 12: Dicionário do ActionScript
Math.E
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.E
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; uma constante matemática para a base de logaritmos naturais, apresentados como e.
O valor aproximado de e é 2,71828.
Math.exp()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.exp(x)
Parâmetros
x
O exponente; um número ou expressão.
Retorna
Um número.
Descrição
Método; retorna o valor de base do logaritmo natural (e) elevado à potência do exponente
especificado no parâmetro x. A constante Math.E pode fornecer o valor de e.
Math.exp()
495
Math.floor()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.floor(x)
Parâmetros
x
Um número ou expressão.
Retorna
Um número.
Descrição
Método; retorna o piso do número ou expressão especificada no parâmetro x. O piso é o inteiro
mais próximo menor ou igual ao número ou expressão especificada.
Exemplo
O exemplo de código a seguir retorna um valor 12:
Math.floor(12.5);
Math.log()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.log(x)
Parâmetros
x
Um número ou expressão com um valor maior que 0.
Retorna
Um número.
Descrição
Método; retorna o logaritmo do parâmetro x.
496
Capítulo 12: Dicionário do ActionScript
Math.LN2
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.LN2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; uma constante matemática do logaritmo natural de 2, expressa como log e2, com um
valor aproximado de 0.69314718055994528623.
Math.LN10
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.LN10
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; uma constante matemática do logaritmo natural de 10, expressa como log e10, com
um valor aproximado de 2,3025850929940459011.
Math.LN10
497
Math.LOG2E
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e as propriedades da classe Math são emulados
através de aproximações e podem não ser tão precisos quanto as funções matemáticas não
emuladas suportadas pelo Flash Player 5.
Uso
Math.LOG2E
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; constante matemática do logaritmo de base 2 da constante e (Math.E), expressa como
log2e, com um valor aproximado de 1,442695040888963387.
Math.LOG10E
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.LOG10E
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; uma constante matemática para o logaritmo de base 10 da constante e (Math.E),
expressa como log 10e, com um valor aproximado de 0,43429448190325181667.
498
Capítulo 12: Dicionário do ActionScript
Math.max()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.max(x , y)
Parâmetros
x
Um número ou expressão.
y
Um número ou expressão.
Retorna
Um número.
Descrição
Método; avalia x e y e retorna o maior valor.
Math.min()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.min(x , y)
Parâmetros
x
Um número ou expressão.
y
Um número ou expressão.
Retorna
Um número.
Descrição
Método; avalia x e y e retorna o menor valor.
Math.min()
499
Math.PI
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.PI
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; uma constante matemática da razão entre a circunferência de um círculo e o seu
diâmetro expressa como pi, com um valor de 3,14159265358979
Math.pow()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.pow(x , y)
Parâmetros
x
Um número a ser elevado a uma potência.
y
Um número que especifica a potência à qual o parâmetro x é elevado.
Retorna
Um número.
Descrição
Método; calcula e retorna x à potência de y: xy.
500
Capítulo 12: Dicionário do ActionScript
Math.random()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.random()
Parâmetros
Nenhum.
Retorna
Um número.
Descrição
Método; retorna n, onde 0 <= n < 1.
Consulte também
random
Math.round()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.round(x)
Parâmetros
x
Um número.
Retorna
Um número.
Descrição
Método; arredonda o valor do parâmetro x para cima ou para baixo para o inteiro mais próximo e
retorna esse valor.
Math.round()
501
Math.sin()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e as propriedades da classe Math são emulados
através de aproximações e podem não ser tão precisos quanto as funções matemáticas não
emuladas suportadas pelo Flash Player 5.
Uso
Math.sin(x)
Parâmetros
x
Um ângulo medido em radianos.
Retorna
Número; o seno do ângulo especificado (entre -1,0 e 1,0).
Descrição
Método; calcula e retorna o seno do ângulo especificado em radianos. Use as informações
descritas na entrada Classe Math para calcular um radiano.
Math.sqrt()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.sqrt(x)
Parâmetros
x
Um número ou expressão maior que ou igual a 0.
Retorna
Um número.
Descrição
Método; calcula e retorna a raiz quadrada do número especificado.
502
Capítulo 12: Dicionário do ActionScript
Math.SQRT1_2
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.SQRT1_2
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Constante; constante matemática da raiz quadrada de 1/2.
Math.SQRT2
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.SQRT2
Parâmetros
Nenhum.
Descrição
Constante; uma constante matemática para a raiz quadrada de 2, com um valor aproximado
de 1,414213562373.
Math.SQRT2
503
Math.tan()
Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades da classe Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.
Uso
Math.tan(x)
Parâmetros
x
Um ângulo medido em radianos.
Retorna
Um número.
Descrição
Método; calcula e retorna a tangente do ângulo especificado. Para calcular um radiano, use as
informações apresentadas na introdução de Classe Math.
maxscroll
Disponibilidade
Flash Player 4. Esta função foi substituída pela propriedade TextField.maxscroll.
Uso
variable_name.maxscroll
Descrição
Propriedade (somente leitura); uma propriedade reprovada que indica o número da linha visível
mais acima do texto em um campo quando a linha mais inferior desse campo também está visível.
A propriedade maxscroll funciona em conjunto com a propriedade scroll para controlar a
exibição de informações em um campo de texto. Esta propriedade pode ser recuperada, mas não
modificada.
Consulte também
TextField.maxscroll, TextField.scroll
504
Capítulo 12: Dicionário do ActionScript
mbchr
Disponibilidade
Flash Player 4. Esta função foi substituída pelo método String.fromCharCode().
Uso
mbchr(número)
Parâmetros
número
O número a ser convertido em um caractere de vários bytes.
Retorna
Uma seqüência de caracteres.
Descrição
Função de seqüência de caracteres; converte um número de código ASCII em um caractere de
vários bytes.
Consulte também
String.fromCharCode()
mblength
Disponibilidade
Flash Player 4. Esta função foi substituída por Classe String.
Uso
mblength(seqüência de caracteres)
Parâmetros
seqüência de caracteres
Uma seqüência de caracteres.
Retorna
Um número.
Descrição
Função de seqüência de caracteres; retorna o tamanho da seqüência de caracteres de vários bytes.
mblength
505
mbord
Disponibilidade
Flash Player 4. Esta função foi substituída no Flash 5 por String.charCodeAt().
Uso
mbord(caractere)
Parâmetros
caractere
O caractere a ser convertido em um número de vários bytes.
Retorna
Um número.
Descrição
Função de seqüência de caracteres; converte o caractere especificado em um número de
vários bytes.
Consulte também
String.fromCharCode()
mbsubstring
Disponibilidade
Flash Player 4. Esta função foi substituída no Flash 5 por String.substr().
Uso
mbsubstring(valor, índice, contagem)
Parâmetros
valor A seqüência de caracteres de vários bytes da qual extrair uma nova seqüência de caracteres
de vários bytes.
índice
O número do primeiro caractere a ser extraído.
O número de caracteres a ser incluído na seqüência de caracteres extraída, sem incluir
o caractere índice.
contagem
Retorna
Uma seqüência de caracteres.
Descrição
Função de seqüência de caracteres; extrai uma nova seqüência de caracteres de vários bytes de uma
seqüência de caracteres de vários bytes.
Consulte também
String.substr()
506
Capítulo 12: Dicionário do ActionScript
Classe Microphone
Disponibilidade
Flash Player 6.
Descrição
A classe Microphone permite que você capture áudio de um microfone conectado ao computador
que esteja executando o Flash Player.
A classe Microphone serve, basicamente, para o Flash Communication Server, porém, pode ser
usada de maneira limitada sem o servidor. Por exemplo, para transmitir som do microfone para os
alto-falantes no seu sistema local.
Para criar ou fazer referência a um objeto Microphone, use o método Microphone.get().
Resumo de métodos da classe Microphone
Método
Descrição
Microphone.get()
Retornará um objeto Microphone padrão ou especificado,
ou null, se o microfone não estiver disponível.
Microphone.setGain()
Especifica quanto aumento de intensidade deve ser
aplicado ao sinal do microfone.
Microphone.setRate()
Especifica a taxa na qual o microfone deve capturar som,
em kHz.
Microphone.setSilenceLevel()
Especifica a intensidade de som necessária para ativar o
microfone.
Microphone.setUseEchoSuppression() Especifica se é preciso usar o recurso de supressão de eco
do codec de áudio.
Resumo de propriedades da classe Microphone
Propriedade (somente leitura)
Descrição
Microphone.activityLevel
O nível de som que o microfone está detectando.
Microphone.gain
O aumento de intensidade que o microfone aplica ao sinal
antes de transmiti-lo.
Microphone.index
O índice do microfone atual.
Microphone.muted
Um valor booleano que indica se o usuário permitiu ou
negou acesso ao microfone.
Microphone.name
O nome do atual dispositivo de captura de som, de acordo
com o retorno do hardware de captura de som.
Microphone.names
Propriedade da classe: um array de seqüências de
caracteres que refletem os nomes de todos os dispositivos
de captura de som disponíveis, inclusive placas de som e
microfones.
Microphone.rate
A taxa de captura de som, em kHz.
Classe Microphone
507
Propriedade (somente leitura)
Descrição
Microphone.silenceLevel()
A intensidade de som necessária para ativar o microfone.
Microphone.silenceTimeout()
A quantidade de milissegundos entre o momento em que o
microfone pára de detectar som e o momento em que
Microphone.onActivity(false) é chamado.
Microphone.useEchoSuppression()
Um valor booleano que especifica se a supressão de eco
está sendo usada.
Resumo de manipuladores de eventos da classe Microphone
Identificador de eventos
Descrição
Microphone.onActivity
Invocado quando o microfone inicia ou pára de detectar
som.
Microphone.onStatus
Invocado quando o usuário permite ou nega acesso ao
microfone.
Construtor da classe Microphone
Consulte Microphone.get().
Microphone.activityLevel
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.activityLevel
Descrição
Propriedade somente de leitura; valor numérico que especifica o nível do som que o microfone
está detectando. Intervalo de valores de 0 (nenhum som está sendo detectado) a 100 (está sendo
detectado som muito alto). O valor desta propriedade pode ajudar você a determinar um bom
valor para passar para o método Microphone.setSilenceLevel().
Se o microfone estiver disponível mas ainda não estiver sendo usado porque Microphone.get()
não foi chamado, esta propriedade terá o valor -1.
Exemplo
O exemplo abaixo atribui à variável level o nível da atividade do microfone atual,
myMic.activityLevel.
var level = myMic.activityLevel;
Consulte também
Microphone.setGain()
508
Capítulo 12: Dicionário do ActionScript
Microphone.gain
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.gain
Descrição
Propriedade somente de leitura; o aumento de intensidade que o microfone aplica ao sinal.
Os valores válidos são de 0 a 100. O valor padrão é 50.
Exemplo
O exemplo abaixo é anexado à ponta de uma barra deslizante. Quando este clipe é carregado,
o Flash verifica o valor myMic.gain e fornece um valor padrão caso este valor esteja indefinido.
A posição _x é usada para definir o ganho do microfone de acordo com a preferência do usuário.
onClipEvent(load){
if (_root.myMic.gain == undefined) {
_root.myMic.setGain = 75;
}
this._x = _root.myMic.gain;
_root.txt_micgain = this._x;
left = this._x;
right = left+50;
top = this._y;
bottom = top;
}
on(press){
startDrag(this, false, left, top, right, bottom);
this._xscale = 100;
this._yscale = 100;
}
on (release, releaseOutside) {
stopDrag();
g = (this._x-50)*2;
_root.myMic.setGain(g);
_root.txt_micgain = g;
this._xscale = 100;
this._yscale = 100;
}
Consulte também
Microphone.setGain()
Microphone.gain
509
Microphone.get()
Disponibilidade
Flash Player 6.
Uso
Microphone.get([índice])
Observação: A sintaxe correta é Microphone.get(). Para atribuir o objeto Microphone a uma
variável, use sintaxe como active_mic=Microphone.get().
Parâmetros
Um inteiro maior ou igual a zero, opcional, que especifica qual microfone usar, de
acordo com o array contido em Microphone.names. Para utilizar o microfone padrão (que é
recomendado na maioria dos aplicativos), omita este parâmetro.
índice
Retorna
• Se índice não for especificado, este método retornará uma referência ao microfone padrão ou,
•
se ele não estiver disponível, ao primeiro microfone disponível. Se não houver qualquer
microfone disponível nem instalado, o método retornará null.
Se índice for especificado, este método retornará uma referência ao microfone solicitado ou
null, caso este não esteja disponível.
Descrição
Método; retorna uma referência a um objeto Microphone para captura de áudio. Para começar
realmente a capturar áudio, você deve associar o objeto Microphone a um objeto MovieClip
(consulte MovieClip.attachAudio()).
Diferentemente dos objetos criados com o construtor new, várias chamadas a Microphone.get()
fazem referência ao mesmo microfone. Desta maneira, se seu script contiver as linhas
mic1=Microphone.get() e mic2=Microphone.get(), tanto mic1 como mic2 farão referência ao
mesmo microfone (padrão).
Em geral, você não deve passar um valor para índice. Simplesmente use Microphone.get() para
obter uma referência ao microfone padrão. Por meio do painel de configurações de Microphone
(Microfone) (descrito posteriormente nesta seção), o usuário pode especificar o microfone padrão
que o Flash deve usar. Se você passar um valor para índice, poderá estar tentando fazer referência
a um microfone que não é o preferido do usuário. O índice será usado em casos raros. Por
exemplo, se seu aplicativo estiver capturando áudio de dois microfones ao mesmo tempo.
Quando um arquivo SWF tenta acessar o microfone retornado pelo método Microphone.get(),
por exemplo, quando você emite MovieClip.attachAudio(), o Flash Player exibe uma caixa de
diálogo Privacy (Privacidade) que permite ao usuário escolher se vai permitir ou negar acesso ao
microfone. (Certifique-se de que o tamanho do Stage (Palco) seja de pelo menos 215 x 138 pixels.
Esse é o tamanho mínimo que o Flash necessita para exibir a caixa de diálogo.)
510
Capítulo 12: Dicionário do ActionScript
Quando o usuário responde a esta caixa de diálogo, o manipulador de eventos
Microphone.onStatus retorna um objeto de informação que indica a resposta do usuário.
Para descobrir se o usuário negou ou permitiu acesso à câmera sem processar este manipulador de
eventos, use Microphone.muted.
O usuário também pode especificar configurações permanentes de privacidade para um domínio
em particular clicando com o botão direito do mouse (no Windows) ou pressionando Control e
clicando com o mouse (no Macintosh) enquanto um SWF estiver sendo executado, escolhendo
Settings (Configurações), abrindo o painel Privacy (Privacidade) e selecionando Remember
(Lembre-se).
Se Microphone.get() retornar null, o microfone estará em uso por outro aplicativo ou não há
microfones instalados no sistema. Para descobrir se há microfones estão instalados, use
Microphones.names.length. Para exibir o painel Flash Player Microphone Settings
(Configurações de microfone do Flash Player), que permite ao usuário escolher qual microfone
Microphone.get() faz referência, use System.showSettings(2).
Exemplo
O exemplo abaixo permite ao usuário especificar o microfone padrão, depois captura áudio e o
reproduz localmente. Para evitar microfonia, talvez seja conveniente testar este código enquanto
estiver com os fones de ouvido.
System.showSettings(2);
myMic = Microphone.get();
_root.attachAudio(myMic);
Consulte também
Microphone.index, Microphone.muted, Microphone.names, Microphone.onStatus,
MovieClip.attachAudio()
Microphone.get()
511
Microphone.index
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.índice
Descrição
Propriedade somente de leitura; um inteiro maior ou igual a zero que especifica o índice do
microfone, de acordo com o array retornado de Microphone.names.
Consulte também
Microphone.get(), Microphone.names
Microphone.muted
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.muted
Descrição
Propriedade somente de leitura; um valor booleano que especifica se o usuário negou (true) ou
permitiu (false) o acesso ao microfone. Quando se modifica este valor, Microphone.onStatus é
invocado. Para obter mais informações, consulte Microphone.get().
Exemplo
No exemplo abaixo, quando o usuário clica no botão, o Flash publica e reproduz um fluxo ao
vivo, se o microfone não estiver mudo.
on (press)
{
// Se o usuário colocar o microfone em mudo, exiba a informação de
desconectado.
// Senão, publique e reproduza um fluxo ao vivo a partir do microfone.
if(myMic.muted) {
_root.debugWindow+="Microfone desconectado." + newline;
} else {
// Publique os dados do microfone, chamando
// a função pubLive() de root.
_root.pubLive();
// Reproduz o que estiver sendo publicado chamando
// a função playLive() de root.
_root.playLive();
}
}
Consulte também
Microphone.get(), Microphone.onStatus
512
Capítulo 12: Dicionário do ActionScript
Microphone.name
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.name
Descrição
Propriedade somente de leitura; uma seqüência de caracteres que especifica o nome do dispositivo
atual de captura de som, como informado pelo hardware de captura de som.
Exemplo
O exemplo abaixo exibe o nome do microfone padrão no painel Output (Saída).
myMic = Microphone.get();
trace("O nome do microfone é: " + myMic.name);
Consulte também
Microphone.get(), Microphone.names
Microphone.name
513
Microphone.names
Disponibilidade
Flash Player 6.
Uso
Microphone.names
Observação: A sintaxe correta é Microphone.names. Para atribuir o valor de retorno a uma variável,
use a sintaxe mic_array = Microphone.names. Para descobrir o nome do microfone atual,
use activeMicrophone.name.
Descrição
Propriedade de classe somente de leitura; recupera um array de seqüências de caracteres que
contém os nomes de todos os dispositivos de captura de sons disponíveis sem exibir o painel Flash
Player Privacy Settings (Configurações particulares do Flash Player). Este array comporta-se da
mesma forma que qualquer outro array do ActionScript, fornecendo, implicitamente, o índice
começando em zero de cada dispositivo de captura de som e a quantidade de dispositivos de
captura de som do sistema (através de Microphone.names.length). Para obter mais informações,
consulte a entrada da Classe Array.
Chamar Microphone.names exige uma análise detalhada do hardware e o array poderá levar
alguns segundos para ser criado. Na maioria dos casos, é possível usar diretamente o microfone
padrão.
Exemplo
Este código retorna informações do array de dispositivos de áudio.
allMicNames_array = Microphone.names;
_root.debugWindow += "Microphone.names localizou estes dispositivos:" +
newline;
for(i=0; i < allMicNames_array.length; i++){
debugWindow += "[" + i + "]: " + allMicNames[i] + newline;
}
Por exemplo, pode ser exibida a seguinte informação:
Microphone.names localizou estes dispositivos:
[0]: Crystal SoundFusion(tm)
[1]: USB Audio Device
Consulte também
Classe Array, Microphone.name
514
Capítulo 12: Dicionário do ActionScript
Microphone.onActivity
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.onActivity = function(atividade) {
// seus comandos vão aqui
}
Parâmetros
atividade Um valor booleano definido como true quando o microfone começa a detectar
som e false quando pára.
Retorna
Nada.
Descrição
Manipulador de eventos; invocado quando o microfone começa ou pára de detectar som.
Caso deseje responder a esse manipulador de eventos, será necessário criar uma função para
processar o valor atividade.
Para especificar a intensidade do som necessário para invocar Microphone.onActivity(true) e
o tempo que deve decorrer sem som antes que Microphone.onActivity(false) seja invocado,
use Microphone.setSilenceLevel().
Exemplo
O exemplo abaixo exibe true ou false no painel Output (Saída) quando o microfone começa ou
pára de detectar som.
m = Microphone.get();
_root.attachAudio(m);
m.onActivity = function(mode)
{
trace(mode);
};
Consulte também
Microphone.onActivity, Microphone.setSilenceLevel()
Microphone.onActivity
515
Microphone.onStatus
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.onStatus = function(infoObject) {
// seus comandos vão aqui
}
Parâmetros
infoObject
Um parâmetro definido de acordo com a mensagem de status.
Retorna
Nada.
Descrição
Manipulador de eventos; invocado quando o usuário permite ou nega acesso ao microfone.
Caso deseje responder a esse manipulador de eventos, será necessário criar uma função para
processar o objeto de informação gerado pelo microfone.
Quando um arquivo SWF tenta acessar o microfone, o Flash Player exibe uma caixa de diálogo
Privacy (Privacidade) para que o usuário permita ou proíba o acesso.
• Se o usuário permitir acesso, a propriedade Microphone.muted será definida como false e
esse manipulador de eventos será invocado com um objeto de informação cuja propriedade
é Microphone.Unmuted.
Se o usuário proibir o acesso, a propriedade Microphone.muted será definida como true e esse
manipulador de eventos será invocado com um objeto de informação cuja propriedade code é
Microphone.Muted.
code
•
Para descobrir se o usuário proibiu ou permitiu acesso ao microfone sem processar este
manipulador de eventos, use Microphone.muted.
Observação: Se o usuário decidir permitir ou proibir permanentemente o acesso a todos os SWFs a
partir de um domínio específico, este método não será invocado para os SWFs daquele domínio,
a não ser que o usuário posteriormente altere a configuração de privacidade. Para obter mais
informações, consulte Microphone.get().
Exemplo
Consulte o exemplo de Camera.onStatus.
Consulte também
Microphone.get(), Microphone.muted
516
Capítulo 12: Dicionário do ActionScript
Microphone.rate
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.rate
Descrição
Propriedade somente de leitura; a taxa na qual o microfone está capturando som, em kHz.
O valor padrão é de 8 kHz, se seu dispositivo de captura de som suportar este valor. Caso
contrário, o valor padrão será o próximo nível de captura disponível acima de 8 kHz suportado
pelo seu dispositivo de captura de som, que é geralmente de 11 kHz.
Para definir este valor, use Microphone.setRate().
Exemplo
O exemplo abaixo salva a taxa atual na variável original.
original = myMic.rate;
Consulte também
Microphone.setRate()
Microphone.rate
517
Microphone.setGain()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.setGain(ganho)
Parâmetros
Um inteiro que especifica qual o aumento de intensidade deve ser aplicado ao sinal do
microfone. Os valores válidos são de 0 a 100. O valor padrão é 50. Entretanto, o usuário pode
alterar este valor no painel Flash Player Microphone Settings (Configurações de microfone do
Flash Player).
ganho
Retorna
Nada.
Descrição
Método; define o ganho do microfone, ou seja, o valor pelo qual o microfone deve multiplicar o
sinal antes de transmiti-lo. Um valor 0 diz ao Flash para multiplicar por 0, ou seja, o microfone
não transmitirá nenhum som.
Você pode considerar esta configuração como um botão de volume em um aparelho de som: 0
especifica que está sem volume e 50 é o volume normal; os números abaixo de 50 especificam
volumes abaixo do normal, ao passo que números acima de 50 especificam volumes acima do
normal
Exemplo
O exemplo abaixo garante que a configuração de ganho do microfone seja menor ou igual a 55.
var myMic = Microphone.get();
if (myMic.gain > 55){
myMic.setGain(55);
}
Consulte também
Microphone.gain, Microphone.setUseEchoSuppression()
518
Capítulo 12: Dicionário do ActionScript
Microphone.setRate()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.setRate(kHz)
Parâmetros
kHz A taxa na qual o microfone deve capturar som, em kHz. Os valores aceitáveis são 5, 8, 11,
22 e 44. O valor padrão é 8 kHz se seu dispositivo de captura de som suportar este valor. Caso
contrário, o valor padrão será o próximo nível de captura disponível acima de 8 kHz suportado
pelo seu dispositivo de captura de som, que é geralmente de 11 kHz.
Retorna
Nada.
Descrição
Método; define a taxa, em kHz, na qual o microfone deve capturar som.
Exemplo
O exemplo abaixo definirá a taxa do microfone segundo a preferência do usuário (que foi
atribuída por você na variável userRate), se ela for um dos seguintes valores: 5, 8, 11, 22 ou 44.
Caso não seja, o valor será arredondado para o valor aceitável mais próximo que o dispositivo de
captura de som suporta.
myMic.setRate(userRate);
Consulte também
Microphone.rate
Microphone.setRate()
519
Microphone.setSilenceLevel()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.setSilenceLevel(nível [, timeout])
Parâmetros
nível Um inteiro que especifica o nível do som necessário para ativar o microfone e invocar
Microphone.onActivity(true). O intervalo de valores aceitáveis vai de 0 a 100. O valor padrão
é 10.
Um parâmetro inteiro opcional que especifica quantos milissegundos devem decorrer
sem atividade antes do Flash considerar que o som parou e invocar
Microphone.onActivity(false). O valor padrão é 2000 (2 segundos).
timeout
Retorna
Nada.
Descrição
Método; define o nível de entrada mínimo que deve ser considerado como som e (opcionalmente)
quanto tempo de silêncio deve transcorrer para assumir que o silêncio realmente começou.
• Para evitar que o microfone detecte qualquer som, passe um valor de 100 para nível; assim
Microphone.onActivity
nunca será invocado.
• Para descobrir o nível de som que o microfone está detectando num momento, use
Microphone.activityLevel.
A detecção de atividade é a capacidade de detectar quando os níveis de áudio sugerem que há uma
pessoa falando. Quando não houver ninguém falando, a largura de banda pode ser economizada
porque não há necessidade de enviar fluxo de áudio associado. Esta informação também pode ser
usada para resposta visual de forma que os usuários saibam que eles (ou outros) estão silenciosos.
Os valores de silêncio correspondem diretamente a valores de atividade. O silêncio completo é um
valor de atividade 0. O barulho alto constante (tão alto quanto possa ser registrado com base na
configuração de ganho atual) é um valor de atividade 100. Depois de adequadamente ajustado o
ganho, o valor da sua atividade será menor que o valor do seu silêncio quando você não estiver
falando; e quando estiver falando, o valor da atividade excederá o valor do silêncio.
Este método é semelhante, na sua finalidade, a Camera.setMotionLevel(). Ambos são usados
para especificar quando o manipulador de eventos onActivity deve ser invocado. Entretanto,
esses métodos possuem um impacto significativamente diferente na publicação de fluxos:
•
•
520
foi criado para detectar movimento e não afeta o uso da largura
de banda. Mesmo que um fluxo de vídeo não detecte movimento, o vídeo ainda assim é
enviado.
Microphone.setSilenceLevel() foi criado para otimizar a largura de banda. Quando um
fluxo de áudio é considerado silencioso, nenhum dado de áudio é enviado. Em vez disso, uma
única mensagem é enviada, indicando que o silêncio foi iniciado.
Camera.setMotionLevel()
Capítulo 12: Dicionário do ActionScript
Exemplo
O exemplo abaixo altera o nível de silêncio com base na entrada do usuário. O botão tem o
seguinte código anexado:
on (press)
{
this.makeSilenceLevel(this.silenceLevel);
}
A função makeSilenceLevel() chamada pelo botão continua:
function makeSilenceLevel(s)
{
this.obj.setSilenceLevel(s);
this.SyncMode();
this.silenceLevel= s;
}
Para obter mais informações, consulte o exemplo de Camera.setMotionLevel().
Consulte também
Microphone.activityLevel, Microphone.onActivity, Microphone.setGain(),
Microphone.silenceLevel(), Microphone.silenceTimeout()
Microphone.setSilenceLevel()
521
Microphone.setUseEchoSuppression()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.setUseEchoSuppression(supressão)
Parâmetros
supressão
Um valor booleano que indica se a supressão de eco deve ser usada (true) ou não
(false).
Retorna
Nada.
Descrição
Método; especifica se é para usar o recurso de supressão de eco do codec de áudio. O valor padrão
é false, a menos que o usuário tenha selecionado Reduce Echo no painel Flash Player
Microphone Settings.
A supressão de eco é um esforço para reduzir os efeitos de microfonia, que é causado quando o
som que sai do alto-falante é capturado pelo microfone do mesmo computador. Isto é diferente do
cancelamento de eco, que remove totalmente a resposta.
Geralmente, a supressão de eco é aconselhável quando o som que está sendo capturado é
reproduzido pelos alto-falantes, e não pelo fone de ouvido, no mesmo computador. Se seu arquivo
SWF permitir aos usuários especificar o dispositivo de saída de som, talvez seja conveniente
chamar Microphone.setUseEchoSuppression(true), caso indiquem que estão usando altofalantes e também usarão o microfone.
Os usuários também podem ajustar essas configurações no painel Flash Player Microphone
Settings (Configurações de microfone do Flash Player).
Exemplo
O exemplo abaixo ativa a supressão de eco.
_root.myMic.setUseEchoSuppression(true);
Consulte também
Microphone.setGain(), Microphone.useEchoSuppression()
522
Capítulo 12: Dicionário do ActionScript
Microphone.silenceLevel()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.silenceLevel
Descrição
Propriedade somente de leitura; um inteiro que especifica o nível do som necessário para ativar o
microfone e invocar Microphone.onActivity(true). O valor padrão é 10.
Exemplo
Consulte o exemplo de Microphone.silenceTimeout().
Consulte também
Microphone.gain, Microphone.setSilenceLevel()
Microphone.silenceTimeout()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.silenceTimeout
Descrição
Propriedade somente de leitura; um valor numérico que representa o tempo em milissegundos
entre o momento em que o microfone pára de detectar som e o momento em que
Microphone.onActivity(false) é invocado. O valor padrão é 2000 (2 segundos).
Para definir este valor, use Microphone.setSilenceLevel().
Exemplo
O exemplo abaixo define o intervalo para duas vezes o valor atual.
myMic.setSilenceLevel(myMic.silenceLevel, myMic.silenceTimeOut * 2);
Consulte também
Microphone.setSilenceLevel()
Microphone.silenceTimeout()
523
Microphone.useEchoSuppression()
Disponibilidade
Flash Player 6.
Uso
activeMicrophone.useEchoSuppression
Descrição
Propriedade somente de leitura; um valor booleano true se a supressão de eco for ativada e false
caso não seja. O valor padrão é false, a menos que o usuário tenha selecionado Reduce Echo no
painel Flash Player Microphone Settings.
Exemplo
O exemplo abaixo verifica a supressão de eco e a ativa se estiver desativada.
_root.myMic.onActivity = function(active) {
if (active == true) {
if (_root.myMic.useEchoSuppression == false) {
_root.myMic.setUseEchoSuppression(true);
}
}
}
Consulte também
Microphone.setUseEchoSuppression()
MMExecute()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Classe Mouse
Disponibilidade
Flash Player 5.
Descrição
A classe Mouse é uma classe do nível mais alto, cujas propriedades e métodos podem ser acessados
sem uso de um construtor. Você pode usar os métodos da classe Mouse para ocultar e mostrar o
ponteiro do mouse (cursor) no arquivo SWF. Por padrão, o ponteiro do mouse fica visível, mas é
possível ocultá-lo e implementar um ponteiro personalizado usando um clipe de filme. (consulte a
seção correspondente “Criando um ponteiro de mouse personalizado” na página 90).
524
Capítulo 12: Dicionário do ActionScript
Resumo de métodos da classe Mouse
Método
Descrição
Mouse.addListener()
Registra um objeto para receber as notificações onMouseDown,
onMouseMove e onMouseUp.
Mouse.hide()
Oculta o ponteiro do mouse no arquivo SWF.
Mouse.removeListener()
Remove um objeto que foi registrado com addListener().
Mouse.show()
Exibe o ponteiro do mouse no arquivo SWF.
Resumo de ouvintes da classe Mouse
Método
Descrição
Mouse.onMouseDown
Notificado quando o botão do mouse é pressionado.
Mouse.onMouseMove
Notificado quando o botão do mouse é movido.
Mouse.onMouseUp
Notificado quando o botão do mouse é liberado.
Mouse.onMouseWheel
Notificado quando o usuário rola a roda do mouse.
Mouse.addListener()
Disponibilidade
Flash Player 6.
Uso
Mouse.addListener (newListener)
Parâmetros
newListener
Um objeto.
Retorna
Nada.
Descrição
Método; registra um objeto para receber notificações dos manipuladores de retorno de chamada
onMouseDown, onMouseMove e onMouseUp.
O parâmetro newListener deve conter um objeto com métodos definidos para os ouvintes
onMouseDown, onMouseMove e onMouseUp.
Quando o mouse é pressionado, movido ou liberado, independentemente do foco de entrada,
todos os objetos ouvintes registrados com este método têm seu método onMouseDown,
onMouseMove ou onMouseUp invocado. Vários objetos podem ouvir notificações de mouse. Se o
ouvinte newListener já estiver registrado, nenhuma alteração ocorrerá.
Consulte também
Mouse.onMouseDown, Mouse.onMouseMove, Mouse.onMouseUp
Mouse.addListener()
525
Mouse.hide()
Disponibilidade
Flash Player 5.
Uso
Mouse.hide()
Parâmetros
Nenhum.
Retorna
Um valor booleano: true se o ponteiro estiver visível e false se o ponteiro estiver invisível.
Descrição
Método; oculta o ponteiro em um arquivo SWF. Por padrão, o cursor fica visível.
Exemplo
O código a seguir, associado a um clipe de filme na Timeline (Linha de tempo) principal, oculta o
ponteiro padrão e define as posições x e y da instância do clipe de filme customPointer_mc como
as posições x e y do mouse na Timeline (Linha de tempo) principal.
onClipEvent(enterFrame){
Mouse.hide();
customPointer_mc._x = _root._xmouse;
customPointer_mc._y = _root._ymouse;
}
Consulte também
Mouse.show(), MovieClip._xmouse, MovieClip._ymouse
526
Capítulo 12: Dicionário do ActionScript
Mouse.onMouseDown
Disponibilidade
Flash Player 6.
Uso
someListener.onMouseDown
Descrição
Ouvinte; notificado quando o mouse é pressionado. Para usar o ouvinte onMouseDown,
é necessário criar um objeto ouvinte. Em seguida, você pode definir uma função para
onMouseDown e usar o método addListener() para registrar o ouvinte com o objeto Mouse,
como mostrado no código a seguir:
someListener = new Object();
someListener.onMouseDown = function () { ... };
Mouse.addListener(someListener);
Os ouvintes permitem a cooperação de partes diferentes de código. Isso ocorre porque vários
ouvintes podem receber notificações sobre um único evento.
Consulte também
Mouse.addListener()
Mouse.onMouseDown
527
Mouse.onMouseMove
Disponibilidade
Flash Player 6.
Uso
someListener.onMouseMove
Descrição
Ouvinte; notificado quando o mouse é movido. Para usar o ouvinte onMouseMove, é necessário
criar um objeto ouvinte. Em seguida, é possível definir uma função para onMouseMove e usar o
método addListener() para registrar o ouvinte com o objeto Mouse, como mostrado no código
a seguir:
someListener = new Object();
someListener.onMouseMove = function () { ... };
Mouse.addListener(someListener);
Os ouvintes permitem a cooperação de partes diferentes de código. Isso ocorre porque vários
ouvintes podem receber notificações sobre um único evento.
Consulte também
Mouse.addListener()
Mouse.onMouseUp
Disponibilidade
Flash Player 6.
Uso
someListener.onMouseUp
Descrição
Ouvinte; notificado quando o mouse é liberado. Para usar o ouvinte onMouseUp, é necessário criar
um objeto ouvinte. Em seguida, você pode definir uma função para onMouseUp e usar o método
addListener() para registrar o ouvinte com o objeto Mouse, como mostrado no código a seguir:
someListener = new Object();
someListener.onMouseUp = function () { ... };
Mouse.addListener(someListener);
Os ouvintes permitem a cooperação de partes diferentes de código. Isso ocorre porque vários
ouvintes podem receber notificações sobre um único evento.
Consulte também
Mouse.addListener()
528
Capítulo 12: Dicionário do ActionScript
Mouse.onMouseWheel
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 7 (somente Windows).
Uso
someListener.onMouseWheel = function (delta) {}
Parâmetros
delta Um número que indica quantas linhas devem ser roladas para cada ponto rolado na roda
o mouse pelo usuário . Essa é uma configuração no nível do sistema, que pode ser modificada pelo
usuário.
Um valor delta positivo indica uma rolagem para cima ou para a direita; um valor negativo
indica uma rolagem para baixo ou para a esquerda. Os valores geralmente vão de 1 a 3, enquanto
uma rolagem mais rápida pode resultar em valores maiores (absolutos).
Descrição
Ouvinte; notificado quando o usuário rola a roda do mouse. Para usar o ouvinte onMouseWheel,
é necessário criar um objeto ouvinte. Em seguida, você pode definir uma função para
onMouseWheel e usar addListener() para registrar o ouvinte com o objeto Mouse.
Observação: Os ouvintes de eventos do Mouse estão disponíveis somente nas versões Windows
do Flash Player.
Exemplo
O exemplo abaixo mostra como criar um objeto ouvinte que responda aos eventos do mouse.
Neste exemplo, a coordenada x de um objeto de clipe de filme chamado clip_mc (não mostrado)
será alterada sempre que o usuário rolar a roda do mouse.
mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
box._x += delta;
}
Mouse.addListener(mouseListener);
Consulte também
Mouse.addListener(), TextField.mouseWheelEnabled
Mouse.onMouseWheel
529
Mouse.removeListener()
Disponibilidade
Flash Player 6.
Uso
Mouse.removeListener (ouvinte)
Parâmetros
ouvinte
Um objeto.
Retorna
Se o objeto ouvinte tiver sido removido com êxito, o método retornará true; se a remoção do
ouvinte não tiver sido bem-sucedida (por exemplo, se o ouvinte não estava na lista de ouvintes
do objeto Mouse), o método retornará false.
Descrição
Método; remove um objeto registrado anteriormente com o método addListener().
Mouse.show()
Disponibilidade
Flash Player 5.
Uso
Mouse.show()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; exibe o ponteiro do mouse em um arquivo SWF. Por padrão, o cursor fica visível.
Consulte também
Mouse.show(), MovieClip._xmouse, MovieClip._ymouse
530
Capítulo 12: Dicionário do ActionScript
Classe MovieClip
Disponibilidade
Flash Player 3.
Descrição
Os métodos da classe MovieClip oferecem a mesma funcionalidade que as ações em relação a
clipes de filme de destino. Também existem métodos adicionais que não têm ações equivalentes
na caixa de ferramentas Ações do painel Ações.
Você não precisa usar um método construtor para chamar os métodos da classe MovieClip.
Em vez disso, faça referência às instâncias do clipe de filme por nome, usando a seguinte sintaxe:
my_mc.play();
my_mc.gotoAndPlay(3);
Resumo de métodos da classe MovieClip
Método
Descrição
MovieClip.attachAudio()
Captura e reproduz áudio local no microfone.
MovieClip.attachMovie()
Anexa um arquivo SWF à biblioteca.
MovieClip.createEmptyMovieClip() Cria um clipe de filme vazio.
MovieClip.createTextField()
Cria um campo de texto vazio.
MovieClip.duplicateMovieClip()
Duplica o clipe de filme especificado.
MovieClip.getBounds()
Retorna as coordenadas x e y mínimas e máximas de um SWF
em um espaço de coordenadas especificado.
MovieClip.getBytesLoaded()
Retorna o número de bytes carregados do clipe de filme
especificado.
MovieClip.getBytesTotal()
Retorna o tamanho do clipe de filme, em bytes.
MovieClip.getDepth()
Retorna a profundidade de um clipe de filme.
MovieClip.getInstanceAtDepth()
Especifica se uma determinada profundidade já está ocupada
por um clipe de filme.
MovieClip.getNextHighestDepth()
Especifica o valor de profundidade que pode ser passado
para outros métodos, para assegurar que o Flash renderize o
clipe de filme na frente de todos os outros objetos do atual
clipe de filme.
MovieClip.getSWFVersion()
Retorna um inteiro que indica a versão do Flash Player em que
o clipe de filme foi publicado
MovieClip.getURL()
Recupera um documento de um URL.
MovieClip.globalToLocal()
Converte o objeto Ponto das coordenadas do Palco nas
coordenadas locais do clipe de filme especificado.
MovieClip.gotoAndPlay()
Envia a reprodução para um quadro específico no clipe de
filme e reproduz o arquivo SWF.
Classe MovieClip
531
Método
Descrição
MovieClip.gotoAndStop()
Envia a reprodução para um quadro específico no clipe de
filme e interrompe o arquivo SWF.
MovieClip.hitTest()
Retorna true se há interseção entre a caixa delimitadora do
clipe de filme especificado e a caixa delimitadora do clipe de
filme de destino.
MovieClip.loadMovie()
Carrega o arquivo SWF especificado no clipe de filme.
MovieClip.loadVariables()
Carrega variáveis de um URL ou de outro local para o clipe
de filme.
MovieClip.localToGlobal()
Converte um objeto Point de coordenadas locais do clipe de
filme em coordenadas globais do Stage (Palco).
MovieClip.nextFrame()
Envia a reprodução para o próximo quadro do clipe de filme.
MovieClip.play()
Reproduz o clipe de filme especificado.
MovieClip.prevFrame()
Envia a reprodução para o quadro anterior do clipe de filme.
MovieClip.removeMovieClip()
Remove o clipe de filme da Timeline (Linha de tempo) caso
tenha sido criado com duplicateMovieClip(),
MovieClip.duplicateMovieClip() ou
MovieClip.attachMovie().
MovieClip.setMask()
Especifica um clipe de filme como uma máscara para outro
clipe de filme.
MovieClip.startDrag()
Especifica um clipe de filme como arrastável e começa a
arrastá-lo.
MovieClip.stop()
Encerra o arquivo SWF que está sendo reproduzido.
MovieClip.stopDrag()
Pára o arraste de qualquer clipe de filme que esteja sendo
arrastado.
MovieClip.swapDepths()
Troca o nível de profundidade de dois arquivos SWF.
MovieClip.unloadMovie()
Remove o arquivo SWF que foi carregado com loadMovie().
Resumo de métodos de desenho da classe MovieClip
532
Método
Descrição
MovieClip.beginFill()
Começa a desenhar um preenchimento no Palco.
MovieClip.beginGradientFill()
Começa a desenhar um preenchimento de gradiente no
Palco.
MovieClip.clear()
Remove todos os comandos de desenho associados a uma
instância de clipe de filme.
MovieClip.curveTo()
Desenha uma curva utilizando o último estilo de linha.
MovieClip.endFill()
Conclui o preenchimento especificado por beginFill() ou
beginGradientFill().
MovieClip.lineStyle()
Define o traço das linhas criadas com os métodos lineTo() e
curveTo().
Capítulo 12: Dicionário do ActionScript
Método
Descrição
MovieClip.lineTo()
Desenha uma linha utilizando o estilo de linha atual.
MovieClip.moveTo()
Move a posição do desenho especificado para determinadas
coordenadas.
Resumo das propriedades da classe MovieClip
Propriedade
Descrição
MovieClip._alpha
O valor de transparência de uma instância de clipe de filme.
MovieClip._currentframe
O número do quadro no qual a reprodução está localizada no
momento.
MovieClip._droptarget
O caminho absoluto em notação de sintaxe de barra da
instância do clipe de filme na qual um clipe de filme arrastável
foi solto.
MovieClip.enabled
Indica se um clipe de filme de botão está ativado.
MovieClip.focusEnabled
Permite que um clipe de filme receba o foco.
MovieClip._focusrect
Indica se um clipe de filme focalizado tem um retângulo
amarelo ao seu redor.
MovieClip._framesloaded
O número de quadros que foram carregados de um arquivo
SWF em fluxo.
MovieClip._height
A altura de uma instância de clipe de filme em pixels.
MovieClip.hitArea
Designa outro clipe de filme para atuar como a área de
clicagem de um clipe de filme de botão.
MovieClip._highquality
Define a qualidade de renderização de arquivos SWF.
MovieClip.menu
Associa o objeto ContextMenu especificado com um clipe
de filme.
MovieClip._name
O nome da instância de um clipe de filme.
MovieClip._parent
Uma referência ao clipe de filme que inclui outro clipe de filme.
MovieClip._rotation
O grau de rotação de uma instância de clipe de filme.
MovieClip._soundbuftime
O número de segundos decorridos antes de um som começar
a ser reproduzido.
MovieClip.tabChildren
Indica se os filhos de um clipe de filme são incluídos na
ordenação automática de guias.
MovieClip.tabEnabled
Indica se um clipe de filme é incluído na ordenação de guias.
MovieClip.tabIndex
Indica a ordem de guias de um objeto.
MovieClip._target
O caminho de destino de uma instância de clipe de filme.
MovieClip._totalframes
O número total de quadros de uma instância de clipe de filme.
MovieClip.trackAsMenu
Indica se outros botões podem receber eventos de liberação
de mouse.
Classe MovieClip
533
Propriedade
Descrição
MovieClip._url
O URL do arquivo SWF a partir do qual um clipe de filme foi
descarregado.
MovieClip.useHandCursor
Determina se a mão é exibida quando um usuário rola o cursor
do mouse sobre um clipe de filme de botão.
MovieClip._visible
Um valor booleano que determina se uma instância de clipe de
filme está oculta ou visível.
MovieClip._width
A largura de uma instância de clipe de filme em pixels.
MovieClip._x
A coordenada x de uma instância de clipe de filme.
MovieClip._xmouse
A coordenada x do ponteiro do mouse em uma instância de
clipe de filme.
MovieClip._xscale
O valor que especifica a porcentagem para o
dimensionamento horizontal de um clipe de filme.
MovieClip._y
A coordenada y de uma instância de clipe de filme.
MovieClip._ymouse
A coordenada y do ponteiro do mouse em uma instância de
clipe de filme.
MovieClip._yscale
O valor que especifica a porcentagem para o
dimensionamento vertical de um clipe de filme.
Resumo de manipuladores de evento da classe MovieClip
534
Identificador de eventos
Descrição
MovieClip.onData
Chamada quando todos os dados são carregados em um
clipe de filme.
MovieClip.onDragOut
Chamada enquanto o ponteiro está fora do botão, o botão do
mouse é pressionado no interior e rola para fora da área do
botão.
MovieClip.onDragOver
Chamada enquanto o ponteiro está sobre o botão, o botão do
mouse foi pressionado, rolado para fora do botão e, a seguir,
rolado de volta sobre o botão.
MovieClip.onEnterFrame
Chamada continuamente na taxa de quadros do arquivo
SWF. As ações associadas ao evento de clipe enterFrame
são processadas antes de qualquer ação de quadro que tenha
sido anexada aos quadros afetados.
MovieClip.onKeyDown
Chamada quando uma tecla é pressionada. Use os métodos
Key.getCode() e Key.getAscii() para recuperar informações
sobre a última tecla pressionada.
MovieClip.onKeyUp
Chamada quando uma tecla é liberada.
MovieClip.onKillFocus
Chamada quando o foco é removido de um botão.
MovieClip.onLoad
Chamada quando o clipe de filme é criado e aparece na
Timeline (Linha de tempo).
MovieClip.onMouseDown
Chamada quando o botão esquerdo do mouse é pressionado.
Capítulo 12: Dicionário do ActionScript
Identificador de eventos
Descrição
MovieClip.onMouseMove
Chamada sempre que o mouse é movido.
MovieClip.onMouseUp
Chamada quando o botão esquerdo do mouse é liberado.
MovieClip.onPress
Chamada quando o mouse é pressionado enquanto o
ponteiro está sobre um botão.
MovieClip.onRelease
Chamada quando o mouse é liberado enquanto o ponteiro
está sobre um botão.
MovieClip.onReleaseOutside
Chamada quando o mouse é liberado enquanto o ponteiro
está fora de um botão, depois que o botão é pressionado
enquanto o ponteiro está dentro do botão.
MovieClip.onRollOut
Chamada quando o ponteiro rola para fora da área de um
botão.
MovieClip.onRollOver
Chamada quando o ponteiro do mouse rola sobre um botão.
MovieClip.onSetFocus
Chamada quando um botão tem o foco de entrada e uma tecla
é liberada.
MovieClip.onUnload
Chamada no primeiro quadro depois que o clipe de filme é
removido da Linha de tempo. As ações associadas ao evento
do clipe de filme Unload são processadas antes que as ações
sejam anexadas ao quadro atingido.
MovieClip._alpha
Disponibilidade
Flash Player 4.
Uso
my_mc._alpha
Descrição
Propriedade; o valor de transparência alfa do clipe de filme especificado por my_mc. A faixa de
valores válidos vai de 0 (totalmente transparente) a 100 (totalmente opaco). O valor padrão é 100.
Os objetos em um clipe de filme com _alpha definido como 0 estão ativos, mesmo que estejam
invisíveis. Por exemplo, ainda será possível clicar em um botão do clipe de filme cuja propriedade
_alpha esteja definida como 0.
Exemplo
O código a seguir define como 30% a propriedade _alpha de um clipe de filme chamado
star_mc quando o botão é clicado:
on (release) {
star_mc._alpha = 30;
}
Consulte também
Button._alpha, TextField._alpha
MovieClip._alpha
535
MovieClip.attachAudio()
Disponibilidade
Flash Player 6.
Uso
my_mc.attachAudio(fonte)
Parâmetros
O objeto que contém o áudio a ser reproduzido. Os valores válidos são um objeto
Microphone e false (faz parar a execução do áudio).
fonte
Retorna
Nada.
Descrição
Método; especifica a origem do áudio a ser reproduzido localmente (objeto Microphone).
Para interromper a reprodução da origem de áudio, passe fonte para false.
Para reproduzir o áudio local, passe o objeto Microphone como fonte. Isso captura e reproduz o
áudio local do microfone.
Exemplo
O código a seguir associa um microfone a um clipe de filme.
my_mic = Microphone.get();
this.attachAudio(my_mic);
Consulte também
Classe Microphone, Classe Sound
536
Capítulo 12: Dicionário do ActionScript
MovieClip.attachMovie()
Disponibilidade
Flash Player 5.
Uso
my_mc.attachMovie(idName, newName, depth [, initObject])
Parâmetros
O nome de vinculação do símbolo do clipe de filme na biblioteca a ser anexada a um
clipe de filme no Stage. É o nome inserido no campo Identifier (Identificador) na caixa de diálogo
Linkage Properties (Propriedades de vinculação).
idName
newname
Um nome de instância único para o clipe de filme que está sendo anexado ao clipe
de filme.
depth
Um inteiro que especifica o nível de profundidade em que o arquivo SWF é colocado.
(Suportado pelo Flash Player 6 e posteriores) Objeto que contém as propriedades
com as quais se deve preencher o clipe de filme recém-anexado. Este parâmetro permite que os
clipes de filme criados dinamicamente recebam parâmetros de clipe. Se initObject não for um
objeto, ele será ignorado. Todas as propriedades de initObject são copiadas na nova instância.
As propriedades especificadas com initObject estão disponíveis para a função construtora.
Este parâmetro é opcional.
initObject
Retorna
Uma referência à instância recém-criada.
Descrição
Método; pega um símbolo na biblioteca e o anexa ao arquivo SWF no Stage especificado por
my_mc. Use removeMovieClip() ou unloadMovie() para remover um arquivo SWF anexado
com attachMovie().
Exemplo
O exemplo a seguir anexa o símbolo com o identificador de vinculação “circulo” à instância de
clipe de filme localizada no Stage (Palco) do arquivo SWF.
on (release) {
thing.attachMovie( "círculo", "círculo1", 2 );
}
Consulte também
MovieClip.removeMovieClip(), MovieClip.unloadMovie(), Object.registerClass(),
removeMovieClip()
MovieClip.attachMovie()
537
MovieClip.beginFill()
Disponibilidade
Flash Player 6.
Uso
my_mc.beginFill([rgb[, alpha]])
Parâmetro
Um valor de cor hexadecimal (por exemplo, vermelho corresponde a 0xFF0000, azul a
0x0000FF e assim por diante). Caso este valor não seja fornecido ou esteja indefinido, nenhum
preenchimento será criado.
rgb
Um número inteiro entre 0 e 100 que especifica o valor alfa do preenchimento. Se este
valor não for informado, a opção100 (sólido) será usada. Se o valor for menor que 0, o Flash usará
0. Se for maior que 100, o Flash usará 100.
alfa
Retorna
Nada.
Descrição
Método; indica o início de um novo caminho de desenho. Se houver um caminho aberto, isto é,
se a posição atual do desenho não for igual à posição anterior especificada em um método
moveTo() e se houver um preenchimento associado a ele, este caminho será fechado com uma
linha e preenchido em seguida. Trata-se de um processo semelhante ao que ocorre quando o
método endFill() é chamado. Se atualmente não há nenhum preenchimento associado ao
caminho, endFill() deve ser chamado para aplicar o preenchimento.
Consulte também
MovieClip.beginGradientFill(), MovieClip.endFill()
538
Capítulo 12: Dicionário do ActionScript
MovieClip.beginGradientFill()
Disponibilidade
Flash Player 6.
Uso
my_mc.beginGradientFill(fillType, colors, alphas, ratios, matrix)
Parâmetro
fillType
A seqüência de caracteres "linear" ou "radial".
cores Uma matriz de valores de cores hexadecimais RGB a ser utilizada no gradiente
(por exemplo, vermelho corresponde a 0xFF0000, azul a 0x0000FF e assim por diante).
alphas Array de valores alfa com as cores correspondentes do array colors; os valores válidos
vão de 0 a 100. Se o valor for menor que 0, o Flash usará 0. Se for maior que 100, o Flash usará
100.
ratios Array com as taxas de distribuição de cor; os valores válidos vão de 0 a 255. Esse valor
define a porcentagem da largura em que a cor é amostrada a 100 por cento.
matrix
Uma matriz de transformação que é um objeto com um destes dois conjuntos de
propriedades:
• a, b, c, d, e, f, g, h, i, que pode ser usado para descrever uma matriz do tipo 3 x 3 da seguinte
forma:
a b c
d e f
g h i
O exemplo a seguir usa um método beginGradientFill() com parâmetro matrix que é um
objeto com essas propriedades.
_root.createEmptyMovieClip( "grad", 1 );
with ( _root.grad )
{
colors = [ 0xFF0000, 0x0000FF ];
alphas = [ 100, 100 ];
ratios = [ 0, 0xFF ];
matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1
};
beginGradientFill( "linear", cores, alfas, proporções, matriz
);
moveto(100,100);
lineto(100,300);
lineto(300,300);
lineto(300,100);
lineto(100,100);
endFill();
}
MovieClip.beginGradientFill()
539
Se não houver uma propriedade matrixType, todos os outros parâmetros serão necessários;
a função falhará se faltar qualquer parâmetro. Esta matriz dimensiona, traslada, gira e inclina o
gradiente da unidade, que é definido em (-1,-1) e (1,1).
•
matrixType, x, y, w, h, r.
Estas propriedades indicam o seguinte: matrixType é a seqüência de caracteres "box", x é a
posição horizontal relativa ao ponto de registro do clipe pai do canto superior esquerdo do
gradiente, y é a posição vertical relativa ao ponto de registro do clipe pai do canto superior
esquerdo do gradiente, w é a largura do gradiente, h é a altura e r é a rotação em radianos.
O exemplo a seguir usa um método beginGradientFill() com parâmetro matrix que é um
objeto com essas propriedades.
_root.createEmptyMovieClip( "grad", 1 );
with ( _root.grad )
{
colors = [ 0xFF0000, 0x0000FF ];
alphas = [ 100, 100 ];
ratios = [ 0, 0xFF ];
matrix = { matrixType:"box", x:100, y:100, w:200, h:200, r:(45/
180)*Math.PI };
beginGradientFill( "linear", cores, alfas, proporções, matriz
);
moveto(100,100);
lineto(100,300);
lineto(300,300);
lineto(300,100);
lineto(100,100);
endFill();
}
540
Capítulo 12: Dicionário do ActionScript
Se houver uma propriedade matrixType, ela deverá ser igual a "box" e todos os outros
parâmetros serão necessários. A função falhará se uma dessas condições não for atendida.
Retorna
Nada.
Descrição
Método; indica o início de um novo caminho de desenho. Se o primeiro parâmetro estiver
indefinido, ou se nenhum parâmetro tiver sido passado, o caminho não terá preenchimento.
Se houver um caminho aberto, isto é, se a posição atual do desenho não for igual à posição
anterior especificada em um método moveTo(), e se houver um preenchimento associado a ele,
este caminho será fechado com uma linha e preenchido em seguida. Trata-se de um processo
semelhante ao que ocorre quando você chama o método endFill().
Este método falhará se qualquer uma das condições a seguir for encontrada:
• O número de itens nos parâmetros cores, alfas e proporções não é igual.
• O parâmetro fillType não é “linear” ou “radial”.
• Um dos campos no objeto para o parâmetro matrix está ausente ou é inválido.
MovieClip.beginGradientFill()
541
Exemplo
O código a seguir usa os dois métodos para desenhar dois retângulos empilhados, com um
preenchimento de gradiente vermelho-azul e um traço sólido verde de 5 pontos.
_root.createEmptyMovieClip("goober",1);
with ( _root.goober )
{
colors = [ 0xFF0000, 0x0000FF ];
alphas = [ 100, 100 ];
ratios = [ 0, 0xFF ];
lineStyle( 5, 0x00ff00 );
matrix = { a:500,b:0,c:0,d:0,e:200,f:0,g:350,h:200,i:1};
beginGradientFill( "linear", colors, alphas, ratios, matrix );
moveto(100.100);
lineto(100.300);
lineto(600.300);
lineto(600.100);
lineto(100.100);
endFill();
matrix = { matrixType:"box", x:100, y:310, w:500, h:200, r:(0/180)*Math.PI
};
beginGradientFill( "linear", colors, alphas, ratios, matrix );
moveto(100.310);
lineto(100.510);
lineto(600.510);
lineto(600.310);
lineto(100.310);
endFill();
}
Consulte também
MovieClip.beginFill(), MovieClip.endFill(), MovieClip.lineStyle(),
MovieClip.lineTo(), MovieClip.moveTo()
542
Capítulo 12: Dicionário do ActionScript
MovieClip.clear()
Disponibilidade
Flash Player 6.
Uso
my_mc.clear()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; remove todos os gráficos criados durante o tempo de execução, usando os métodos de
desenho de clipe de filme, inclusive os estilos de linha especificados com
MovieClip.lineStyle(). Formas e linhas manualmente desenhadas em tempo de criação
(com as ferramentas de desenho do Flash) não são afetadas.
Consulte também
MovieClip.lineStyle()
MovieClip.createEmptyMovieClip()
Disponibilidade
Flash Player 6.
Uso
my_mc.createEmptyMovieClip(instanceName, depth)
Parâmetros
instanceName
Uma seqüência de caracteres que identifica o nome da instância do novo clipe
de filme.
profundidade
Um inteiro que especifica a profundidade do novo clipe de filme.
Retorna
Nada.
Descrição
Método; cria um clipe de filme vazio como filho de outro clipe de filme existente. Este método
apresenta um comportamento semelhante ao do método attachMovie(), só que não é preciso
fornecer um nome de vinculação externo para o novo clipe de filme. O ponto de registro de um
clipe de filme vazio recém-criado é o canto superior esquerdo. Este método falhará se um dos
parâmetros estiver faltando.
Consulte também
MovieClip.attachMovie()
MovieClip.createEmptyMovieClip()
543
MovieClip.createTextField()
Disponibilidade
Flash Player 6.
Uso
my_mc.createTextField(instanceName, depth, x, y, width, height)
Parâmetros
instanceName
Uma seqüência de caracteres que identifica o nome da instância do novo campo
de texto.
profundidade
Um inteiro positivo que especifica a profundidade do novo campo de texto.
x
Um inteiro que especifica a coordenada x do novo campo de texto.
y
Um inteiro que especifica a coordenada y do novo campo de texto.
largura
altura
Um inteiro positivo que especifica a largura do novo campo de texto.
Um inteiro positivo que especifica a altura do novo campo de texto.
Retorna
Nada.
Descrição
Método; cria um novo campo de texto vazio como filho do clipe de filme especificado pelo
parâmetro my_mc. Você pode usar createTextField() para criar campos de texto enquanto o
arquivo SWF é reproduzido. O campo de texto é posicionado em (x, y) com as dimensões de
largura por altura. Os parâmetros x e y são relativos ao clipe de filme recipiente; esses
parâmetros correspondem às propriedades _x e _y do campo de texto. Os parâmetros largura e
altura correspondem às propriedades _width e _height do campo de texto.
As propriedades padrão de um campo de texto são as seguintes:
type = "dynamic"
border = false
background = false
password = false
multiline = false
html = false
embedFonts = false
variable = null
maxChars = null
544
Capítulo 12: Dicionário do ActionScript
Um campo de texto criado com createTextField() recebe o seguinte objeto TextFormat
padrão:
font = "Times New Roman"
size = 12
textColor = 0x000000
bold = false
italic = false
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (empty array)
Exemplo
O exemplo a seguir cria um campo de texto com uma largura de 300, uma altura de 100, uma
coordenada x de 100, uma coordenada y de 100, sem borda, com texto vermelho e sublinhado.
_root.createTextField("meutexto",1,100,100,300,100);
mytext.multiline = true;
mytext.wordWrap = true;
mytext.border = false;
myformat = new TextFormat();
myformat.color = 0xff0000;
myformat.bullet = false;
myformat.underline = true;
mytext.text = "este é o meu primeiro texto de objeto do campo de teste";
mytext.setTextFormat(myformat);
Consulte também
Classe TextFormat
MovieClip._currentframe
Disponibilidade
Flash Player 4.
Uso
my_mc._currentframe
Descrição
Propriedade (somente de leitura); retorna o número do quadro no qual a reprodução está
localizada na Timeline especificada por my_mc.
Exemplo
O exemplo a seguir usa a propriedade _currentframe para direcionar a reprodução de
actionClip_mc do clipe de filme para avançar cinco quadros em relação à sua posição atual.
actionClip_mc.gotoAndStop(_currentframe + 5);
MovieClip._currentframe
545
MovieClip.curveTo()
Disponibilidade
Flash Player 6.
Uso
my_mc.curveTo(controlX, controlY, anchorX, anchorY)
Parâmetros
Um inteiro que especifica uma posição horizontal relativa ao ponto de registro do
clipe de filme pai do ponto de controle.
controlX
Um inteiro que especifica uma posição vertical relativa ao ponto de registro do clipe
de filme pai do ponto de controle.
controlY
Um inteiro que especifica uma posição horizontal relativa ao ponto de registro do clipe
de filme pai do próximo ponto de ancoragem.
anchorX
Um inteiro que especifica uma posição vertical relativa ao ponto de registro do clipe de
filme pai do próximo ponto de ancoragem.
anchorY
Retorna
Nada.
Descrição
Método; desenha uma curva, utilizando o estilo de linha atual, da posição de desenho até
(anchorX, anchorY) com o ponto de controle especificado por (controlX, controlY).
Em seguida, a posição atual do desenho é definida para (anchorX, anchorY). Se o clipe de filme
em criação apresentar conteúdo elaborado com as ferramentas de desenho do Flash, as chamadas
para curveTo() serão desenhadas sob esse conteúdo. Se você chamar curveTo() antes de fazer
qualquer chamada a moveTo(), a posição atual do desenho será predefinida como (0, 0). Se faltar
algum parâmetro, o método falhará e a posição atual do desenho não será alterada.
Exemplo
O exemplo a seguir desenha um círculo com uma linha azul sólida e fina, e um preenchimento
vermelho sólido.
_root.createEmptyMovieClip( "círculo", 1 );
with ( _root.circle )
{
lineStyle( 0, 0x0000FF, 100 );
beginFill( 0xFF0000 );
moveTo( 500, 500 );
curveTo( 600, 500, 600, 400 );
curveTo( 600, 300, 500, 300 );
curveTo( 400, 300, 400, 400 );
curveTo( 400, 500, 500, 500 );
endFill();
}
Consulte também
MovieClip.beginFill(), MovieClip.createEmptyMovieClip(), MovieClip.endFill(),
MovieClip.lineStyle(), MovieClip.lineTo(), MovieClip.moveTo()
546
Capítulo 12: Dicionário do ActionScript
MovieClip._droptarget
Disponibilidade
Flash Player 4.
Uso
my_mc._droptarget
Descrição
Propriedade (somente de leitura); retorna o caminho absoluto, em notação de sintaxe de barra,
da instância do clipe de filme em que my_mc foi solto. A propriedade _droptarget sempre
retorna um caminho iniciado com uma barra (/). Para comparar a propriedade _droptarget de
uma instância com uma referência, use a eval() função para converter o valor retornado da
sintaxe de barra em uma referência de sintaxe de ponto.
Exemplo
O exemplo a seguir avalia a propriedade _droptarget da instância de clipe de filme garbage e
usa eval() para convertê-la de sintaxe de barra em uma referência de sintaxe de ponto.
A referência garbage é, então, comparada com a referência à instância do clipe de filme trash.
Se as duas referências forem equivalentes, a visibilidade de garbage será definida como false.
Se não forem equivalentes, a instância de garbage será redefinida para sua posição original.
if (eval(garbage._droptarget) == _root.trash) {
garbage._visible = false;
else {
garbage._x = x_pos;
garbage._y = y_pos;
}
As variáveis x_pos e y_pos são definidas no quadro 1 do arquivo SWF com o seguinte script:
x_pos = garbage._x;
y_pos = garbage._y;
Consulte também
startDrag()
MovieClip._droptarget
547
MovieClip.duplicateMovieClip()
Disponibilidade
Flash Player 5.
Uso
my_mc.duplicateMovieClip(newname, depth [,initObject])
Parâmetros
newname
Um identificador exclusivo do clipe de filme duplicado.
depth Um número exclusivo que especifica o nível de profundidade em que o arquivo SWF
deve ser colocado.
(Suportado pelo Flash Player 6 e posterior.) Um objeto que contém propriedades
com as quais se deve preencher o clipe de filme duplicado. Este parâmetro permite que os clipes
de filme criados dinamicamente recebam parâmetros de clipe. Se initObject não for um objeto,
ele será ignorado. Todas as propriedades de initObject são copiadas na nova instância.
As propriedades especificadas com initObject estão disponíveis para a função construtora.
Este parâmetro é opcional.
initObject
Retorna
Nada.
Descrição
Método; cria uma instância do clipe de filme especificado enquanto o arquivo SWF está sendo
reproduzido. A reprodução dos clipes de filme duplicados sempre começam no quadro 1,
independentemente de em qual quadro o clipe de filme original esteja quando o método
duplicateMovieClip() é chamado. As variáveis no clipe de filme pai não são copiadas para o
clipe de filme duplicado. Os clipes de filme criados com o método duplicateMovieClip() não
serão duplicados se você chamar duplicateMovieClip() em seus pais. Se o clipe de filme pai for
excluído, o clipe de filme duplicado também o será. Os clipes de filme adicionados com
duplicateMovieClip() podem ser excluídos com a ação ou o método removeMovieClip().
Consulte também
duplicateMovieClip(), MovieClip.removeMovieClip(), removeMovieClip()
548
Capítulo 12: Dicionário do ActionScript
MovieClip.enabled
Disponibilidade
Flash Player 6.
Uso
my_mc.enabled
Descrição
Propriedade; um valor booleano que indica se um clipe de filme de botão está ativado. O valor
padrão de enabled é true. Se for atribuído o valor false para enabled, os métodos de retorno
de chamada do clipe de filme de botão e os manipuladores de evento onAction não serão mais
chamados. Além disso, os quadros Over (Sobre), Down (Para baixo) e Up (Para cima) serão
desativados. A propriedade enabled não afeta a Linha de tempo do clipe de filme de botão; se um
clipe de filme estiver sendo reproduzido, esse processo não será interrompido. O clipe de filme
continuará a receber eventos do clipe de filme (por exemplo, mouseDown, mouseUp, keyDown e
keyUp).
A propriedade enabled regula apenas as propriedades de botão de um clipe de filme de botão.
É possível alterar a propriedade enabled a qualquer momento; o clipe de filme de botão
modificado é ativado ou desativado imediatamente. A propriedade enabled pode ser lida a partir
de um objeto de protótipo. Se enabled estiver definida como false, o objeto não será incluído
na ordenação automática de guias.
MovieClip.endFill()
Disponibilidade
Flash Player 6.
Uso
my_mc.endFill()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; aplica um preenchimento às linhas e curvas adicionadas desde a última chamada ao
método beginFill() ou beginGradientFill(). O Flash usa o preenchimento especificado na
chamada anterior a beginFill() ou beginGradientFill(). Se a posição de desenho atual não
for igual à posição anterior especificada em um método moveTo() e um preenchimento for
definido, o caminho será fechado com uma linha e preenchido em seguida.
MovieClip.endFill()
549
MovieClip.focusEnabled
Disponibilidade
Flash Player 6.
Uso
my_mc.focusEnabled
Descrição
Propriedade; se o valor for undefined ou false, um clipe de filme não poderá receber o foco de
entrada, a menos que o clipe seja um clipe de filme de botão. Se o valor da propriedade
focusEnabled for true, um clipe de filme poderá receber o foco de entrada mesmo que não seja
do tipo de botão.
MovieClip._focusrect
Disponibilidade
Flash Player 6.
Uso
my_mc._focusrect
Descrição
Propriedade; um valor booleano que especifica se um clipe de filme apresenta um retângulo
amarelo ao seu redor quando tem o foco do teclado. Esta propriedade pode prevalecer sobre a
propriedade global _focusrect.
550
Capítulo 12: Dicionário do ActionScript
MovieClip._framesloaded
Disponibilidade
Flash Player 4.
Uso
my_mc._framesloaded
Descrição
Propriedade (somente de leitura); o número de quadros que foram carregados de um arquivo
SWF em fluxo. Esta propriedade é útil para determinar se o conteúdo de um determinado quadro
e todos os quadros antes dele foram carregados e estão disponíveis localmente no navegador. Isso é
útil para monitorar o processo de download de arquivos SWF grandes. Por exemplo, você pode
exibir uma mensagem para os usuários indicando que o SWF está carregando até que um
determinado quadro do SWF tenha sido carregado.
Exemplo
O exemplo a seguir utiliza a propriedade _framesloaded para iniciar um SWF quando todos os
quadros estão carregados. Se nem todos os quadros estiverem carregados, a propriedade _xscale
da instância do clipe de filme loader será aumentada proporcionalmente para criar uma barra de
progresso.
if (_framesloaded >= _totalframes) {
gotoAndPlay ("Scene 1", "start");
else {
_root.loader._xscale = (_framesloaded/_totalframes)*100;
}
MovieClip._framesloaded
551
MovieClip.getBounds()
Disponibilidade
Flash Player 5.
Uso
my_mc.getBounds(targetCoordinateSpace)
Parâmetros
targetCoordinateSpace O caminho de destino da Linha de tempo cujo sistema de
coordenadas você deseja usar como ponto de referência.
Retorna
Um objeto com as propriedades xMin, xMax, yMin e yMax.
Descrição
Método; retorna as propriedades correspondentes aos valores mínimos e máximos de coordenadas
x e y da instância especificada por my_mc para o parâmetro targetCoordinateSpace.
Observação: Use MovieClip.localToGlobal() e MovieClip.globalToLocal() para converter as
coordenadas locais do clipe de filme em coordenadas do Stage (Palco), ou coordenadas do Stage
(Palco) em coordenadas locais, respectivamente.
Exemplo
No exemplo a seguir, o objeto retornado por getBounds() é atribuído ao identificador
clipBounds. Em seguida, é possível acessar os valores de cada propriedade e utilizá-los em um
script. Outra instância de clipe de filme, chamada clip2, é colocada junto de clip neste script.
clipBounds = clip.getBounds(_root);
clip2._x = clipBounds.xMax;
Consulte também
MovieClip.globalToLocal(), MovieClip.localToGlobal()
552
Capítulo 12: Dicionário do ActionScript
MovieClip.getBytesLoaded()
Disponibilidade
Flash Player 5.
Uso
my_mc.getBytesLoaded()
Parâmetros
Nenhum.
Retorna
Um inteiro que indica o número de bytes carregados.
Descrição
Método; retorna a quantidade de bytes já carregados (transmitidos) do clipe de filme especificado
por my_mc. Este valor pode ser comparado com o valor retornado por
MovieClip.getBytesTotal() para determinar a porcentagem já carregada do clipe de filme.
Consulte também
MovieClip.getBytesTotal()
MovieClip.getBytesTotal()
Disponibilidade
Flash Player 5.
Uso
my_mc.getBytesTotal()
Parâmetros
Nenhum.
Retorna
Um inteiro que indica o tamanho total, em bytes, de my_mc.
Descrição
Método; retorna o tamanho em bytes do clipe de filme especificado por my_mc. No caso de clipes
de filme externos (o SWF raiz ou um clipe de filme que esteja sendo carregado em um destino ou
nível), o valor de retorno será o tamanho do arquivo SWF.
Consulte também
MovieClip.getBytesLoaded()
MovieClip.getBytesTotal()
553
MovieClip.getDepth()
Disponibilidade
Flash Player 6.
Uso
my_mc.getDepth()
Parâmetros
Nenhum.
Retorna
Um inteiro.
Descrição
Método; retorna a profundidade de uma instância de clipe de filme. Para obter mais informações,
consulte “Gerenciando profundidades do clipe de filme” na página 128.
Consulte também
MovieClip.getInstanceAtDepth(), MovieClip.getNextHighestDepth(),
MovieClip.swapDepths()
MovieClip.getInstanceAtDepth()
Disponibilidade
Flash Player 7.
Uso
my_mc.getInstanceAtDepth(depth)
Parâmetros
depth
Um inteiro que especifica o nível de profundidade da consulta.
Retorna
Uma seqüência de caracteres contendo o nome do clipe de filme localizado na profundidade
especificada ou undefined se não houver nenhum clipe de filme naquela profundidade.
Descrição
Método; permite determinar se uma certa profundidade já está ocupada por um clipe de filme.
Pode-se usar esse método antes de usar MovieClip.attachMovie(),
MovieClip.duplicateMovieClip() ou MovieClip.createEmptyMovieClip() para descobrir
se o parâmetro depth que você deseja passar para qualquer desses métodos já contém um clipe de
filme. Para obter mais informações, consulte “Gerenciando profundidades do clipe de filme”
na página 128.
Consulte também
MovieClip.getDepth(), MovieClip.getNextHighestDepth(), MovieClip.swapDepths()
554
Capítulo 12: Dicionário do ActionScript
MovieClip.getNextHighestDepth()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
Disponibilidade
Flash Player 7.
Uso
my_mc.getNextHighestDepth()
Parâmetros
Nenhum.
Retorna
Um inteiro que informa o próximo índice de profundidade disponível e que levaria à renderização
sobre todos os outros objetos em my_mc.
Descrição
Método; permite determinar um valor de profundidade que pode ser passado para
MovieClip.attachMovie(), MovieClip.duplicateMovieClip() ou
MovieClip.createEmptyMovieClip(), a fim de assegurar que o Flash renderize o clipe de filme
na frente de todos os outros objetos no clipe de filme atual. O valor retornado é 0 ou maior
(ou seja, números negativos não são retornados).
Para obter mais informações, consulte “Gerenciando profundidades do clipe de filme”
na página 128.
Consulte também
MovieClip.getDepth(), MovieClip.getInstanceAtDepth(), MovieClip.swapDepths()
MovieClip.getSWFVersion()
Disponibilidade
Flash Player 7.
Uso
my_mc.getSWFVersion()
Parâmetros
Nenhum.
Retorna
Um inteiro que especifica a versão do arquivo SWF carregado no my_mc.
Descrição
Método; retorna um inteiro que indica a versão do Flash Player em que my_mc foi publicado.
Se my_mc for um arquivo JPEG ou se ocorrer um erro e o Flash não puder descobrir a versão SWF
de my_mc, -1 será retornado.
MovieClip.getSWFVersion()
555
MovieClip.getTextSnapshot()
Para obter as informações mais recentes sobre este tópico, clique no botão Update (Atualizar) na
parte superior da guia Help (Ajuda).
MovieClip.getURL()
Disponibilidade
Flash Player 5.
Uso
my_mc.getURL(URL [,janela, variáveis])
Parâmetros
url
O URL de onde pode ser obtido o documento.
janela
Um parâmetro opcional que especifica o nome, o quadro ou a expressão que determina
a janela ou o quadro HTML em que o documento foi carregado. Também é possível usar um dos
seguintes nomes de destino reservados: _self especifica o quadro atual na janela atual, _blank
especifica uma nova janela, _parent especifica o pai do quadro atual e _top especifica o quadro
de alto nível na janela atual.
variáveis Um parâmetro opcional que especifica um método de envio de variáveis associado
ao filme a ser carregado. Se não houver variáveis, omita esse parâmetro; caso contrário, especifique
se deseja carregar as variáveis usando um método GET ou POST. GET anexa as variáveis ao final do
URL e é usado para pequenos números de variáveis. POST envia as variáveis em um cabeçalho
HTTP em separado e é usado para maiores seqüências de caracteres de variáveis.
Retorna
Nada.
Descrição
Método; carrega um documento do URL especificado na janela especificada. O método getURL
também pode ser usado para passar variáveis para outro aplicativo definido no URL usando o
método GET ou POST.
Consulte também
getURL()
556
Capítulo 12: Dicionário do ActionScript
MovieClip.globalToLocal()
Disponibilidade
Flash Player 5.
Uso
my_mc.globalToLocal(point)
Parâmetros
O nome ou identificador de um objeto criado com o Classe Object genérico. O objeto
especifica as coordenadas x e y como coordenadas.
point
Retorna
Nada.
Descrição
Método; converte o objeto Ponto das coordenadas do Palco (global) em coordenadas do clipe de
filme (local).
Exemplo
O exemplo a seguir converte as coordenadas x e y globais do objeto Ponto em coordenadas locais
do clipe de filme.
onClipEvent(mouseMove) {
point = new object();
point.x = _root._xmouse;
point.y = _root._ymouse;
globalToLocal(point);
trace(_root._xmouse + " " + _root._ymouse);
trace(point.x + " " + point.y);
updateAfterEvent();
}
Consulte também
MovieClip.getBounds(), MovieClip.localToGlobal()
MovieClip.globalToLocal()
557
MovieClip.gotoAndPlay()
Disponibilidade
Flash Player 5.
Uso
my_mc.gotoAndPlay(quadro)
Parâmetros
quadro
O número do quadro para o qual a reprodução é enviada.
Retorna
Nada.
Descrição
Método; começa a reproduzir o arquivo SWF no quadro especificado.
Consulte também
gotoAndPlay()
MovieClip.gotoAndStop()
Disponibilidade
Flash Player 5.
Uso
my_mc.gotoAndStop(quadro)
Parâmetros
quadro
O número do quadro para o qual a reprodução é enviada.
Retorna
Nada.
Descrição
Método; envia a reprodução para o quadro especificado do clipe de filme e a interrompe nessa
posição.
Consulte também
gotoAndStop()
558
Capítulo 12: Dicionário do ActionScript
MovieClip._height
Disponibilidade
Flash Player 4.
Uso
my_mc._height
Descrição
Propriedade; a altura em pixels do clipe de filme.
Exemplo
O exemplo de código a seguir define a altura e a largura de um clipe de filme quando o usuário
clica com o botão do mouse.
onClipEvent(mouseDown) {
_width=200;
_height=200;
}
MovieClip._highquality
Disponibilidade
Flash Player 6.
Uso
my_mc._highquality
Descrição
Propriedade (global); especifica o nível de eliminação de serrilhado aplicado ao arquivo SWF
atual. Especifique 2 (melhor qualidade) para aplicar alta qualidade com a suavização de bitmap
sempre ativada. Especifique 1 (alta qualidade) para aplicar o recurso de eliminação de serrilhado;
isso suavizará os bitmaps se o SWF não contiver animação. Especifique 0 (baixa qualidade) para
evitar o recurso sem serrilhado. Esta propriedade pode substituir a propriedade global
_highquality.
Exemplo
my_mc._highquality = 1;
Consulte também
_quality, toggleHighQuality()
MovieClip._highquality
559
MovieClip.hitArea
Disponibilidade
Flash Player 6.
Uso
my_mc.hitArea
Retorna
Uma referência a um clipe de filme.
Descrição
Propriedade; designa outro clipe de filme para atuar como a área de clicagem de um clipe de filme
de botão. Se não houver uma propriedade hitArea ou se ela for null ou undefined, o próprio
clipe de filme de botão será usado como a área de clicagem. O valor da propriedade hitArea pode
ser uma referência para um objeto de clipe de filme.
É possível alterar a propriedade hitArea a qualquer momento; o clipe de filme de botão
modificado assume imediatamente o comportamento da nova área de clicagem. O clipe de filme
designado como área de clicagem não precisa ficar visível; sua forma gráfica é testada mesmo que
esteja invisível. A propriedade hitArea pode ser lida de um objeto de protótipo.
560
Capítulo 12: Dicionário do ActionScript
MovieClip.hitTest()
Disponibilidade
Flash Player 5.
Uso
my_mc.hitTest(x, y, shapeFlag)
my_mc.hitTest(target)
Parâmetros
x
A coordenada x da área de clicagem no Palco.
y
A coordenada y da área de clicagem no Palco.
As coordenadas x e y são definidas no espaço de coordenadas globais.
target
O caminho de destino da área de clicagem que pode entrar em interseção ou
sobreposição com a instância especificada por my_mc. Normalmente, target representa um botão
ou um campo de entrada de texto.
shapeFlag Um valor booleano que determina se será avaliada a forma completa da instância
especificada (true) ou apenas a caixa delimitadora (false). Esse parâmetro só poderá ser
especificado se a área de clicagem for identificada com os parâmetros de coordenadas x e y.
Retorna
Um valor booleano true, se my_mc for sobreposto à área de clicagem especificada, caso contrário,
false.
Descrição
Método; avalia a instância especificada por my_mc para ver se ela se sobrepõe ou entra em
interseção com a área de clicagem identificada por target ou pelos parâmetros de coordenadas
x e y.
Uso 1: Compara as coordenadas x e y com a forma ou com a caixa delimitadora da instância
especificada, de acordo com a definição de shapeFlag. Se shapeFlag for definido como true,
somente a área realmente ocupada pela instância no Palco é avaliada e se x e y se sobrepuserem em
algum ponto, um valor true é retornado. Isso é útil para determinar se o clipe de filme está dentro
de uma área de clicagem ou de ponto ativo especificada.
Uso 2: Avalia as caixas delimitadoras de target e da instância especificada e retorna true caso
elas se sobreponham ou entrem em interseção em algum ponto.
MovieClip.hitTest()
561
Exemplo
O exemplo a seguir usa hitTest() com as propriedades x_mouse e y_mouse para determinar se o
ponteiro do mouse está sobre a caixa delimitadora de destino:
if (hitTest( _root._xmouse, _root._ymouse, false));
O exemplo a seguir usa hitTest() para determinar se o clipe de filme ball se sobrepõe ou entra
em interseção com o clipe de filme square:
if(_root.ball.hitTest(_root.square)){
trace("ball intersects square");
}
Consulte também
MovieClip.getBounds(), MovieClip.globalToLocal(), MovieClip.localToGlobal()
MovieClip.lineStyle()
Disponibilidade
Flash Player 6.
Uso
my_mc.lineStyle ([espessura[, rgb[, alfa]]])
Parâmetros
espessura Um inteiro que indica a espessura da linha, em pontos. Os valores válidos vão de 0 a
255. Se um número não for especificado ou se o parâmetro for undefined, nenhuma linha será
desenhada. Se um valor menor que 0 for passado, o Flash usará 0. O valor 0 indica espessura fina;
a espessura máxima é 255. Se um valor maior que 255 for passado, o interpretador do Flash usará 255.
Um valor de cor hexadecimal da linha (por exemplo, vermelho corresponde a 0xFF0000,
azul corresponde a 0x0000FF e assim por diante). Se nenhum valor for indicado, o Flash usará
0x000000 (preto).
rgb
alfa Um inteiro que indica o valor alfa da cor da linha; os valores válidos vão de 0 a 100.
Se nenhum valor for indicado, o Flash usará 100 (sólido). Se o valor for menor do que 0, o Flash
usará 0 e se for maior do que 100, o Flash usará100.
Retorna
Nada.
Descrição
Método; especifica um estilo de linha que será usado pelo Flash para as chamadas subseqüentes
aos métodos lineTo() e curveTo() até que lineStyle() seja chamado com parâmetros
diferentes. É possível chamar o método lineStyle() durante o desenho de um caminho para
especificar estilos diferentes para segmentos de linha distintos em um caminho.
Observação: As chamadas para clear redefinem o método lineStyle() como undefined.
562
Capítulo 12: Dicionário do ActionScript
Exemplo
O código a seguir desenha um triângulo com uma linha magenta sólida de 5 pontos e sem
preenchimento.
_root.createEmptyMovieClip( "triângulo", 1 );
with ( _root.triangle )
{
lineStyle( 5, 0xff00ff, 100 );
moveTo( 200, 200 );
lineTo( 300,300 );
lineTo( 100, 300 );
lineTo( 200, 200 );
}
Consulte também
MovieClip.beginFill(), MovieClip.beginGradientFill(), MovieClip.clear(),
MovieClip.curveTo(), MovieClip.lineTo(), MovieClip.moveTo()
MovieClip.lineStyle()
563
MovieClip.lineTo()
Disponibilidade
Flash Player 6.
Uso
my_mc.lineTo(x, y)
Parâmetros
x
Um inteiro que indica a posição horizontal relativa ao ponto de registro do clipe de filme pai.
y
Um inteiro que indica a posição vertical relativa ao ponto de registro do clipe de filme pai.
Retorna
Nada.
Descrição
Método; desenha uma linha utilizando o estilo atual a partir da posição do desenho no momento
em (x, y); a posição atual do desenho é então definida como (x, y). Se o clipe de filme em que
você está desenhando apresentar conteúdo criado com as ferramentas de desenho do Flash,
as chamadas para lineTo() serão feitas sob o conteúdo. Se você chamar lineTo() antes de
realizar qualquer chamada ao método moveTo(), o padrão da posição atual do desenho será (0, 0).
Se faltar algum parâmetro, o método falhará e a posição atual do desenho não será alterada.
Exemplo
O exemplo a seguir desenha um triângulo sem nenhuma linha e um preenchimento azul
parcialmente transparente.
_root.createEmptyMovieClip ("triangle", 1);
with (_root.triangle){
beginFill (0x0000FF, 50);
lineStyle (5, 0xFF00FF, 100);
moveTo (200, 200);
lineTo (300, 300);
lineTo (100, 300);
lineTo (200, 200);
endFill();
}
Consulte também
MovieClip.beginFill(), MovieClip.createEmptyMovieClip(), MovieClip.endFill(),
MovieClip.lineStyle(), MovieClip.moveTo()
564
Capítulo 12: Dicionário do ActionScript
MovieClip.loadMovie()
Disponibilidade
Flash Player 5.
Uso
my_mc.loadMovie("url" [,variáveis])
Parâmetros
Um URL absoluto ou relativo do arquivo SWF ou JPEG a ser carregado. Um caminho
relativo deve ser relativo ao arquivo SWF no nível 0. Para utilização em um Flash Player
independente ou para verificação no modo de teste do aplicativo de criação do Flash, todos os
arquivos SWF devem estar armazenados na mesma pasta e os nomes de arquivo não podem
incluir especificações de pasta ou unidade de disco.
url
variáveis Um parâmetro opcional que especifica um método HTTP para o envio ou
carregamento de variáveis. O parâmetro deve ser a seqüência de caracteres GET ou POST. Se não
houver nenhuma variável a ser enviada, omita esse parâmetro. O método GET anexa as variáveis ao
final do URL e é usado para pequenos números de variáveis. O método POST envia as variáveis em
um cabeçalho HTTP separado e é usado para seqüências de caracteres maiores de variáveis.
Retorna
Nada.
Descrição
Método; carrega arquivos SWF ou JPEG em um clipe de filme no Flash Player durante a
reprodução do arquivo SWF original. Sem o método loadMovie(), o Flash Player exibe um
único arquivo SWF e, em seguida, é encerrado. O método loadMovie() permite que você exiba
vários SWFs de uma só vez e alterne entre os SWFs sem carregar outro documento HTML.
Um SWF ou uma imagem carregada em um clipe de filme herda as propriedades de posição,
rotação e dimensionamento do clipe de filme. Utilize o caminho de destino do clipe de filme para
especificar o SWF carregado.
Use o método unloadMovie() para remover SWFs ou imagens carregadas com o método
Use o método loadVariables() para manter o SWF ativo e atualizar as variáveis
com os novos valores.
loadMovie().
Se desejar monitorar o progresso de um arquivo à medida que ele é carregado, use
em vez deste método. Para obter mais informações, consulte a
entrada da Classe MovieClipLoader.
MovieClipLoader.loadClip()
Consulte também
loadMovie(), loadMovieNum(), MovieClip.loadVariables(), MovieClip.unloadMovie(),
unloadMovie(), unloadMovieNum()
MovieClip.loadMovie()
565
MovieClip.loadVariables()
Disponibilidade
Flash Player 5.
Uso
my_mc.loadVariables("url", variáveis)
Parâmetros
url O URL absoluto ou relativo para o arquivo externo que contém as variáveis a serem
carregadas. O host do URL deve estar no mesmo subdomínio que o clipe de filme.
variáveis Um parâmetro opcional que especifica um método HTTP para o envio de variáveis.
O parâmetro deve ser a seqüência de caracteres GET ou POST. Se não houver nenhuma variável a
ser enviada, omita esse parâmetro. O método GET anexa as variáveis ao final do URL e é usado
para pequenos números de variáveis. O método POST envia as variáveis em um cabeçalho HTTP
separado e é usado para seqüências de caracteres maiores de variáveis.
Retorna
Nada.
Descrição
Método; lê dados de um arquivo externo e define os valores das variáveis em my_mc. O arquivo
externo pode ser um arquivo de texto gerado por script CGI, Active Server Pages (ASP) ou PHP,
e pode conter qualquer número de variáveis.
Esse método também pode ser usado para atualizar variáveis no clipe de filme ativo com novos
valores.
O método precisa que o texto do URL esteja no formato MIME padrão: application/x-www-formurlencoded (formato de script CGI).
Consulte também
loadMovie(), loadVariables(), loadVariablesNum(), MovieClip.unloadMovie()
566
Capítulo 12: Dicionário do ActionScript
MovieClip.localToGlobal()
Disponibilidade
Flash Player 5.
Uso
my_mc.localToGlobal(point)
Parâmetros
O nome ou identificador de um objeto criado com a classe Object Classe Object,
especificando as coordenadas x e y como propriedades.
point
Retorna
Nada.
Descrição
Método; converte o objeto Point das coordenadas (locais) do clipe de filme em coordenadas
(globais) do Stage (Palco).
Exemplo
O exemplo a seguir converte as coordenadas x e y do objeto point de coordenadas do clipe de
filme (locais) em coordenadas globais do Stage (Palco). As coordenadas x e y locais são
especificadas com as propriedades _xmouse e _ymouse para recuperar as coordenadas x e y da
posição do ponteiro do mouse.
onClipEvent(mouseMove) {
point = new object();
point.x = _xmouse;
point.y = _ymouse;
_root.out3 = point.x + " === " + point.y;
_root.out = _root._xmouse + " === " + _root._ymouse;
localToGlobal(point);
_root.out2 = point.x + " === " + point.y;
updateAfterEvent();
}
Consulte também
MovieClip.globalToLocal()
MovieClip.localToGlobal()
567
MovieClip._lockroot
Disponibilidade
Flash Player 7.
Uso
my_mc._lockroot
Descrição
Propriedade; especifica o que está sendo apontado por _root no momento em que um arquivo
SWF foi carregado no clipe de filme. O valor padrão da propriedade _lockroot é undefined. É
possível definir essa propriedade no SWF ou no manipulador que está carregando o clipe de filme.
Por exemplo, vamos supor que você tenha um documento chamado Games.fla, que permite ao
usuário escolher um jogo e carrega o jogo (por exemplo, Chess.swf ) no clipe de filme game_mc.
Você gostaria de ter certeza de que, se _root for usado em Chess.swf, ele ainda fará referência a
_root de Chess.swf depois de ter sido carregado em Games.swf. Se tiver acesso a Chess.fla e
publicá-lo no Flash Player 7 ou posterior, você poderá adicionar esse comando a ele:
this._lockroot = true;
Se não tiver acesso a Chess.fla (por exemplo, se estiver carregando Chess.swf a partir do site de
outra pessoa), você poderá definir a propriedade _lockroot quando carregá-lo, conforme
mostrado abaixo. Nesse caso, Chess.swf poderá ser publicado em qualquer versão do Flash Player
desde que Games.swf seja publicado no Flash Player 7 ou posterior.
onClipEvent (load)
{
this._lockroot = true;
}
game_mc.loadMovie ("Chess.swf");
Caso não tenha usado o comando this._lockroot = true em nenhum dos SWFs, _root de
Chess.swf irá se referir a _root do Games.swf depois que Chess.swf tiver sido carregado em
Games.swf.
Consulte também
_root, MovieClip.attachMovie(), MovieClip.loadMovie()
568
Capítulo 12: Dicionário do ActionScript
MovieClip.menu
Disponibilidade
Flash Player 7.
Uso
my_mc.menu = contextMenu
Parâmetros
contextMenu
Um objeto ContextMenu.
Descrição
Propriedade; associa o objeto ContextMenu especificado ao clipe de filme my_mc. A classe
ContextMenu permite modificar o menu contextual que aparece quando o usuário clica com o
botão direito do mouse (Windows) ou com a tecla Control pressionada (Macintosh) no Flash
Player.
Exemplo
O exemplo a seguir atribui o objeto ContextMenu menu_cm ao clipe de filme content_mc.
O objeto ContextMenu contém um item de menu personalizado “Imprimir...” com um
manipulador associado de retorno de chamada denominado doPrint().
var menu_cm = new ContextMenu();
menu_cm.customItems.push(new ContextMenuItem("Imprimir...", doPrint));
function doPrint(menu, obj) {
// Aqui vai o código de "Imprimir"
}
content_mc.menu = menu_cm;
Consulte também
Button.menu, Classe ContextMenu, Classe ContextMenuItem, TextField.menu
MovieClip.menu
569
MovieClip.moveTo()
Disponibilidade
Flash Player 6.
Uso
my_mc.moveTo(x, y)
Parâmetros
x
Um inteiro que indica a posição horizontal relativa ao ponto de registro do clipe de filme pai.
y
Um inteiro que indica a posição vertical relativa ao ponto de registro do clipe de filme pai.
Retorna
Nada.
Descrição
Método; move a posição atual do desenho para (x, y). Se faltar algum parâmetro, o método
falhará e a posição atual do desenho não será alterada.
Exemplo
Este exemplo desenha um triângulo com linhas magenta sólidas de 5 pontos, sem preenchimento.
A primeira linha cria um clipe de filme vazio para o desenho. Um tipo de linha é definido no
comando with; em seguida, a posição inicial do desenho é indicada pelo método moveTo().
_root.createEmptyMovieClip( "triângulo", 1 );
with ( _root.triangle )
{
lineStyle( 5, 0xff00ff, 100 );
moveTo( 200, 200 );
lineTo( 300,300 );
lineTo( 100, 300 );
lineTo( 200, 200 );
}
Consulte também
MovieClip.createEmptyMovieClip(), MovieClip.lineStyle(), MovieClip.lineTo()
MovieClip._name
Disponibilidade
Flash Player 4.
Uso
my_mc._name
Descrição
Propriedade; retorna o nome da instância do clipe de filme especificado por my_mc.
570
Capítulo 12: Dicionário do ActionScript
MovieClip.nextFrame()
Disponibilidade
Flash Player 5.
Uso
my_mc.nextFrame()
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Método; envia a reprodução para o próximo quadro e a encerra.
Consulte também
nextFrame()
MovieClip.onData
Disponibilidade
Flash Player 6.
Uso
my_mc.onData = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um clipe de filme recebe dados de uma chamada
loadVariables() ou loadMovie(). É necessário definir uma função que seja executada quando
o manipulador de eventos for chamado.
Esse manipulador poderá ser usado somente com clipes de filme para os quais você tenha um
símbolo em biblioteca associada a uma classe. Se desejar que um manipulador de eventos seja
invocado quando um clipe de filme específico receber dados, use onClipEvent(data) em vez
deste manipulador. Este manipulador será chamado quando qualquer clipe de filme receber
dados.
MovieClip.onData
571
Exemplo
O exemplo a seguir ilustra o uso correto de MovieClip.onData() e onClipEvent(data).
// symbol_mc é um símbolo de clipe de filme na biblioteca.
// Está vinculado à classe MovieClip.
// A função a seguir é ativada para cada instância de symbol_mc
//
quando recebe dados.
symbol_mc.onData = function() {
trace("O clipe de filme recebeu dados");
}
// dynamic_mc é um clipe de filme que está sendo carregado com
MovieClip.loadMovie().
//
Esse código tenta chamar uma função quando o clipe é carregado,
//
mas não funcionará porque o SWF carregado não é um símbolo
//
na biblioteca associada à classe MovieClip.
function output()
{
trace("Nunca será chamado.");
}
dynamic_mc.onData = output;
dynamic_mc.loadMovie("replacement.swf");
// A função a seguir é chamada para qualquer clipe de filme que
// recebe dados, quer esteja na biblioteca ou não.
// Portanto, essa função é chamada quando symbol_mc é instanciado
//
e também quando replacement.swf é carregado.
onClipEvent(data) {
trace("O clipe de filme recebeu dados");
}
Consulte também
onClipEvent()
572
Capítulo 12: Dicionário do ActionScript
MovieClip.onDragOut
Disponibilidade
Flash Player 6.
Uso
my_mc.onDragOut = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando o botão do mouse é pressionado e o ponteiro rola para
fora da área do objeto. É necessário definir uma função que seja executada quando o manipulador
de eventos for chamado.
Exemplo
O exemplo a seguir define uma função para o método onDragOut que envia uma ação trace()
ao painel Output (Saída).
my_mc.onDragOut = function () {
trace ("onDragOut chamado");
};
Consulte também
MovieClip.onDragOver
MovieClip.onDragOut
573
MovieClip.onDragOver
Disponibilidade
Flash Player 6.
Uso
my_mc.onDragOver = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; invocado quando o ponteiro é arrastado fora e, em seguida, para cima
do clipe de filme. É necessário definir uma função que seja executada quando o manipulador de
eventos for chamado.
Exemplo
O exemplo a seguir define uma função para o método onDragOver que envia uma ação trace()
ao painel Output (Saída).
my_mc.onDragOver = function () {
trace ("onDragOver chamado");
};
Consulte também
MovieClip.onDragOut
574
Capítulo 12: Dicionário do ActionScript
MovieClip.onEnterFrame
Disponibilidade
Flash Player 6.
Uso
my_mc.onEnterFrame = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado continuamente na mesma taxa de quadros do arquivo SWF.
As ações associadas ao evento de clipe enterFrame são processadas antes de qualquer ação de
quadro que tenha sido anexada aos quadros afetados.
É necessário definir uma função que seja executada quando o manipulador de eventos for
chamado.
Exemplo
O exemplo a seguir define uma função para o método onEnterFrame que envia uma ação
trace() ao painel Output (Saída).
my_mc.onEnterFrame = function () {
trace ("onEnterFrame chamado");
};
MovieClip.onEnterFrame
575
MovieClip.onKeyDown
Disponibilidade
Flash Player 6.
Uso
my_mc.onKeyDown = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando um clipe de filme tem o foco de entrada e uma tecla é
pressionada. O manipulador de eventos onKeyDown é chamado sem nenhum parâmetro.
É possível usar os métodos Key.getAscii() e Key.getCode() para determinar qual tecla foi
pressionada. É necessário definir uma função que seja executada quando o manipulador de
eventos for chamado.
O manipulador de eventos onKeyDown só funcionará se o clique de filme tiver foco de entrada
ativado e definido. Primeiro, a propriedade focusEnabled deve ser definida como true para o
clipe de filme. Em seguida, é preciso dar foco ao clipe. Para isso, use Selection.setFocus() ou
então acione a tecla Tab para navegar até o clipe.
Se Selection.setFocus() for utilizado, o caminho do clipe de filme deverá ser passado para
Selection.setFocus(). É muito fácil para outros elementos retomarem o foco depois que o
mouse é movido.
Exemplo
O exemplo a seguir define uma função para o método onKeyDown() que envia uma ação trace()
ao painel Output (Saída):
my_mc.onKeyDown = function () {
trace ("onKeyDown chamado");
};
O exemplo a seguir define o foco de entrada:
MovieClip.focusEnabled = true;
Selection.setFocus(MovieClip);
Consulte também
MovieClip.onKeyUp
576
Capítulo 12: Dicionário do ActionScript
MovieClip.onKeyUp
Disponibilidade
Flash Player 6.
Uso
my_mc.onKeyUp = function() {
// seus comandos vão aqui
}
Parâmetros
Nenhum.
Retorna
Nada.
Descrição
Manipulador de eventos; chamado quando uma tecla é liberada. O manipulador de eventos
onKeyUp é chamado sem nenhum parâmetro. É possível usar os métodos Key.getAscii() e
Key.getCode() para determinar qual tecla foi pressionada. É necessário definir uma função que
seja executada quando o manipulador de eventos for chamado.
O manipulador de eventos onKeyUp só funcionará se o clipe de filme tiver foco de entrada ativado
e definido. Primeiro, a propriedade focusEnabled deve ser definida como true para o clipe de
filme. Em seguida, é preciso dar foco ao clipe. Para isso, use Sele