referencia do actionscript 2.0

888
Guia de referência do ActionScript

Upload: fernando-bachur

Post on 03-Jan-2016

308 views

Category:

Documents


1 download

TRANSCRIPT

  • Guia de referncia 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 so marcas comerciais registradas ou marcas comerciais da Macromedia, Inc. e podem estar registradas nos Estados Unidos ou em outras jurisdies, publicao ppodem estar

    Informae

    Este guia co responsveestar assumlink no sig

    Tecnologia d

    Navegador O

    Iseno de

    A APPLE CPACOTE DADEQUAPERMITIDCASO. ESTQUE VARI

    Copyright reproduzidem parte, se

    Agradecime

    Diretor: EriGerenciameRedao: JoTim StatlerEditor respoEdio: MarGerenciameDesign de mLocalizao:Primeira edi

    Macromedi600 TownseSo Franciscinclusive internacionais. Outros nomes de produtos, logotipos, designs, ttulos, palavras ou frases mencionados nesta odem ser marcas comerciais, marcas de servio ou nomes comerciais da Macromedia, Inc. ou de outras entidades e registrados em certas jurisdies, inclusive internacionais.

    s de terceiros

    ntm links para sites da Web de terceiros que no esto sob o controle da Macromedia. Neste caso, a Macromedia no l pelo contedo de nenhum site vinculado. Se voc acessar um dos sites da Web de terceiros mencionados neste guia, indo os riscos inerentes. A Macromedia oferece esses links apenas por questo de convenincia, e a incluso de um

    nifica que a Macromedia apie ou aceite qualquer responsabilidade pelo contedo apresentado em sites de terceiros.

    e compactao e descompactao de voz licenciada da Nellymoser, Inc. (www.nellymoser.com).

    Tecnologia Sorenson Spark de compactao e descompactao de vdeo licenciada da Sorenson Media, Inc.

    pera Copyright 1995-2002 Opera Software ASA e seus fornecedores. Todos os direitos reservados.

    responsabilidade da Apple

    OMPUTER, INC. NO CONCEDE GARANTIAS, EXPLCITAS OU IMPLCITAS, RELATIVAS AO E SOFTWARES PARA COMPUTADORES EM ANEXO, BEM COMO SUA COMERCIALIZAO OU O A QUALQUER FINALIDADE ESPECFICA. A EXCLUSO DE GARANTIAS IMPLCITAS NO A EM CERTOS ESTADOS. PORTANTO, A EXCLUSO ACIMA TALVEZ NO SE APLIQUE AO SEU A GARANTIA CONCEDE DIREITOS LEGAIS ESPECFICOS. VOC PODE TER OUTROS DIREITOS AM CONFORME O ESTADO.

    2003 Macromedia, Inc. Todos os direitos reservados. Este manual no pode ser copiado, fotocopiado, o, traduzido ou convertido em nenhum formato eletrnico ou que possa ser lido por mquina, por inteiro ou m o consentimento prvio por escrito da Macromedia, Inc. Nmero da pea: ZFL70M400PO

    ntos

    ck Veranto de projeto: Stephanie Gowin, Barbara Nelson dy Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson, Shirley Ong,

    nsvel: Rosana Francescatoy Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szablanto de produo: Patrice ONeilldia e produo: Adam Barnett, Christopher Basmajian, Aaron Begley, John Francis, Jeff Harmon Tim Hussey, Seungmin Lee, Masayo Noda, Simone Pux, Yuko Yagi, Heloisa Kindero: Agosto de 2003

    a, Inc.nd St.o, CA 94103

  • 3CONTEDO

    INTRODU

    PblicoRequisiUsandoConvenTermosRecurso

    PARTE

    CAPTUL

    ElemenNovo mTransfeAlteraAlteraNovo m

    CAPTUL

    DiferenSuporteTerminSintaxeSobre tiAtribuiSobre vUsandoEspecifUsandoCriandoO: Guia de introduo ao ActionScript. . . . . . . . . . . . . . . . . . . . . . . . 9

    -alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9tos do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 a documentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9es tipogrficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 usados neste documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10s adicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    I: Bem-vindo ao ActionScript

    O 1: Novidades do ActionScript no Flash MX 2004 . . . . . . . . . . . . . . . 13

    tos de linguagem novos e alterados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13odelo de segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    rindo scripts existentes para o Flash Player 7. . . . . . . . . . . . . . . . . . . . . . . . 15es do editor do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16es de depurao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18odelo de programao orientado a objeto . . . . . . . . . . . . . . . . . . . . . . . . . 18

    O 2: Conceitos bsicos do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . 21

    as entre o ActionScript e o JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 a Unicode para ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21ologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25pos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31ndo tipos de dados a elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34ariveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 operadores para manipular valores em expresses . . . . . . . . . . . . . . . . . . . 41icando o caminho de um objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 funes internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

  • 4 Co

    CAPTULO 3: Escrevendo e depurando scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Controlando o momento em que o ActionScript executado . . . . . . . . . . . . . . . . 52Usando o painel Actions e a janela Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Usando o editor do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Depurando scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Usando o painel Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Atualizando o Flash Player para teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    PARTE II: Manipulando eventos e criando interao

    CAPTUL

    UsandoUsandoUsandoCriandoEscopoEscopo

    CAPTUL

    Sobre eControCriandoDescon

    PARTE

    CAPTUL

    Sobre cViso g

    CAPTUL

    Sobre oChamaCarregaEspecifCarregaAlteranArrastanCriandoAdicionGerencDesenhntedo

    O 4: Manipulando eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    mtodos de manipuladores de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ouvintes de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 manipuladores de eventos de boto e clipe de filme . . . . . . . . . . . . . . . . . 82 clipes de filme com estados de boto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    do manipulador de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 da palavra-chave this. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    O 5: Criando interao com o ActionScript . . . . . . . . . . . . . . . . . . . . . . 87

    ventos e interao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87lando a reproduo do SWF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 interatividade e efeitos visuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    struindo um script de exemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    III: Trabalhando com objetos e classes

    O 6: Usando as classes internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    lasses e instncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111eral das classes internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    O 7: Trabalhando com clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . 119

    controle de clipes de filme com o ActionScript . . . . . . . . . . . . . . . . . . . . 120ndo vrios mtodos em um nico clipe de filme. . . . . . . . . . . . . . . . . . . . 121ndo e descarregando arquivos SWF adicionais . . . . . . . . . . . . . . . . . . . . . 121icando uma Timeline raiz para arquivos SWF carregados . . . . . . . . . . . . . 122ndo JPEGs em clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123do a posio e a aparncia de um clipe de filme . . . . . . . . . . . . . . . . . . . . 123do clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 clipes de filme durante a execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124ando parmetros aos clipes de filme criados dinamicamente . . . . . . . . . . 127

    iando profundidades do clipe de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . 128ando formas com o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

  • Usando clipes de filme como mscaras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Identificando eventos do clipe de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Atribuindo uma classe a um smbolo de clipe de filme. . . . . . . . . . . . . . . . . . . . . 131Inicializando as propriedades de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

    CAPTULO 8: Trabalhando com texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    Usando a classe TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Criando campo de texto durante a execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Usando a classe TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Formatando o texto com Cascading Style Sheet. . . . . . . . . . . . . . . . . . . . . . . . . . 139UsandoCriandoExibind

    CAPTUL

    PrincpUsandoCriandoMembrCriandoNoesUsandoImportaMtodoCriandoComo a

    PARTE

    CAPTUL

    EnviandEnviandRecurso

    CAPTUL

    Viso gCarregaCarregaLendo mReprodPr-carrContedo 5

    o texto em formato HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 texto de rolagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155o as propriedades do campo de texto para depurao. . . . . . . . . . . . . . . . 157

    O 9: Criando classes com o ActionScript 2 . . . . . . . . . . . . . . . . . . . . . 159

    ios da programao orientada a objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 classes: um exemplo simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 e usando classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

    os de instncias e classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 e usando interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

    bsicas de caminho de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175ndo classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175s get/set implcitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 classes dinmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178s classes so compiladas e exportadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    IV: Trabalhando com mdia e dados externos

    O 10: Trabalhando com dados externos . . . . . . . . . . . . . . . . . . . . . . . 183

    o e carregando variveis para/de uma origem remota . . . . . . . . . . . . . . . 183o mensagens para/do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192s de segurana do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    O 11: Trabalhando com mdia externa. . . . . . . . . . . . . . . . . . . . . . . . . . 201

    eral de carregamento de mdia externa . . . . . . . . . . . . . . . . . . . . . . . . . . . 202ndo SWFs e JPEGs externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202ndo arquivos MP3 externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204arcas de ID3 em arquivos MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

    uzindo arquivos FLV externos dinamicamente . . . . . . . . . . . . . . . . . . . . . 206egando mdia externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

  • 6 Co

    PARTE V: Referncia

    CAPTULO 12: Dicionrio do ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

    Exemplo de entrada da maioria dos elementos do ActionScript . . . . . . . . . . . . . . 215Exemplo de entrada de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216Contedo do dicionrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217Classe Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Classe Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292Classe Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293Classe BClasse BClasse CClasse CClasse CClasse CClasse CClasse DClasse EClasse FClasse kClasse LClasse LClasse MClasse MClasse MClasse MClasse MClasse NClasse NClasse NClasse OClasse PClasse SClasse SClasse SClasse SClasse SClasse TClasse TClasse VClasse XClasse XClasse Xntedo

    oolean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307utton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311amera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333olor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358ontextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363ontextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371ustomActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377ate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381rror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413unction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427ey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449oadVars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468ocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479ath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490icrophone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507ouse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524ovieClip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531ovieClipLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602etConnection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606etStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607umber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614bject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619

    rintJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645election . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660haredObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671ound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681tring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709ystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723extField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741extFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783ideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808ML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816MLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841MLSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842

  • APNDICE A: Mensagens de erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851

    APNDICE B: Associatividade e precedncia de operadores . . . . . . . . . . . . . . 857

    APNDICE C: Teclas do teclado e valores de cdigos de teclas . . . . . . . . . . . . 859

    Letras de A a Z e nmeros padro de 0 a 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859Teclas do teclado numrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861Teclas de funo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862Outras teclas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862

    APNDIC

    Sobre aUsando

    APNDIC

    Sobre o

    NDICE RContedo 7

    E D: Criando Scripts para verses anteriores do Flash Player . . . . . . 865

    especificao de verses anteriores do Flash Player. . . . . . . . . . . . . . . . . . 865 o Flash MX 2004 para criar contedo para o Flash Player 4 . . . . . . . . . . 866

    E E: Programao orientada a objeto com o ActionScript 1 . . . . . . . . 869

    ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869

    EMISSIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879

  • 8 Contedo

  • INTRODUOGuia de introduo ao ActionScript

    O MpadlingActidifeoutr

    Pblic

    Estequelos nActicom

    Requi

    O AProfconSe vdocu

    Usand

    Esteo Accadano rna pCap

    Antscripformtrab(Co9

    ts com ActionScript) e Create a Form with Conditional Logic and Send Data (Criar um ulrio com lgica condicional e enviar dados), que oferecem uma introduo prtica ao

    alho com ActionScript. Para localizar essas sees, selecione Help (Ajuda) > How Do I mo) > Quick Tasks (Tarefas rpidas).acromedia Flash MX 2004 e o Flash MX Professional 2004 so as ferramentas de criao ro profissionais para a produo de experincias de grande impacto na Web. ActionScript a uagem usada para desenvolver um aplicativo em Flash. Para usar o Flash, no necessrio onScript mas, se voc desejar fornecer interatividade com o usurio, trabalhar com objeto rentes daqueles contidos no Flash (como botes e clipes de filme) ou transformar de qualquer o modo um arquivo SWF em uma experincia de usurio mais eficiente, use ActionScript.

    o-alvo

    manual pressupe que o Flash MX 2004 ou Flash MX Professional 2004 esteja instalado e voc saiba como us-lo. necessrio saber como colocar objeto no Stage (Palco) e manipul-o ambiente de criao do Flash. Se voc j tiver escrito programas anteriormente, o

    onScript parecer familiar. Caso contrrio, no ser difcil aprender a us-lo. fcil comear comandos bem simples e aumentar a complexidade medida que voc avana.

    sitos do sistema

    ctionScript no tem qualquer requisito de sistema alm do Flash MX 2004 ou Flash MX essional 2004. Entretanto, a documentao pressupe que voc esteja utilizando as figuraes de publicao padro para os arquivos do Flash: Flash Player 7 e ActionScript 2. oc alterar alguma dessas configuraes, as explicaes e os exemplos de cdigo mostrados na mentao podero no funcionar corretamente.

    o a documentao

    documento oferece uma viso geral da sintaxe do ActionScript, informaes sobre como usar tionScript ao trabalhar com diferentes tipos de objeto e detalhes sobre a sintaxe e o uso de elemento da linguagem. Comece aprendendo a terminologia e os conceitos bsicos usados estante do documento (consulte o Captulo 2, Conceitos bsicos do ActionScript, gina 21). Em seguida, aprenda o mecanismo para escrever e depurar scripts Flash (consulte o tulo 3, Escrevendo e depurando scripts, na pgina 51).

    es de escrever seus prprios scripts, leia as sees Write Scripts with ActionScript (Criar

  • 10 Int

    Depois de entender os conceitos bsicos, voc estar pronto para usar as informaes no restante deste documento que se aplicarem ao efeito especfico a ser obtido. Por exemplo, para saber como escrever um script que execute uma certa ao quando o usurio clica com o mouse, consulte o Captulo 4, Manipulando eventos, na pgina 79.

    Para localizar informaes sobre um certo comando que voc deseja usar, procure a respectiva entrada no Captulo 12, Dicionrio do ActionScript, na pgina 215; cada elemento de linguagem est listado ali em ordem alfabtica.

    Convenes tipogrficas

    As s

    F F

    d

    Termo

    Os s

    V O T TTermActi

    Recur

    H sepa

    PUc

    PCaC

    PU

    O sicomtpisabe

    O CTechroduo: Guia de introduo ao ActionScript

    eguintes convenes tipogrficas so usadas neste manual:

    onte de cdigo indica cdigo do ActionScript.onte de cdigo em itlico indica um elemento, como um parmetro ou nome de objeto o ActionScript, substitudo por um texto especfico quando voc escreve um script.

    s usados neste documento

    eguintes termos so usados neste manual:

    oc refere-se ao desenvolvedor que escreve um script ou aplicativo. usurio refere-se pessoa que executar os scripts e aplicativos.empo de compilao o momento em que voc publica, exporta, testa ou depura o documento. empo de execuo o momento em que o script executado no Flash Player.

    os do ActionScript como mtodo e objeto so definidos no Captulo 2, Conceitos bsicos do onScript, na pgina 21.

    sos adicionais

    uma documentao especfica sobre o Flash e produtos relacionados disponvel radamente.

    ara obter informaes sobre como trabalhar no ambiente de criao do Flash, consulte sando a Ajuda do Flash. Para obter informaes sobre como trabalhar com componentes,

    onsulte Usando a Ajuda de componentes.ara obter informaes sobre como criar aplicativos de comunicao com o Flash ommunication Server, consulte Developing Communications Applications (Desenvolvendo

    plicativos de comunicao) e Managing Flash Communication Server (Gerenciando o Flash ommunication Server). ara obter informaes sobre como acessar servios da Web com aplicativos do Flash, consulte sing Flash Remoting (Usando o Flash Remoting).

    te Macromedia DevNet na Web (www.macromedia.com/devnet) atualizado periodicamente as informaes mais recentes sobre o Flash, alm de recomendaes de usurios experientes, cos avanados, exemplos, dicas e outras atualizaes. Visite com freqncia o site da Web para r das ltimas novidades sobre o Flash e como obter o mximo do programa.

    entro de Suporte do Macromedia Flash (www.macromedia.com/support/flash) fornece Notes, atualizaes de documentao e links para recursos adicionais na comunidade Flash.

  • PARTE IBem-vindo ao ActionScript

    Esta

    O CPlay

    Se ebaseseus

    Cap

    Cap

    Cap

    Parte I parte inclui informaes bsicas sobre a linguagem ActionScript.

    aptulo 1 contm informaes sobre as novidades ou as alteraes no ActionScript e no Flash er 7. Se voc j tiver usado o ActionScript antes, verifique essas informaes com ateno.

    stiver usando o ActionScript pela primeira vez, leia os Captulos 2 e 3 a fim de obter uma boa para entender a terminologia e a sintaxe do ActionScript e para aprender a criar e depurar scripts.

    tulo 1: Novidades do ActionScript no Flash MX 2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    tulo 2: Conceitos bsicos do ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    tulo 3: Escrevendo e depurando scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

  • CAPTULO 1Novidades do ActionScript no Flash MX 2004

    O MaperActilingActimodorie

    Eleme

    Paraguia

    Esta200docu

    Oee

    Aco

    Aco

    Am

    Oaa

    A (

    u13

    Somente Windows) O ouvinte de eventos Mouse.onMouseWheel gerado quando o usurio sa a esfera do mouse para rolagem. acromedia Flash MX 2004 e o Macromedia Flash MX Professional 2004 oferecem vrios feioamentos que facilitam a criao de scripts mais eficientes com uso da linguagem onScript. Esses novos recursos, analisados neste captulo, incluem novos elementos de uagem, ferramentas de edio e depurao melhoradas (consulte Alteraes do editor do onScript na pgina 16 e Alteraes de depurao na pgina 18) e a introduo a um elo de programao mais orientado a objeto (consulte Novo modelo de programao

    ntado a objeto na pgina 18).

    ntos de linguagem novos e alterados

    obter as informaes mais recentes sobre este tpico, clique no boto Update (Atualizar) na Help (Ajuda).

    seo descreve os elementos da linguagem ActionScript novos ou alterados no Flash MX 4. Para incluir esses elementos em seus scripts, use o Flash Player 7 (o padro) ao publicar mentos.

    s mtodos Array.sort() e Array.sortOn() permitem adicionar parmetros para specificar opes de classificao adicionais, como ordem crescente e decrescente, distino ntre maisculas e minsculas e assim por diante. s propriedades Button.menu, MovieClip.menu e TextField.menu funcionam com as novas lasses ContextMenu e ContextMenuItem para permitir associar itens de menus de contexto a bjeto Button, MovieClip ou TextField. Classe ContextMenu e a Classe ContextMenuItem permitem personalizar o menu de ontexto exibido quando um usurio clica com o boto direito do mouse (Microsoft Windows) u clica e pressiona Control (Macintosh) no Flash Player. Classe Error e os comandos throw e try..catch..finally permitem implementar uma anipulao de excees mais eficiente. s mtodos LoadVars.addRequestHeader() e XML.addRequestHeader() adicionam ou

    lteram cabealhos de solicitao HTTP (como Content-Type ou SOAPAction) enviados com es POST. funo MMExecute() permite emitir comandos de API do Flash JavaScript no ActionScript.

  • 14 Ca

    O mtodo MovieClip.getNextHighestDepth() permite criar instncias de MovieClip durante a execuo e garantir que seus objeto sejam renderizados na frente dos outros objeto no espao de ordem z de um clipe de filme pai. O mtodo MovieClip.getInstanceAtDepth() permite acessar dinamicamente instncias de MovieClip criadas usando a profundidade como ndice de pesquisa.

    O mtodo MovieClip.getSWFVersion() permite determinar qual verso do Flash Player um SWF carregado suporta.

    O mtodo MovieClip.getTextSnapshot() e o Objeto TextSnapshot permitem trabalhar com texto em campos de texto estticos de um clipe de filme.

    A propriedade MovieClip._lockroot permite especificar que um clipe de filme funcione cd

    Ac

    Alo

    AF

    OS

    A A

    p A

    c A

    cu

    Afo

    Ac

    Oc

    OHptulo 1: Novidades do ActionScript no Flash MX 2004

    omo _root para os clipes de filme carregados nele, ou que o significado de _root em um clipe e filme no seja alterado se o clipe de filme for carregado em outro clipe. Classe MovieClipLoader permite monitorar o progresso de arquivos conforme eles so arregados em clipes de filme. Classe NetConnection e a Classe NetStream permitem transmitir em fluxo arquivos de vdeo cais (arquivos FLV). Classe PrintJob fornece a voc (e ao usurio) mais controle sobre a impresso a partir do lash Player. manipulador de eventos Sound.onID3 fornece acesso a dados ID3 associados a um objeto

    ound que contm um arquivo MP3. propriedade Sound.ID3 fornece acesso aos metadados que fazem parte de um arquivo MP3. Classe System tem novos objeto e mtodos, e o System.capabilities object tem vrias novas ropriedades. propriedade TextField.condenseWhite permite remover o espao em branco extra de ampos de texto HTML renderizados em um navegador. propriedade TextField.mouseWheelEnabled permite especificar se o contedo de um ampo de texto deve rolar quando o ponteiro do mouse posicionado sobre o campo e o surio rola a esfera do mouse. classe Classe TextField.StyleSheet permite criar um objeto de folha de estilos com regras de rmatao de texto, como tamanho de fonte, cor e outros estilos de formatao. propriedade TextField.styleSheet permite anexar um objeto de folha de estilos a um ampo de texto. mtodo TextFormat.getTextExtent() aceita um novo parmetro, e o objeto retornado

    ontm um novo membro. mtodo XML.addRequestHeader() permite adicionar ou alterar cabealhos de solicitao TTP (como Content-Type ou SOAPAction) enviados com aes POST.

  • Novo modelo de segurana

    Para obter as informaes mais recentes sobre este tpico, clique no boto Update (Atualizar) na parte superior da guia Help (Ajuda).

    As regras do Flash Player que determinam se dois domnios so idnticos ou diferentes mudaram no Flash Player 7. Alm disso, regras que determinam se e como um arquivo SWF servido de um domnio HTTP pode acessar um SWF ou carregar dados de um domnio HTTPS foram alteradas. Para obter mais informaes, consulte Recursos de segurana do Flash Player na pgina 195.

    Na maioria dos casos, essas alteraes no o afetam, a menos que voc esteja transferindo arquivos SWPlaychamhavidilParaante

    Transf

    Paraguia

    AssiActimaidisso Flatenso

    Conform

    ForapropAlmNoadicvoctipoinfona pus-aperTransferindo scripts existentes para o Flash Player 7 15

    F existentes para o Flash Player 7. Entretanto, se voc possuir SWFs publicados para o Flash er 6 ou anterior que carreguem dados de um arquivo armazenado em um servidor, e o SWF ador for executado no Flash Player 7, o usurio poder ver uma caixa de dilogo que no

    a aparecido antes, perguntando se o acesso deve ser permitido. Para evitar que essa caixa de ogo aparea, implemente um arquivo de diretivas no site onde os dados esto armazenados. obter mais informaes, consulte Sobre compatibilidade com os modelos de segurana riores do Flash Player na pgina 199.

    erindo scripts existentes para o Flash Player 7

    obter as informaes mais recentes sobre este tpico, clique no boto Update (Atualizar) na Help (Ajuda).

    m como em qualquer nova verso, o Flash Player 7 oferece suporte a mais comandos do onScript do que verses anteriores; voc pode usar esses comandos para implementar scripts s eficientes. (Consulte Elementos de linguagem novos e alterados na pgina 13.) Alm o, o comportamento de alguns recursos existentes foi alterado. Se possuir scripts escritos para ash Player 6 ou anterior que deseja publicar no Flash Player 7, modifique os scripts para que dam implementao do Flash Player 7 e funcionem como determinado. Essas modificaes analisadas nesta seo.

    idade com ECMA-262 edio 4

    m implementadas diversas alteraes no Flash Player 7 para atender mais exatamente osta do padro ECMA-262 edio 4 (consulte www.mozilla.org/js/language/es4/index.html). das tcnicas de programao baseadas em classes disponveis no ActionScript 2 (consulte

    vo modelo de programao orientado a objeto na pgina 18), outros recursos foram ionados e certos comportamentos foram alterados. Alm disso, ao publicar no Flash Player 7, pode declarar o tipo de objeto de uma varivel ao cri-la; esse recurso chama-se definio de

    s de dados estritos. Voc tambm pode converter um tipo de objeto em outro. Para obter mais rmaes, consulte Atribuio estrita de tipos de dados na pgina 35 e Convertendo objeto gina 36. Esses recursos no exigem a atualizao de scripts existentes; entretanto, voc pode los ao publicar seus scripts em Flash Player 7 e, posteriormente, continuar a revis-los e feio- los.

  • 16 Ca

    Lembre-se de que as alteraes a seguir, que tambm 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 alteraes feitas para garantir que o cdigo ainda funcione como desejado ou para determinar se preciso reescrev-lo.

    Altera

    O eusar

    QueScriquepopCom

    Exiblingitemelem

    Impno pcdexis

    SWF publicado para Flash Player 7 SWF publicado para verses anteriores do Flash Player

    Suporte para distino entre maisculas e minsculas (nomes de variveis que diferem somente no uso de maisculas so interpretados como variveis diferentes). Ess#inLoaDis

    No h suporte para distino entre maisculas e minsculas (nomes de variveis que diferem somente no uso

    Ava

    O v

    Quavalocomumaptulo 1: Novidades do ActionScript no Flash MX 2004

    es do editor do ActionScript

    ditor do ActionScript foi atualizado de vrias formas para torn-lo mais eficiente e fcil de . Essas alteraes so resumidas nesta seo.

    bra automtica de linha Voc pode usar o menu pop-up Options (Opes) no painel pt, no painel Debugger (Depurador) e no painel Output (Sada) para ativar ou desativar a bra automtica de linha. Pode tambm alternar a quebra automtica de linha usando o menu -up no painel Actions (Aes). O atalho de teclado Control+Shift+W (Windows) ou mand+Shift+W (Macintosh).

    indo a ajuda contextual Quando o ponteiro posicionado sobre um elemento da uagem ActionScript na caixa de ferramentas Actions ou no painel Script, voc pode usar o View Help (Exibir Ajuda) no menu de contexto para exibir uma pgina de ajuda sobre esse ento.

    ortando scripts Quando voc seleciona Import Script (Importar script) no menu pop-up ainel Actions, o script importado copiado para o script no ponto de insero do arquivo de

    igo. Em verses anteriores do Flash, a importao de um script substitua o contedo do script tente.

    a alterao tambm afeta arquivos carregados com clude e variveis externas carregadas com dVars.load(). Para obter mais informaes, consulte tino entre maisculas e minsculas na pgina 25.

    de maisculas so interpretados como sendo a mesma varivel).

    liar undefined em um contexto numrico retorna NaN. Avaliar undefined em um contexto numrico retorna 0.

    alor de undefined.toString() undefined. O valor de undefined.toString() "" (uma seqncia de caracteres vazia).

    ndo voc converter uma seqncia de caracteres em um r booleano, o resultado ser true se a seqncia tiver primento superior a zero; o resultado ser false para seqncia vazia.

    Quando voc converter uma seqncia de caracteres em um valor booleano, a seqncia ser convertida primeiro em um nmero; o resultado ser true se o nmero for diferente de zero; caso contrrio, ser false.

  • Pontos de interrupo de clique nico Para adicionar um ponto de interrupo de depurao antes de uma linha de cdigo no painel Debugger ou no painel Script do painel Actions, clique na margem esquerda. Nas verses anteriores do Flash, clicar na margem esquerda selecionava uma linha de cdigo. A nova forma de selecionar uma linha de cdigo clicar e pressionar Control (Windows) ou clicar e pressionar Command (Macintosh).

    Os modos normal e especialista no esto mais no painel Actions Em verses anteriores do Flash, voc podia trabalhar no painel Actions no modo normal, em que preenchia as opes e os parmetros para criar o cdigo, 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 arra(Ad

    Prepartpren

    NavconScriFLA

    Janpodescrsinttamtipoos nsomAlteraes do editor do ActionScript 17

    star comandos da caixa de ferramentas Actions para o painel Script ou usar o boto Add (+) icionar) acima do painel Script para adicionar comandos a um script.

    ndendo vrios scripts Voc pode prender vrios scripts em um arquivo FLA ao longo da e inferior do painel Script no painel Actions. Em verses anteriores do Flash, s era possvel der um script por vez.

    egador Script (somente Flash Professional) O lado esquerdo do painel Actions agora tm dois painis: a caixa de ferramentas Actions e um novo navegador Script. O navegador pt uma representao visual da estrutura do arquivo FLA; voc pode navegar pelo arquivo aqui para localizar cdigo ActionScript.

    ela Script integrada para editar arquivos externos (somente Flash Professional) Voc e usar o editor do ActionScript em uma janela Script (separada do painel Actions) para ever e editar arquivos de script externos. Na janela Script, h suporte para a sinalizao da axe por cores, referncias de cdigo e outras preferncias; a caixa de ferramentas Actions bm est disponvel. Para exibir a janela Script, use File (Arquivo) > New (Novo) e selecione o de arquivo externo a ser editado. possvel abrir vrios arquivos externos ao mesmo tempo; omes dos arquivo so exibidos em guias na parte superior da janela Script. (As guias aparecem ente no Windows.)

  • 18 Ca

    Alteraes de depurao

    Esta seo descreve as alteraes que melhoram a depurao 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.

    Relatrio de erros aperfeioado no tempo de compilao Alm de fornecer uma manipulao de excees mais eficiente, o ActionScript 2 exibe diversos novos erros durante a compilao. Para obter mais informaes, consulte Apndice A, Mensagens de erro, na pgina 851.

    Mantry

    Novo

    A lincadaadic200impComActi

    O AelemintrparaNovling

    O Asimplingprinprectipona pde eptulo 1: Novidades do ActionScript no Flash MX 2004

    ipulao de excees melhorada A classe Error e os comandos throw e ..catch..finally permitem implementar uma manipulao de excees mais eficiente.

    modelo de programao orientado a objeto

    guagem ActionScript cresceu e desenvolveu-se desde sua introduo, h vrios anos. Com nova verso do Flash, mais palavras-chave, objeto, mtodos e outros elementos so ionados linguagem. Entretanto, ao contrrio de verses anteriores do Flash, o Flash MX 4 e o Flash MX Professional 2004 apresentam diversos novos elementos de linguagem que lementam a programao orientada a objeto de uma forma mais padronizada do que antes. o esses elementos de linguagem representam um aperfeioamento significativo da linguagem

    onScript bsica, eles representam uma nova verso do prprio ActionScript 2.

    ctionScript 2 no uma nova linguagem. Em vez disso, ele abrange um conjunto bsico de entos de linguagem que facilitam desenvolver programas orientados a objeto. Com a

    oduo de palavras-chave como class, interface, extends e implements, agora mais fcil os programadores familiarizados com outras linguagens aprender a sintaxe do ActionScript. os programadores aprendem uma terminologia mais padronizada que podem aplicar a outras uagens orientadas a objeto que venham a estudar no futuro.

    ctionScript 2 oferece suporte a todos os elementos padro da linguagem ActionScript; ele lesmente permite escrever scripts que atendam melhor aos padres usados em outras

    uagens orientadas a objeto, como JavaScript e Java. O ActionScript 2 deve interessar cipalmente a desenvolvedores de Flash intermedirios ou avanados que criem aplicativos que isam da implementao de classes e subclasses. O ActionScript 2 tambm permite declarar o de objeto de uma varivel quando voc a cria (consulte Atribuio estrita de tipos de dados gina 35) e fornece erros de compilador bem aprimorados (consulte Apndice A, Mensagens rro, na pgina 851).

  • Os novos elementos de linguagem do ActionScript 2 esto listados abaixo.

    class extends implements interface dynamic static public p g s iAs p

    OaAc

    Vloee

    Opimddm

    Paraa obNovo modelo de programao orientado a objeto 19

    rivate

    et

    et

    mport

    rincipais consideraes sobre o ActionScript 2 incluem os seguintes pontos:

    s scripts que usam elementos de linguagem do ActionScript 2 devem ser armazenados como rquivos de script externos, com uma nica classe definida em cada script; ou seja, o painel ctions no oferece suporte para a terminologia do ActionScript 2. (A nica exceo o omando import, que suportado no painel Actions.)oc pode importar arquivos de classes individuais implicitamente (armazenando-os em um cal especificado por caminhos de pesquisa globais ou especficos de documentos) ou

    xplicitamente (usando o comando import); possvel importar (colees de arquivos de classe m um diretrio) usando caracteres curingas.s aplicativos desenvolvidos com o ActionScript 2 so suportados pelo Flash Player 6 e verses

    osteriores. Entretanto, os arquivos que usam o ActionScript 2 e especificam o Flash Player 6 plementam a distino entre maisculas e minsculas durante a compilao, mas no

    urante a execuo; isso pode causar conflitos de tempo de execuo, cujo diagnstico pode ser ifcil. Para obter mais informaes, consulte ActionScript 2, Flash Player 6 e distino entre aisculas e minsculas na pgina 26.

    obter mais informaes sobre como usar o ActionScript 2 para escrever programas orientados jeto no Flash, consulte o Captulo 9, Criando classes com o ActionScript 2, na pgina 159.

  • 20 Captulo 1: Novidades do ActionScript no Flash MX 2004

  • CAPTULO 2Conceitos bsicos do ActionScript

    O Apalaingl

    As rtamentr

    Difere

    Parapart

    Supor

    O Mcoddifeingl

    Vocna i(Cocodtrad

    Em UTpref

    Se oalterarqupref21ctionScript possui regras de gramtica e pontuao que determinam quais caracteres e vras so usados para criar significado e em que ordem eles podem ser escritos. Por exemplo, no s, um ponto encerra uma frase. No ActionScript, um ponto-e-vrgula encerra um comando.

    egras gerais a seguir aplicam-se a todo o ActionScript. A maioria dos termos do ActionScript bm tem requisitos individuais; para ver as regras de um termo especfico, consulte sua ada no Captulo 12, Dicionrio do ActionScript, na pgina 215.

    nas entre o ActionScript e o JavaScript

    obter as informaes mais recentes sobre este tpico, clique no boto Update (Atualizar) na e superior da guia Help (Ajuda).

    te a Unicode para ActionScript

    acromedia Flash MX 2004 e o Macromedia Flash MX Professional 2004 oferecem suporte ificao de texto Unicode para o ActionScript. Isso significa que possvel incluir texto em rentes idiomas em um arquivo do ActionScript. Por exemplo, voc pode incluir texto em s, japons e francs no mesmo arquivo.

    pode definir as preferncias do ActionScript para especificar o tipo de codificao a ser usada mportao ou exportao de arquivos do ActionScript. Selecione UTF-8 ou Default Encoding dificao padro). UTF-8 o formato Unicode de 8 bits; Default Encoding a forma de ificao suportada pelo idioma que seu sistema utiliza, chamada tambm pgina de cdigo icional.

    geral, ao importar ou exportar arquivos do ActionScript em formato UTF-8, use a preferncia F-8. Se importar ou exportar arquivos na pgina de cdigo tradicional do sistema, use a erncia Default Encoding.

    texto dos scripts no tiver a aparncia esperada quando voc abrir ou importar um arquivo, e a preferncia de codificao de importao. Se receber uma mensagem de aviso ao exportar ivos do ActionScript, altere a preferncia de codificao de exportao ou desative o aviso nas erncias do ActionScript.

  • 22 Ca

    Para selecionar opes de codificao de texto para importao ou exportao de arquivos do ActionScript:

    1 Na caixa de dilogo Preferences (Preferncias), em Edit (Editar) > Preferences, clique na guia ActionScript.

    2 Em Editing Options (Opes de edio), siga uma ou ambas as instrues: Em Open/Import (Abrir/importar), selecione UTF-8 para abrir ou importar usando a

    codificao Unicode, ou selecione Default Encoding para abrir ou importar usando a forma de codificao do idioma usado do seu sistema.

    Em Save/Export (Salvar/exportar), selecione UTF-8 para salvar ou exportar usando a codificao Unicode, ou selecione Default Encoding para salvar ou exportar usando a forma

    Par

    1 N2 S

    (

    Termi

    Comforn

    APorNes

    Boo

    Clasdefiescr

    Conmesvalo

    ConPorclasscon// cla

    pp

    // f

    }}ptulo 2: Conceitos bsicos do ActionScript

    de codificao do idioma do seu sistema.

    a ativar ou desativar o aviso de codificao de exportao:

    a caixa de dilogo Preferences, em Edit > Preferences, clique na guia Warnings (Avisos).elecione ou cancele a seleo de Warn on Encoding Conflicts When Exporting .as Files Avisar em conflitos de codificao ao exportar arquivos .as).

    nologia

    o em toda linguagem de script, o ActionScript usa sua prpria terminologia. A lista a seguir ece uma introduo aos termos importantes do ActionScript.

    es so comandos que instruem um arquivo SWF a fazer algo enquanto reproduzido. exemplo, gotoAndStop() envia a reproduo para um quadro ou identificador especfico. te manual, os termos ao e comando so equivalentes.

    leano um valor true (verdadeiro) ou false (falso).

    ses so tipos de dados que podem ser criados para definir um novo tipo de objeto. Para nir uma classe, use a palavra-chave class em um arquivo de script externo, no em um script ito no painel Actions (Aes).

    stantes so elementos que no se alteram. Por exemplo, a constante Key.TAB sempre tem o mo significado: ela indica a tecla Tab em um teclado. Constantes so teis para comparar res.

    strutores so funes usadas para definir as propriedades e os mtodos de uma classe. definio, construtores so funes em uma definio de classe que tm o mesmo nome que a e. Por exemplo, o cdigo abaixo define uma classe Circle (Crculo) e implementa uma funo

    strutora : arquivo Circle.asss Circle {rivate var radius:Numberrivate var circumference:Numberconstrutorunction Circle(radius:Number) {circumference = 2 * Math.PI * radius;

  • O termo construtor tambm usado quando voc cria (instancia) um objeto baseado em uma classe especfica. Os comandos abaixo so 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 informaes um elemento do ActionScript ou varivel pode conter. Os tipos de dados do ActionScript so String (Seqncia de caracteres), Number (Nmero), Boolean (Booleano), Object (Objeto), MovieClip (Clipe de filme), Function (Funo), null (nulo) e undefined (indefinido). Para obter mais informaes, consulte Sobre tipos de dados na pgina 31.

    Evegeraum

    ManExisevenonCferraouvAlgue so

    Expexproper

    FunPara

    Idenfun($). exem

    Instas pclasscom

    Nomclipno Se as scosco

    _ro_ro

    VocUsobteTerminologia 23

    ntos so aes que ocorrem enquanto um arquivo SWF reproduzido. Por exemplo, so dos eventos diferentes quando um clipe de filme carregado, quando a reproduo entra em quadro, quando o usurio clica em um boto ou clipe de filme, ou quando digita no teclado.

    ipuladores de eventos so aes especiais que gerenciam eventos como mouseDown ou load. tem dois tipos de manipuladores de eventos do ActionScript: mtodos de manipulador de tos e ouvintes de eventos. (Existem tambm dois manipuladores de eventos, on() e lipEvent(), que voc pode atribuir diretamente a botes e clipes de filme.) Na caixa de mentas Actions, cada objeto do ActionScript com mtodos de manipulador de eventos ou

    intes de eventos tem uma subcategoria chamada Events (Eventos) ou Listeners (Ouvintes). ns comandos podem ser usados como manipuladores de eventos e como ouvintes de eventos includos nas duas subcategorias.

    resses so combinaes legais de smbolos do ActionScript que representam um valor. Uma esso consiste em operadores e operandos. Por exemplo, na expresso x + 2, x e 2 so andos e + um operador.

    es so blocos de cdigo reutilizveis que podem receber parmetros e retornar um valor. obter mais informaes, consulte Criando funes na pgina 48.

    tificadores so nomes usados para indicar uma varivel, uma propriedade, um objeto, uma o ou um mtodo. O primeiro caractere deve ser uma letra, um sublinhado (_) ou um cifro Cada caractere seguinte deve ser uma letra, um nmero, um sublinhado ou um cifro. Por plo, firstName o nome de uma varivel.

    ncias so objeto que pertencem a certas classes. Cada instncia de uma classe contm todas ropriedades e mtodos dessa classe. Por exemplo, todos os clipes de filme so instncias da e MovieClip, portanto voc pode usar qualquer mtodo ou propriedade da classe MovieClip qualquer instncia de clipe de filme.

    es de instncia so nomes exclusivos que permitem fazer referncia a instncias de botes e es de filme em scripts. Use o inspetor Property (Propriedades) para atribuir nomes a instncias tage (Palco). Por exemplo, um smbolo principal na biblioteca pode ser chamado de counter duas instncias desse smbolo no arquivo SWF podem ter os nomes de instncia rePlayer1_mc e scorePlayer2_mc. O seguinte cdigo define uma varivel denominada re em cada instncia de clipe de filme por meio de nomes de instncias:ot.scorePlayer1_mc.score += 1;ot.scorePlayer2_mc.score -= 1;

    pode usar sufixos especiais ao nomear instncias para que referncias de cdigo (consulte ando referncias de cdigo na pgina 60) apaream medida que voc digita o cdigo. Para r mais informaes, consulte Usando sufixos para ativar referncias de cdigo na pgina 58.

  • 24 Ca

    Palavras-chave so palavras reservadas que tm significado especial. Por exemplo, var uma palavra-chave usada para declarar variveis locais. No possvel usar uma palavra-chave como um identificador. Por exemplo, var no um nome de varivel legal.

    Mtodos so funes associadas a uma classe. Por exemplo, getBytesLoaded() um mtodo interno associado classe MovieClip. Voc tambm pode criar funes que funcionem como mtodos, para objeto baseados em classes internas ou objeto baseados nas classes criadas por voc. Por exemplo, no cdigo abaixo, clear() torna-se um mtodo de um objeto controller que voc j definiu: function reset(){

    this.x_pos = 0;t

    }concon

    ObjinstPor

    Opeoperman

    Parvaloparfun

    w}

    Prode t

    Camvariinsp_roou pde d_ro

    Parapath

    As valterscripvarvarvar

    Paraptulo 2: Conceitos bsicos do ActionScript

    his.x_pos = 0;

    troller.clear = reset; troller.clear();

    eto so colees de propriedades e mtodos; cada objeto tem seu prprio nome e uma ncia de uma classe especfica. Objeto internos so predefinidos na linguagem ActionScript. exemplo, o objeto interno Date fornece informaes sobre o relgio do sistema.

    radores so termos que calculam um novo valor de um ou mais valores. Por exemplo, o ador de adio (+) adiciona dois ou mais valores para produzir um novo valor. Os valores ipulados pelos operadores so denominados operandos.

    metros (tambm denominados argumentos) so espaos reservados que permitem passar res para funes. Por exemplo, a seguinte funo welcome() usa dois valores que recebe nos metros firstName e hobby: ction welcome(firstName, hobby) {elcomeText = "Hello, " + firstName + "I see you enjoy " + hobby;

    priedades so atributos que definem um objeto. Por exemplo, _visible uma propriedade odos os clipes de filme que define se eles esto visveis ou ocultos.

    inhos de destino so endereos hierrquicos de nomes de instncias de clipes de filme, veis e objeto em um SWF. Voc pode dar um nome a uma instncia de clipe de filme no etor Property do clipe de filme. (A Timeline (Linha de tempo) principal sempre tem o nome ot.) Voc pode usar um caminho de destino para direcionar uma ao em um clipe de filme, ara obter ou definir o valor de uma varivel. Por exemplo, o seguinte comando o caminho estino da varivel volume dentro do clipe de filme stereoControl: ot.stereoControl.volume

    obter mais informaes sobre caminhos de destino, consulte Absolute and relative target s (Caminhos de destino absolutos e relativos) em Usando a Ajuda do Flash.

    ariveis so identificadores que contm valores de qualquer tipo de dado. possvel criar, ar e atualizar variveis. Os valores que elas armazenam podem ser recuperados para uso em ts. No exemplo a seguir, os identificadores no lado esquerdo dos sinais de igual so variveis: x = 5; name = "Lolo"; c_color = new Color(mcinstanceName);

    obter mais informaes sobre variveis, consulte Sobre variveis na pgina 36.

  • 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 seo descreve os elementos que compem a sintaxe do ActionScript.

    Distino entre maisculas e minsculas

    Para obter as informaes mais recentes sobre este tpico, clique no boto Update (Atualizar) na parte superior da guia Help (Ajuda).

    Em uma linguagem de programao que distingue maisculas e minsculas, nomes de variveis quea didepindemaide n

    Qualingobtena p

    Flash

    QuaentrActinom// // //// catCAT

    // varvarvar

    // varvarSintaxe 25

    diferem somente em sua primeira letra (book e Book) so considerados diferentes. No Flash, stino entre maisculas e minsculas implementada de forma um pouco diferente, endendo da verso do Flash Player especificada e da sua verso do ActionScript. Assim, pendentemente do Flash Player especificado, recomendvel seguir convenes de sculas e minsculas consistentes, como as usadas neste manual, para facilitar a identificao omes de funes e variveis no cdigo do ActionScript.

    ndo Syntax coloring (Sinalizao da sintaxe por cores) estiver ativada, os elementos de uagem escritos corretamente em maisculas ou minsculas ficaro azuis por padro. Para r mais informaes, consulte Palavras-chave na pgina 30 e Realce de sintaxe gina 57.

    Player 7 ou posterior e distino entre maisculas e minsculas

    ndo voc publica arquivos para Flash Player 7 ou posterior, o Flash implementa a distino e maisculas e minsculas durante a compilao e a execuo, independentemente do uso do onScript 1 ou ActionScript 2. Isso significa que palavras-chave, nomes de classes, variveis, es de mtodos e outros distinguem maisculas e minsculas. Por exemplo:Em arquivo que especifique o Flash Player 7e o ActionScript 1 ou o ActionScript 2

    Define propriedades de dois objeto diferentes.hilite = true;.hilite = true;

    Cria trs variveis diferentes myVar=10; myvar=10; mYvAr=10;

    No gera um erro array = new Array(); date = new Date();

  • 26 Ca

    Alm disso, a distino entre maisculas e minsculas implementada durante a compilao e a execuo 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 necessrio revisar cada arquivo e confirmar o uso consistente de maisculas ou minsculas 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 configuraes de publicao para o Flash Player 7 e copiar o contedo do arquivo para o painel Actions. Em seguida, use o boto Check Syntax (Verificar sintaxe) (consulte Verificando sintaxe e pontuao na pgina 63) ou publique o arquivo; os erros causados por conflitos de nomeao aparecero no painel Output (Sada).

    Actio

    Qua(Copalaessaimpcomde dfalhcom// // //// // catCAT

    // // varvarvar

    // varvarptulo 2: Conceitos bsicos do ActionScript

    nScript 2, Flash Player 6 e distino entre maisculas e minsculas

    ndo voc especifica ActionScript 2 e Flash Player 6 na caixa de dilogo Publish Settings nfiguraes de publicao), a distino entre maisculas e minsculas de variveis (mas no de vras-chave) implementada durante a compilao, mas no durante a execuo. Na prtica, implementao significa que erros de distino entre maisculas e minsculas, que podem edir os programas de funcionarem corretamente durante a execuo, no aparecem durante a pilao. Por exemplo, no sero exibidos erros durante a compilao em funo da existncia uas variveis score e Score em um script, embora elas possam estar em conflito e causar a a silenciosa do script durante a execuo. Como o conflito no aparente durante a pilao, voc dever diagnosticar esse tipo de problema sozinho.Em arquivo que especifica o Flash Player 6e usa o ActionScript 2

    Define propriedades de dois objeto diferentes durante a compilaomas trata os dois como o mesmo objeto durante a execuo.hilite = true;.hilite = true;

    Cria trs variveis diferentesmas trata as trs como a mesma varivel durante a execuo myVar=10; myvar=10; mYvAr=10;

    Gera erros durante a compilao array = new Array(); date = new Date();

  • ActionScript 1, Flash Player 6 ou anterior e distino entre maisculas e minsculas

    Se voc usar o ActionScript 1 e especificar o Flash Player 6 ou anterior, a distino entre maisculas e minsculas no ser implementada. Os nomes de variveis que diferirem somente quanto ao uso de maisculas ou minsculas sero considerados idnticos. Alm disso, nomes de variveis no podero ser iguais a palavras-chave, mesmo se houver distino entre maisculas e minsculas.// Em arquivo que especifica o Flash Player 6 ou anterior// e usa o ActionScript 1//// catCAT

    // varvarvar

    // varvar

    Sintaxe

    No a umum coma ser

    Por A ex

    Outde fsub

    A exo mbal

    bal

    A siTimPorfun

    _ro

    Vocaninse oinst_paSintaxe 27

    Define propriedades de um nico objeto.hilite = true;.hilite = true;

    Cria uma varivel myVar=10; myvar=10; mYvAr=10;

    Gera erros durante a compilao array = new Array(); date = new Date();

    de ponto

    ActionScript, um ponto (.) usado para indicar as propriedades ou os mtodos relacionados objeto ou clipe de filme. O ponto tambm usado para identificar o caminho de destino at

    clipe de filme, uma varivel, uma funo ou um objeto. Uma expresso de sintaxe de ponto ea com o nome do objeto ou clipe de filme seguido de um ponto e termina com o elemento especificado.

    exemplo, a propriedade _x do clipe de filme indica a posio no eixo x desse clipe no Stage. presso ballMC._x se refere propriedade _x da instncia ballMC do clipe de filme.

    ro exemplo: submit uma varivel definida no clipe de filme form, que aninhado no clipe ilme shoppingCart. A expresso shoppingCart.form.submit = true define a varivel mit da instncia form como true.

    presso do mtodo de um objeto ou clipe de filme segue o mesmo padro. Por exemplo, todo play() da instncia de clipe de filme ball_mc move a reproduo na Timeline de l_mc, como mostrado no comando abaixo:l_mc.play();

    ntaxe de ponto tambm usa dois aliases especiais, _root e _parent. O alias _root refere-se eline principal. Voc pode usar o alias _root para criar um caminho de destino absoluto. exemplo, o seguinte comando chama a funo buildGameBoard() no clipe de filme ctions na Timeline principal:ot.functions.buildGameBoard();

    pode usar o alias _parent para se referir a um clipe de filme no qual o objeto atual esteja hado. Pode tambm usar _parent para criar um caminho de destino relativo. Por exemplo,

    clipe de filme dog_mc estiver aninhado no clipe de filme animal_mc, o seguinte comando na ncia dog_mc informar que animal_mc deve parar:rent.stop();

  • 28 Ca

    Chaves

    No ActionScript, manipuladores de eventos, definies de classes e funes so agrupados em blocos com chaves ({}). A chave inicial pode ser colocada na mesma linha que a declarao ou na prxima linha, como mostrado nos exemplos a seguir. Para tornar o cdigo mais legvel, recomendvel escolher um formato e us-lo de forma consistente.// Manipulador de eventoson (release) {

    myDate = new Date();currentMonth = myDate.getMonth();

    }

    on({

    mc

    }

    // cla}

    cla{}

    // cir

    r}

    squ{

    r}

    Vocsint

    Pontos

    Umnestvarvar

    Se oPorptulo 2: Conceitos bsicos do ActionScript

    release)

    yDate = new Date();urrentMonth = myDate.getMonth();

    Classess Circle(radius) {

    ss Square(side)

    Funo cleArea = function(radius) {eturn radius * radius * MATH.PI;

    areArea = function(side)

    eturn side * side;

    pode verificar a existncia de chaves correspondentes nos scripts; consulte Verificando axe e pontuao na pgina 63.

    -e-vrgulas

    comando do ActionScript terminado por um ponto-e-vrgula (;), como mostrado es exemplos: column = passedDate.getDay(); row = 0;

    ponto-e-vrgula de terminao for omitido, o Flash ainda assim compilar o script com xito. m, o uso do ponto-e-vrgula uma prtica recomendvel na criao de scripts.

  • Parnteses

    Ao definir uma funo, coloque os parmetros entre parnteses:function myFunction (name, age, reader){

    // Insira seu cdigo aqui}

    Ao chamar uma funo, inclua os parmetros passados para ela entre parnteses da seguinte forma:myFunction (Steve, 10, true);

    Tambm possvel usar parnteses para substituir a ordem de precedncia do ActionScript ou para facilitar a leitura dos comandos do ActionScript. (Consulte Associatividade e precedncia de o

    Usepone crionC

    (}

    Se vonC

    mm

    }

    Vocsint

    Comen

    baso vocmai

    Paraduaon

    /mc/myc

    }

    QuacomarquActiSintaxe 29

    peradores na pgina 41.)

    parnteses tambm para avaliar uma expresso esquerda de um ponto em uma sintaxe de to. Por exemplo, no seguinte comando, os parnteses fazem com que new Color(this) avalie e um novo objeto Color:lipEvent (enterFrame){new Color(this)).setRGB(0xffffff);

    oc no usar parnteses, adicione um comando para avaliar a expresso:lipEvent (enterFrame){yColor = new Color(this);yColor.setRGB(0xffffff);

    pode verificar a existncia de parnteses correspondentes nos scripts; consulte Verificando axe e pontuao na pgina 63.

    trios

    stante recomendvel usar comentrios para adicionar observaes a scripts. Os comentrios teis para registrar as suas intenes e passar informaes para outros desenvolvedores, caso esteja trabalhando em um ambiente de colaborao ou fornecendo amostras. Ser muito

    s fcil entender um script, por mais simples que ele seja, se voc fizer observaes ao cri-lo:

    indicar que uma linha ou parte de uma linha um comentrio, anteceda o comentrio com s barras (//):(release) {/ cria um novo objeto DateyDate = new Date();urrentMonth = myDate.getMonth();/ converte o nmero do ms no nome do msonthName = calcMonth(currentMonth);ear = myDate.getFullYear();urrentDate = myDate.getDate();

    ndo Syntax coloring estiver ativada (consulte Realce de sintaxe na pgina 57), os entrios ficaro em cinza por padro. O tamanho dos comentrios no afeta o tamanho do ivo exportado e eles no precisam seguir as regras de palavras-chave ou sintaxe do onScript.

  • 30 Ca

    Para comentar uma parte inteira do script, coloque o comentrio em bloco, em vez de adicionar // ao incio de cada linha. Essa tcnica mais fcil e til quando voc deseja testar somente partes de um script comentando grandes sees dele.

    Para criar um bloco de comentrio, coloque /* no incio das linhas comentadas e */ no fim. Por exemplo, quando o seguinte script executado, a parte do cdigo contida no bloco no executada:// O cdigo abaixo executadovar x:Number = 15;var y:Number = 20;// O cdigo abaixo no executado/*on

    /mc/myc

    }*/// varvar

    Palavra

    O Acompala

    Consta

    Um

    Por objeEntif(

    ac

    }

    bre

    def

    ext

    if

    ins

    pub

    swi

    voiptulo 2: Conceitos bsicos do ActionScript

    (release) {/ cria um novo objeto DateyDate = new Date();urrentMonth = myDate.getMonth();/ converte o nmero do ms no nome do msonthName = calcMonth(currentMonth);ear = myDate.getFullYear();urrentDate = myDate.getDate();

    O cdigo abaixo executado name:String = My name is; age:Number = 20;

    s-chave

    ctionScript reserva palavras para uso especfico na linguagem, portanto voc no pode us-las o identificadores, como nomes de variveis, funes ou rtulos. A tabela seguinte lista todas as vras-chave do ActionScript:

    ntes

    a constante uma propriedade cujo valor nunca alterado.

    exemplo, as constantes BACKSPACE, ENTER, QUOTE, RETURN, SPACE e TAB so propriedades do to Key e se referem s teclas do teclado. Para testar se o usurio est pressionando a tecla er, voc pode usar o seguinte comando:Key.getCode() == Key.ENTER) {lert = "Are you ready to play?";ontrolMC.gotoAndStop(5);

    ak case class continue

    ault delete dynamic else

    ends for function get

    implements import in

    tanceof interface new private

    lic return set static

    tch this typeof var

    d while with

  • Sobre tipos de dados

    Os tipos de dados descrevem que tipos de informaes um elemento do ActionScript ou varivel pode conter. Existem dois tipos de dados internos no Flash: primitivo e referncia. Os dados do tipo primitivo String, Number e Boolean tm um valor constante e, portanto, podem manter o valor real do elemento que representam. Os de referncia MovieClip e Object tm valores que podem ser alterados e, portanto, contm referncias ao valor real do elemento. Em determinadas situaes, as variveis que contm tipos de dados primitivos comportam-se de maneira diferente das que contm tipos de dados de referncia. (Consulte Usando variveis em um programa na pgina 39.) Existem tambm dois tipos de dados especiais: null e undefined.

    No com

    Cad

    Ao dparaDe

    VocArr

    String

    Umseqdupexemfav

    VocO ApartgreSobre tipos de dados 31

    Flash, qualquer objeto interno que no seja do tipo de dado primitivo ou de clipe de filme, o Array ou Math (Matemtica), ser do tipo de dado Object.

    a tipo de dado possui suas prprias regras e descrito nos seguintes tpicos:

    String na pgina 31Number na pgina 32Boolean na pgina 32Object na pgina 33MovieClip na pgina 33Null na pgina 33Undefined na pgina 33

    epurar scripts, talvez voc precise determinar os tipos de dados de uma expresso ou varivel entender seu comportamento. Isso pode ser feito com o operador typeof (consulte terminando o tipo de dados de um item na pgina 34).

    pode converter um tipo de dado em outro usando uma das seguintes funes de converso: ay(), Boolean(), Number(), Object(), String().

    a seqncia de caracteres uma seqncia de letras, nmeros e sinais de pontuao. Insira ncias de caracteres em comandos do ActionScript colocando-as entre aspas simples ou las. As seqncias de caracteres so tratadas como caracteres e no como variveis. Por plo, no seguinte comando, "L7" uma seqncia de caracteres:

    oriteBand = "L7";

    pode usar o operador de adio (+) para concatenar, ou unir, duas seqncias de caracteres. ctionScript trata os espaos no comeo ou no final de uma seqncia de caracteres como uma e literal dessa seqncia. A seguinte expresso inclui um espao depois da vrgula: eting = "Welcome," + firstName;

  • 32 Ca

    Para incluir aspas em uma seqncia 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 seqncias de escape especiais. A tabela seguinte fornece todos os caracteres de escape do ActionScript:

    Numbe

    O tinm(/), inte(squMat

    Para

    Boolea

    Umem lgiscriponC

    i

    }}

    Con

    Seqncia de escape Caractere

    \b Caractere Backspace (ASCII 8)

    \f Caractere de alimentao de formulrio (ASCII 12)

    \n Caractere de alimentao de linha (ASCII 10)

    \r

    \t

    \"

    \'

    \\

    \00

    \x0

    \u0ptulo 2: Conceitos bsicos do ActionScript

    r

    po de dados number um nmero de dupla preciso e ponto flutuante. possvel manipular eros usando os operadores aritmticos de adio (+), subtrao (-), multiplicao (*), diviso mdulo (%), incremento (++) e decremento (--). Tambm possvel usar mtodos das classes rnas Math e Number para manipular nmeros. O seguinte exemplo usa o mtodo sqrt() are root - raiz quadrada) para retornar a raiz quadrada do nmero 100: h.sqrt(100);

    obter mais informaes, consulte Operadores numricos na pgina 42.

    n

    valor booleano true ou false. O ActionScript tambm converte os valores true e false 1 e 0 quando apropriado. Os valores booleanos so freqentemente usados com operadores cos em comandos do ActionScript que fazem comparaes para controlar o fluxo de um t. Por exemplo, no seguinte script, o SWF ser reproduzido se a varivel password for true: lipEvent (enterFrame){f (userName == true && password == true){play();

    sulte Usando funes internas na pgina 47 e Operadores lgicos na pgina 43.

    Caractere de retorno de carro (ASCII 13)

    Caractere Tab (ASCII 9)

    Aspas duplas

    Aspas simples

    Barra invertida

    0 - \377 Um byte especificado em octal

    0 - \xFF Um byte especificado em hexadecimal

    000 - \uFFFF Um caractere Unicode de 16 bits especificado em hexadecimal

  • Object

    Um objeto uma coleo 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 cdigo, hoursWorked uma propriedade de weeklyStats, que por sua vez uma propriedade de employee:employee.weeklyStats.hoursWorked

    possvel usar os objeto internos do ActionScript para acessar e manipular tipos especficos de infocomsqu

    O ode smcImc2

    VocFlasinfodos ltiminfo

    MovieC

    Clipdadde cponmy_par

    Null

    O tifalta

    P P C

    r C

    Undefin

    O tiatribSobre tipos de dados 33

    rmaes. Por exemplo, o objeto Math possui mtodos que executam operaes matemticas nmeros passados para eles. Este exemplo usa o mtodo sqrt():areRoot = Math.sqrt(100);

    bjeto MovieClip do ActionScript possui mtodos que permitem controlar instncias mbolos de clipes de filme no Stage. Este exemplo usa os mtodos play() e nextFrame(): nstanceName.play();InstanceName.nextFrame();

    tambm pode criar objeto personalizados para organizar informaes em seu aplicativo h. Para adicionar interatividade a um aplicativo com ActionScript, voc precisar de muitas rmaes diferentes: por exemplo, o nome de um usurio, a velocidade de uma bola, os nomes itens de um carrinho de compras, o nmero de quadros carregados, o CEP do usurio ou a

    a tecla pressionada. A criao de objeto personalizados permite que voc organize essas rmaes em grupos, simplifique e reutilize os scripts.

    lip

    es de filme so smbolos que podem reproduzir animaes em um aplicativo Flash. O tipo de o MovieClipe o nico que faz referncia a elementos grficos. Ele permite controlar smbolos lipes de filme com os mtodos da classe MovieClip. Chame os mtodos usando o operador to (.), conforme o exemplo a seguir:mc.startDrag(true);ent_mc.getURL("http://www.macromedia.com/support/" + product);

    po de dado null s possui um valor: null. Esse valor significa no h valor ou seja, uma de dados. possvel usar o valor null em diversas situaes. Veja a seguir alguns exemplos:

    ara indicar que uma varivel ainda no recebeu um valorara indicar que uma varivel no contm mais um valoromo valor de retorno de uma funo, para indicar que no havia valor disponvel a ser

    etornado pela funoomo parmetro de uma funo, para indicar a omisso de um parmetro

    ed

    po de dado undefined tem um valor, undefined, e usado para uma varivel que no recebeu uio de valor.

  • 34 Ca

    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 informaes sobre testes e depurao, consulte Captulo 3, Escrevendo e depurando scripts, na pgina 51.

    Atribuindo tipos de dados a elementos

    O Fcom

    V P V OEntevitestri

    Atribuin

    No strinvar

    Na etipox =valo

    O Aexemvalooperusadseq"Ne

    O Aprim"Neptulo 2: Conceitos bsicos do ActionScript

    lash atribui automaticamente tipos de dados aos seguintes tipos de elementos de linguagem, o analisado na seo a seguir, Atribuindo tipos de dados automaticamente.

    ariveisarmetros passados a uma funo, mtodo ou classealores retornados de uma funo ou mtodobjeto criados como subclasses de classes existentes

    retanto, voc tambm pode atribuir explicitamente tipos de dados a itens, o que pode ajudar a ar ou diagnosticar certos erros nos scripts. Para obter mais informaes, consulte Atribuio ta de tipos de dados na pgina 35.

    do tipos de dados automaticamente

    Flash, no preciso definir explicitamente um item que tenha um tipo de dados number, g ou outro. O Flash determina o tipo de dados de um item quando ele atribudo: x = 3;

    xpresso var x = 3, o Flash avalia o elemento direita do operador e determina que ele do de dado number. Uma atribuio posterior pode alterar o tipo de x; por exemplo, o comando "hello" altera o tipo de x para string. Uma varivel qual no tenha sido atribudo um

    r tem o tipo undefined.

    ctionScript converte tipos de dados automaticamente sempre que uma expresso exige. Por plo, quando voc passa um valor para a ao trace(), trace() converte automaticamente o

    r em uma seqncia de caracteres e o envia para o painel Output. Em expresses com adores, o ActionScript converte tipos de dados conforme a necessidade; por exemplo, quando o com uma seqncia de caracteres, o operador + prev que o outro operando seja uma ncia de caracteres:xt in line, number " + 7

    ctionScript converte o nmero 7 na seqncia de caracteres "7" e o adiciona ao final da eira seqncia de caracteres, o que resulta na seguinte seqncia de caracteres:xt in line, number 7"

  • Atribuio estrita de tipos de dados

    O ActionScript 2 permite declarar explicitamente o tipo de objeto de uma varivel quando voc a cria; isso se chama Atribuio estrita de tipos de dados. Como erros de tipos de dados causam erros do compilador, a Atribuio estrita de tipos de dados ajuda a evitar atribuir o tipo de dados errado a uma varivel existente. Para atribuir um tipo de dados especfico a um item, defina seu tipo usando a sintaxe ps-dois-pontos:// atribuio de tipo de dados estrita de varivelvar x:Number = 7;

    // atribuio de tipo de dados estrita de parmetrofun}

    // fun

    vr

    }

    // var

    VocMovStudcriavar

    Voc

    Usaincocom// var// varstu

    Qua

    Outautoeles para

    O AcomActiActide ddo trefeAtribuindo tipos de dados a elementos 35

    ction welcome(firstName:String, age:Number){

    atribuio de tipo de dados de parmetro estrita e valor de retornoction square(x:Number):Number {ar squared = x*x;eturn squared;

    atribuio de tipo de dados estrita de objeto my_date:Date = new Date();

    pode declarar o tipo de dado de objeto baseado em classes internas (Button, Date, ieClip etc) e em classes e interfaces criadas por voc. Por exemplo, se houver um arquivo ent.as no qual voc define a classe Student (Aluno), voc poder especificar que os objeto que

    r sejam do tipo Student: student:Student = new Student();

    tambm poder especificar que os objeto sejam do tipo Function.

    r a atribuio de tipo estrita ajuda a garantir que voc no atribua inadvertidamente um tipo rreto de valor a um objeto. O Flash verifica erros de tipo de dados incorreto durante a pilao. Por exemplo, suponha que voc defina o seguinte cdigo:na definio do constutor para a classe Student status:Boolean; // propriedade de objeto Studentem um script studentMaryLago:Student = new Student();dentMaryLago.status = "enrolled";

    ndo o Flash compila esse script, gerado um erro Type mismatch (Erro de tipo).

    ra vantagem da atribuio de tipo de dados estrita que o Flash MX 2004 exibe maticamente referncias de cdigo para objeto internos quando o tipo de dados atribudo a estritamente. Para obter mais informaes, consulte Atribuindo tipo a objeto estritamente ativar referncias de cdigo na pgina 58.

    ctionScript 1 no oferece suporte para a atribuio de tipo de dados estrita. Embora um script comandos de atribuio de tipo de dados estrita possa parecer ser compilado corretamente no onScript 1, o SWF talvez no funcione como desejado. Alm disso, quando voc usa o onScript 2 e especifica Flash Player 6, o suporte durante a execuo para a atribuio de tipo ados estrita no est presente. O resultado pode ser a atribuio de um objeto a uma varivel ipo incorreto, fazendo com que o compilador permita que chamadas de mtodo ilegais e rncias de propriedade no definidas sejam passadas sem serem relatadas.

  • 36 Ca

    Convertendo objeto

    O operador de converso usado pelo Flash tem a forma de uma chamada de funo e simultneo coero explcita, conforme especificado na proposta ECMA-262 edio 4. Ele permite afirmar que um objeto seja de um certo tipo, para que, quando a verificao de tipo ocorrer, o compilador possa ver o objeto com um conjunto de propriedades que o tipo inicial no contm.

    Para obter as informaes mais recentes sobre este tpico, clique no boto Update (Atualizar) na parte superior da guia Help (Ajuda).

    Sobre variveis

    Umcontvocmud

    redefiprimda v

    Varina pvari

    Os tum ocorvariou c

    ParaOutOutDebcomptulo 2: Conceitos bsicos do ActionScript

    a varivel um recipiente que contm informaes. O recipiente sempre o mesmo, mas o edo pode mudar. Ao alterar o valor de uma varivel quando o SWF estiver sendo reproduzido, poder registrar e salvar informaes sobre as atividades do usurio, gravar valores que am medida que o SWF reproduzido ou avaliar se uma condio true ou false.

    comendvel atribuir sempre um valor conhecido a uma varivel na primeira vez que voc ni-la. Esse procedimento conhecido como inicializar uma varivel e geralmente feito no eiro quadro do SWF. A inicializao de variveis facilita o controle e a comparao do valor

    arivel durante a reproduo do SWF.

    veis podem armazenar qualquer tipo de dados (consulte Sobre tipos de dados gina 31). Os tipos de dados que uma varivel contm afetam a forma como o valor da

    vel alterado quando atribudo em um script.

    ipos mais comuns de informaes que voc pode armazenar em uma varivel so um URL, nome de usurio, o resultado de uma operao matemtica, o nmero de vezes que um evento reu ou se um boto foi clicado. Cada SWF e instncia de clipe de filme tem um conjunto de

    veis, no qual cada varivel tem um valor independentemente das variveis em outros SWFs lipes de filme.

    testar o valor de uma varivel, use a ao trace() a fim de enviar o valor para o painel put. Por exemplo, trace(hoursWorked) envia o valor da varivel hoursWorked para o painel put no modo de teste. Tambm possvel verificar e definir os valores da varivel no ugger (Depurador) no modo de teste. Para obter mais informaes, consulte Usando o ando trace na pgina 75 e Exibindo e modificando variveis na pgina 68.

  • Nomeando uma varivel

    O nome de uma varivel deve seguir estas regras:

    Ele deve ser um identificador (consulte Terminologia na pgina 22). No 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 variveis

    na pgina 37).

    Alm disso, no use qualquer elemento na linguagem ActionScript como um nome de varivel; isso variindeheltra

    Stri

    heltra

    O equeobjeusan

    Por varmem

    Assipararefe

    Atribuin

    O esrefe

    Vc

    V VObspbacesSobre variveis 37

    pode causar erros de sintaxe ou resultados inesperados. Por exemplo, se voc nomear uma vel String e depois tentar criar um objeto String usando new String(), o novo objeto ser finido.lo_str = new String();ce(hello_str.length); // retorna 0

    ing = "hello"; // Fornecendo a uma varivel o mesmo nome que uma classe nternalo_str = new String();ce(hello_str.length); // retorna indefinido

    ditor do ActionScript oferece suporte a referncias de cdigo para classes internas e variveis se baseiem nessas classes. Se desejar que o Flash fornea referncias de cdigo para um tipo de to especfico atribudo a uma varivel, voc poder definir estritamente a varivel ou nome-la do um sufixo especfico.

    exemplo, suponha que voc defina o seguinte cdigo: members:Array = new Array();bers.

    m que voc digita o ponto (.), o Flash exibe uma lista de mtodos e propriedades disponveis objeto Array. Para obter mais informaes, consulte Escrevendo cdigo para ativar rncias de cdigo na pgina 57.

    do um escopo e declarando variveis

    copo de uma varivel refere-se rea na qual a varivel conhecida e na qual pode ser renciada. H trs tipos de escopo de varivel no ActionScript:

    ariveis locais esto disponveis no corpo da funo em que so declaradas (delineado por haves).ariveis de Timeline esto disponveis para qualquer script nessa Timeline.ariveis globais e funes esto disponveis para cada Timeline e escopo do documento. ervao: As classes do ActionScript 2 criadas por voc oferecem suporte para escopos licos, particulares e estticos de variveis. Para obter mais informaes, consulte Controlando o so de membros na pgina 168 e Criando membros de classe na pgina 169.

  • 38 Ca

    Variveis locais

    Para declarar variveis locais, use o comando var dentro do corpo de uma funo. O escopo de uma varivel local o bloco e expira ao final desse bloco. Uma varivel local no declarada dentro de um bloco expira ao final de seu script.

    Por exemplo, as variveis i e j so usadas com freqncia para contagem de repeties. No exemplo seguinte, i usado como uma varivel local; ela s existe dentro da funo makeDays(): function makeDays() {

    var i;for( i = 0; i < monthArray[month]; i++ ) {

    }}

    As vaplio nocom

    bocdSe ualter

    Vari

    Varide Tantequavariptulo 2: Conceitos bsicos do ActionScript

    _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;

    }

    ariveis locais tambm ajudam a impedir conflitos de nomes, que podem causar erros no cativo. Por exemplo, se usar name como uma varivel local, voc poder us-la para armazenar me de um usurio em um contexto e o nome de uma instncia de clipe de filme em outro; o essas variveis so executadas em escopos separados, no h conflitos.

    m usar variveis locais no corpo de uma funo para que a funo possa atuar como um igo independente. Uma varivel local s pode ser alterada no seu prprio bloco de cdigo. ma expresso em uma funo usar uma varivel global, algum fator fora da funo poder ar seu valor, o que ir alterar a funo.

    veis de Timeline

    veis de Timeline esto disponveis para qualquer script nessa Timeline. Para declarar variveis imeline, inicialize-as em qualquer quadro da Timeline. Certifique-se de inicializar a varivel s de acess-la em um script. Por exemplo, se voc colocar o cdigo var x = 10; no dro 20, um script anexado a qualquer quadro antes do Quadro 20 no poder acessar essa vel.

  • Variveis globais

    Variveis globais e funes esto disponveis para cada Timeline e escopo do documento. Para criar uma varivel com escopo global, use o identificador _global antes do nome da varivel e no use a sintaxe var =. Por exemplo, o cdigo a seguir cria a varivel global myName:var _global.myName = "George"; // erro de sintaxe_global.myName = "George";

    Entretanto, se voc inicializar uma varivel local com o mesmo nome de uma varivel global, no ter acesso varivel global enquanto estiver no escopo da varivel local:_global.counter = 100;coutrafun

    ft}

    }coucoutra

    Usando

    Vocvariund

    vartravar

    No possvarvartra

    Ocomtgetvarvarget

    Vocvariseqvari

    No 30 nvalovarvarvarSobre variveis 39

    nter++;ce(counter); // exibe 101ction count(){or( var counter = 0; counter

  • 40 Ca

    Outro exemplo: a varivel inValue contm um valor primitivo 3; sendo assim, o valor real passado para a funo sqrt() e o valor retornado 9: function sqrt(x){

    return x * x;}

    var inValue = 3;var out = sqrt(inValue);

    O valor da varivel inValue no alterado.

    O tipo de dados de objeto pode conter informaes to numerosas e complexas que uma varivel comum a ref

    O evarvarmyAtra

    O cnew alttom

    No zer

    funvf

    }}

    varmyAmyAmyAzer

    A fudessptulo 2: Conceitos bsicos do ActionScript

    esse tipo no armazenar o valor real, mas uma referncia a esse valor. Essa referncia como alias que aponta para o contedo da varivel. Quando a varivel precisa saber seu valor, erncia solicita o contedo e responde sem transferir o valor para a varivel.

    xemplo seguinte mostra como passar por referncia: myArray = ["tom", "josie"]; newArray = myArray;rray[1] = "jack";ce(newArray);

    digo acima cria um objeto Array chamado myArray com dois elementos. A varivel Array criada e passa uma referncia para myArray. Quando o segundo elemento de myArray erado, todas as variveis com uma referncia a ele so afetadas. A ao trace() envia , jack para o painel Output.

    exemplo abaixo, myArray contm um objeto Array, portanto, ela passada para a funo oArray() por referncia. A funo zeroArray() altera o contedo do array em myArray.ction zeroArray (theArray){ar i;or (i=0; i < theArray.length; i++) {theArray[i] = 0;

    myArray = new Array();rray[0] = 1;rray[1] = 2;rray[2] = 3;oArray(myArray);

    no zeroArray() aceita um objeto Array como um parmetro e define todos os elementos e array como 0. Ela pode modificar o array porque passada por referncia.

  • Usando operadores para manipular valores em expresses

    Uma expresso qualquer comando que o Flash possa avaliar e que retorne um valor.