Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aprendendo ActionScript 2.0 no Flash Marcas comerciais 1 Step RoboPDF, ActiveEdit, ActiveTest, Authorware, Blue Sky Software, Blue Sky, Breeze, Breezo, Captivate, Central, ColdFusion, Contribute, Database Explorer, Director, Dreamweaver, Fireworks, Flash, FlashCast, FlashHelp, Flash Lite, FlashPaper, Flash Video Encoder, Flex, Flex Builder, Fontographer, FreeHand, Generator, HomeSite, JRun, MacRecorder, Macromedia, MXML, RoboEngine, RoboHelp, RoboInfo, RoboPDF, Roundtrip, Roundtrip HTML, Shockwave, SoundEdit, Studio MX, UltraDev e WebHelp 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. Nesses casos, a Macromedia não é responsável pelo conteúdo de nenhum site vinculado. Se acessar um dos sites da Web de terceiros mencionados neste guia, você estará assumindo os riscos inerentes. A Macromedia oferece esses links apenas como uma conveniência, e a inclusão de um link não significa que a Macromedia apóia ou aceita qualquer responsabilidade pelo conteúdo apresentado nos 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. O vídeo Macromedia Flash 8 possui tecnologia de vídeo On2 TrueMotion. © 1992-2005 On2 Technologies, Inc. Todos os direitos reservados. http://www.on2.com. Visual SourceSafe é uma marca comercial ou comercial registrada da Microsoft Corporation nos Estados Unidos e/ou em outros países. Copyright © 2005 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ão obstante o precedente, o proprietário ou usuário autorizado de uma cópia válida do software com que este manual foi fornecido pode imprimir uma cópia deste manual a partir de uma versão eletrônica com a finalidade única de ele próprio ou um usuário autorizado aprender a usar este software, desde que nenhuma parte deste manual seja impressa, reproduzida, distribuída, revendida ou transmitida para qualquer outro fim, incluindo, sem limitação, fins comerciais, como vendas de cópias desta documentação ou fornecimento de serviços de suporte pré-pagos. Agradecimentos Gerenciamento de projetos: Sheila McGinn Criação do texto: Jen deHaan; Peter deHaan, Joey Lott Editora geral: Rosana Francescato Editora chefe: Lisa Stanziano Edição: Linda Adler, Geta Carlson, Evelyn Eldridge, John Hammett, Mary Kraemer, Noreen Maher, Jessie Wood, Anne Szabla Gerenciamento de produção: Patrice O’Neill, Kristin Conradi, Yuko Yagi Projeto de mídia e produção: Adam Barnett, Aaron Begley, Paul Benkman. John Francis, Geeta Karmarkar, Masayo Noda, Paul Rangel, Arena Reed, Mario Reynoso Agradecimentos especiais a Jody Bleyle, Mary Burger, Lisa Friendly, Stephanie Gowin, Bonnie Loo, Mary Ann Walsh, Erick Vera, aos testadores beta e a toda a equipe de engenharia e controle de qualidade do Flash e do Flash Player. Primeira edição: Setembro de 2005 Macromedia, Inc. 601 Townsend St. San Francisco, CA 94103 http://www.on2.com Conteúdo Introdução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Público-alvo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Requisitos de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Atualizando arquivos XML para Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Sobre a documentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Recursos adicionais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Capítulo 1: Novidades do ActionScript no Flash 8 . . . . . . . . . . . . 19 Novidades do ActionScript 2.0 e do Flash 8 . . . . . . . . . . . . . . . . . . . . . . 19 Alterações no modelo de segurança para arquivos SWF instalados localmente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Capítulo 2: Escrevendo e editando o ActionScript 2.0 . . . . . . . . 31 Sobre o ActionScript e eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Organizando o código ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Usando o painel Actions e a janela Script. . . . . . . . . . . . . . . . . . . . . . . . 36 Sobre o painel Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Sobre a janela Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Sobre a codificação no painel Actions e na janela Script . . . . . . . . . . 39 Sobre recursos do painel Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Sobre comportamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Sobre as configurações de publicação do ActionScript . . . . . . . . . . . 66 Capítulo 3: Sobre o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . 71 O que é ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72 Sobre a opção entre o ActionScript 1.0 e o ActionScript 2.0 . . . . . . .73 Noções básicas do ActionScript e do Flash Player . . . . . . . . . . . . . . . .74 3 Capítulo 4: Dados e tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . 75 Sobre dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Sobre tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Sobre variáveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Organizando dados em objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 Sobre a conversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 Capítulo 5: Fundamentos da sintaxe e da linguagem . . . . . . . . 119 Sobre sintaxe, instruções e expressões . . . . . . . . . . . . . . . . . . . . . . . . . 120 Sobre sintaxe de ponto e caminhos de destino . . . . . . . . . . . . . . . . . . 124 Sobre pontuadores de linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Sobre constantes e palavras-chave . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Sobre instruções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Sobre arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Sobre operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Capítulo 6: Funções e métodos . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Sobre funções e métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Noções básicas sobre métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 Capítulo 7: Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Sobre a programação orientada a objeto e o Flash . . . .. . . . . . . . . 240 Criando arquivos de classes personalizados. . . . . . . . . . . . . . . . . . . . 249 Sobre como trabalhar com classes personalizadas em um aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 Exemplo: Criando classes personalizadas. . . . . . . . . . . . . . . . . . . . . . .278 Exemplo: Usando arquivos de classes personalizados no Flash . . . 291 Atribuindo uma classe a símbolos no Flash. . . . . . . . . . . . . . . . . . . . . 295 Compilando e exportando classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 Noções básicas sobre classes e escopo . . . . . . . . . . . . . . . . . . . . . . . 299 Sobre classes de nível superior e internas . . . . . . . . . . . . . . . . . . . . . . 302 Sobre como trabalhar com classes internas . . . . . . . . . . . . . . . . . . . . . 312 Capítulo 8: Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Sobre herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Sobre a criação de subclasses no Flash . . . . . . . . . . . . . . . . . . . . . . . . 321 Usando o polimorfismo em um aplicativo . . . . . . . . . . . . . . . . . . . . . . .327 4 Conteúdo Capítulo 9: Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Sobre interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331 Criando interfaces como tipos de dados. . . . . . . . . . . . . . . . . . . . . . . . 337 Noções básicas sobre herança e interfaces. . . . . . . . . . . . . . . . . . . . . 339 Exemplo: Usando interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Exemplo: Criando uma interface complexa . . . . . . . . . . . . . . . . . . . . . 342 Capítulo 10: Manipulando eventos . . . . . . . . . . . . . . . . . . . . . . . 347 Usando métodos manipuladores de eventos. . . . . . . . . . . . . . . . . . . . 348 Usando ouvintes de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 Usando ouvintes de eventos com componentes . . . . . . . . . . . . . . . . 353 Usando manipuladores de eventos de botão e de clipe de filme. . . 355 Transmitindo eventos de instâncias de componentes . . . . . . . . . . . . 360 Criando clipes de filme com estados de botão . . . . . . . . . . . . . . . . . . .361 Escopo do manipulador de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Escopo da palavra-chave this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Usando a classe Delegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Capítulo 11: Trabalhando com clipes de filme . . . . . . . . . . . . . . 369 Sobre o controle de clipes de filme com o ActionScript . . . . . . . . . . 370 Chamando vários métodos em um único clipe de filme. . . . . . . . . . . 372 Carregando e descarregando arquivos SWF . . . . . . . . . . . . . . . . . . . 373 Alterando a posição e a aparência de um clipe de filme . . . . . . . . . . 376 Arrastando clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Criando clipes de filme durante a execução . . . . . . . . . . . . . . . . . . . . . 378 Adicionando parâmetros aos clipes de filme criados dinamicamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Gerenciando profundidades do clipe de filme . . . . . . . . . . . . . . . . . . . 385 Sobre o armazenamento em cache e a rolagem de clipes de filme com o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Usando clipes de filme como máscaras . . . . . . . . . . . . . . . . . . . . . . . . 397 Manipulando eventos de clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . 399 Atribuindo uma classe a um símbolo de clipe de filme . . . . . . . . . . . . 399 Inicializando as propriedades de classe . . . . . . . . . . . . . . . . . . . . . . . . .401 Capítulo 12: Trabalhando com texto e seqüências de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 Sobre campos de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 Sobre o carregamento de texto e variáveis em campos de texto . . .415 Usando fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Sobre a renderização de fontes e texto sem serrilhado. . . . . . . . . . . 430 Conteúdo 5 Sobre o layout e a formatação de texto . . . . . . . . . . . . . . . . . . . . . . . . 439 Formatando texto com estilos CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . .447 Usando texto em formato HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 Exemplo: Criando texto de rolagem . . . . . . . . . . . . . . . . . . . . . . . . . . . .475 Sobre seqüências de caracteres e a classe String. . . . . . . . . . . . . . . . 477 Capítulo 13: Animação, filtros e desenhos. . . . . . . . . . . . . . . . . 497 Scripts de animação com o ActionScript 2.0 . . . . . . . . . . . . . . . . . . 498 Sobre cache de bitmap, rolagem e desempenho . . . . . . . . . . . . . . . 508 Sobre as classes Tween e TransitionManager . . . . . . . . . . . . . . . . . 509 Usando efeitos de filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526 Trabalhando com filtros usando ActionScript . . . . . . . . . . . . . . . . . . .534 Manipulando efeitos de filtro com código . . . . . . . . . . . . . . . . . . . . . . .557 Criando bitmaps com a classe BitmapData . . . . . . . . . . . . . . . . . . . . . 561 Modos de mistura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564 Sobre a ordem de operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .567 Desenhando com o ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .567 Noções básicas sobre dimensionamento e guias de trecho . . . . . . .583 Capítulo 14: Criando interação com o ActionScript . . . . . . . . . 589 Sobre eventos e interação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 Controlando a reprodução de arquivos SWF . . . . . . . . . . . . . . . . . . . 590 Criando interatividade e efeitos visuais. . . . . . . . . . . . . . . . . . . . . . . . . 593 Criando vinculações de dados durante a execução com o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .607 Desconstruindo um script de exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . 616 Capítulo 15: Trabalhando com imagens, som e vídeo . . . . . . . . 619 Sobre o carregamento e o trabalho com mídia externa . . . . . . . . . . 620 Carregando arquivos SWF e de imagem externos . . . . . . . . . . . . . . . 621 Sobre o carregamento e o uso de arquivos MP3 externos . . . . . . . .626 Atribuindo vinculação a recursos da biblioteca. . . . . . . . . . . . . . . . . . . 631 Sobre o uso de vídeo FLV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .632 Sobre a criação de animações do progresso para arquivos de mídia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .654 6 Conteúdo Capítulo 16: Trabalhando com dados externos . . . . . . . . . . . . . 663 Enviando e carregando variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 Usando HTTP para conectar a scripts do servidor . . . . . . . . . . . . . . . 668 Sobre upload e download de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . 674 Sobre XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 Enviando mensagens para o Flash Player e a partir deste . . . . . . . . 692 Sobre a API External . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . 696 Capítulo 17: Noções básicas de segurança . . . . . . . . . . . . . . . . 707 Sobre compatibilidade com os modelos de segurança anteriores do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708 Sobre segurança do arquivo local e o Flash Player . . . . . . . . . . . . . . 709 Sobre domínios, segurança entre domínios e arquivos SWF . . . . . 727 Arquivos de diretivas de servidor para autorizar o acesso a dados. 736 Acesso de protocolo HTTP para HTTPS entre arquivos SWF . . . . . 741 Capítulo 18: Depurando aplicativos . . . . . . . . . . . . . . . . . . . . . . 745 Depurando scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 Usando o painel Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759 Capítulo 19: Melhores práticas e convenções de codificação para ActionScript 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .767 Convenções de atribuição de nome. . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 Usando de comentários no código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779 Convenções de codificação do ActionScript. . . . . . . . . . . . . . . . . . . . 782 Otimização do ActionScript e do Flash Player . . . . . . . . . . . . . . . . . . 798 Formatando a sintaxe do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . 799 Apêndice A: Mensagens de erro . . . . . . . . . . . . . . . . . . . . . . . . . 809 Apêndice B: Operadores Flash 4 obsoletos . . . . . . . . . . . . . . . . 815 Apêndice C: Teclas do teclado e valores de códigos de teclas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817 Apêndice D: Criando scripts para versões anteriores do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825 Sobre a especificação de versões anteriores do Flash Player . . . . 825 Usando o Flash 8 para criar conteúdo para o Flash Player 4 . . . . . 826 Conteúdo 7 Apêndice E: Programação orientada a objeto com o ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 Sobre o ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830 Criando um objeto personalizado no ActionScript 1.0 . . . . . . . . . . . . 831 Atribuindo métodos a um objeto personalizado no ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832 Definindo métodos manipuladores de eventos no ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .834 Criando herança no ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . .836 Adicionando propriedades getter/setter a objetos no ActionScript 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .837 Usando as propriedades do objeto Function no ActionScript 1.0 . .838 Apêndice F: Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841 Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 8 Conteúdo Introdução O Macromedia Flash Basic 8 e o Macromedia Flash Professional 8 são as ferramentas de criação padrão profissionais para a produção de experiências de grande impacto na Web. O ActionScript é a linguagem utilizada para adicionar interatividade aos aplicativos Flash, sejam os aplicativos arquivos SWF animados simples ou aplicativos de Internet avançados mais complexos. Para usar o Flash, não é necessário o ActionScript, mas, se você desejar fornecer interatividade básica ou complexa com o usuário, trabalhar com objetos diferentes daqueles contidos no Flash (como botões e clipes de filme) ou então transformar um arquivo SWF em uma experiência de usuário mais eficiente, deverá usar o ActionScript. Para obter mais informações, consulte os tópicos a seguir: Público-alvo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Atualizando arquivos XML para Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Requisitos de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Sobre a documentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Recursos adicionais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Público-alvo Este manual pressupõe que você já tenha instalado o Flash Basic 8 ou o Flash Professional 8 e saiba como usar a interface de usuário.É preciso que saiba posicionar objetos no Stage e manipulá-los no ambiente de criação do Flash. Se já tiver usado uma linguagem de criação, o ActionScript lhe parecerá familiar. No entanto, se for iniciante em programação, saiba que os fundamentos do ActionScript são fáceis de aprender. Você pode começar com comandos simples e criar mais complexidade com o tempo. Pode adicionar muita interatividade aos seus arquivos sem precisar aprender (ou escrever) muito código. Requisitos de sistema O ActionScript 2.0 não tem qualquer requisito de sistema além do Flash 8 . 9 Este manual pressupõe que você esteja utilizando as configurações de publicação padrão para os arquivos do Flash: Flash Player 8 e ActionScript 2.0. Se você alterar qualquer uma dessas configurações, as explicações e exemplos de código apresentados na documentação poderão não funcionar corretamente. Caso desenvolva aplicativos para versões anteriores do Flash Player, consulte o Apêndice D, “Criando scripts para versões anteriores do Flash Player”, na página 825. Atualizando arquivos XML para Flash É importante que estejam sempre instalados os arquivos XML para Flash mais recentes. A Macromedia algumas vezes apresenta recursos em versões com ponto (versões menores) do Flash Player. Quando uma versão dessas se encontrar disponível, atualize sua versão do Flash para obter os arquivos XML mais recentes. Caso contrário, o compilador do Flash 8 poderá gerar erros caso você use novas propriedades ou métodos indisponíveis na versão do Flash Player que veio com a instalação do Flash. Por exemplo, o Flash Player 7 (7.0.19.0) continha um novo método para o objeto System , System.security.loadPolicyFile. Para acessar esse método, use o instalador Player Updater (Atualizador de player) para atualizar todos os players instalados com o Flash. Caso contrário, o compilador do Flash exibirá erros. Lembre-se de que é possível instalar um Player Updater que seja de uma ou mais versões maiores mais recentes que a sua do Flash. Fazendo isso, obterá os arquivos XML necessários, mas não deverá receber mensagens de erro do compilador quando publicar versões mais antigas do Flash Player. Algumas vezes, novos métodos ou propriedades encontram-se disponíveis para versões mais antigas, e ter os arquivos XML mais recentes minimiza os erros de compilação quando você tenta acessar métodos ou propriedades mais antigos. Sobre a documentação Este manual oferece uma visão geral da sintaxe do ActionScript e informações sobre como usá- lo quando trabalhar com diferentes tipos de objetos. Para obter detalhes sobre a sintaxe e o uso de cada elemento da linguagem, consulte o ActionScript 2.0 Language Reference. Para obter mais informações, consulte os seguintes tópicos: ■ “Visão geral do manual Aprendendo ActionScript 2.0” na página 11 ■ “Sobre os arquivos de exemplo” na página 15 ■ “Termos usados neste documento” na página 13 ■ “Copiar e colar código” na página 13 10 Introdução Visão geral do manual Aprendendo ActionScript 2.0 A lista a seguir resume o conteúdo deste manual: ■ O Capítulo 1, “Novidadesdo ActionScript no Flash 8,” descreve recursos que são novos no ActionScript, alterações no compilador e no depurador e o novo modelo de programação para a linguagem ActionScript 2.0. ■ O Capítulo 2, “Escrevendo e editando o ActionScript 2.0,” descreve recursos do editor do ActionScript dentro do Flash que facilitam a escrita de código. ■ O Capítulo 3, “Sobre o ActionScript,” descreve o que é a linguagem ActionScript e detalha como escolher qual versão utilizar. ■ O Capítulo 4, “Dados e tipos de dados,” descreve a terminologia e os conceitos básicos sobre dados, tipos de dados e variáveis. Esses conceitos serão usados em todo o manual. ■ O Capítulo 5, “Fundamentos da sintaxe e da linguagem,” descreve a terminologia e os conceitos básicos da linguagem ActionScript. Esses conceitos serão usados em todo o manual. ■ O Capítulo 6, “Funções e métodos,” descreve como escrever diferentes tipos de funções e métodos e como usá-los no seu aplicativo. ■ O Capítulo 7, “Classes,” descreve como criar classes e objetos personalizados no ActionScript. Esse capítulo também lista as classes internas do ActionScript e oferece uma visão geral de como utilizá-las para acessar recursos avançados do ActionScript. ■ O Capítulo 8, “Herança,” descreve a herança na linguagem ActionScript e como estender classes internas ou personalizadas. ■ O Capítulo 9, “Interfaces,” descreve como criar interfaces e trabalhar com elas no ActionScript. ■ O Capítulo 10, “Manipulando eventos,” descreve várias formas de manipular eventos: métodos manipuladores de eventos, ouvintes de eventos e manipuladores de eventos de botão e de clipe de filme. ■ O Capítulo 11, “Trabalhando com clipes de filme,” descreve clipes de filme e o AcionScript que você pode usar para crontrolá-los. ■ O Capítulo 12, “Trabalhando com texto e seqüências de caracteres,” descreve os diferentes modos como você pode controlar o texto e as seqüências de caracteres no Flash e inclui informações sobre formatação de texto e o FlashType (renderização de texto avançada, como texto sem serrilhado). ■ O Capítulo 13, “Animação, filtros e desenhos,” descreve como criar animação e imagens baseadas em código, adicionar filtros a objetos e desenhar usando o ActionScript. Sobre a documentação 11 ■ O Capítulo 14, “Criando interação com o ActionScript,” descreve alguns modos simples de criar aplicativos mais interativos, incluindo o controle quando os arquivos SWF são executados e a criação de ponteiros personalizados e de controles de som. ■ O Capítulo 15, “Trabalhando com imagens, som e vídeo,” descreve como importar arquivos de mídia externos, como imagens de bitmap, arquivos MP3, arquivos Flash Video (FLV) e outros arquivos SWF, nos aplicativos Flash. Esse capítulo também oferece uma visão geral de como trabalhar com o vídeo nos aplicativos e como criar animações para o carregamento da barra de progresso. ■ O Capítulo 16, “Trabalhando com dados externos,” descreve como processar dados de fontes externas usando scripts de servidor ou de cliente nos aplicativos. Esse capítulo descreve como integrar os dados com os aplicativos. ■ O Capítulo 17, “Noções básicas de segurança,” explica a segurança no Flash Player, na medida em que se relaciona com o trabalho com arquivos SWF localmente no disco rígido. Esse capítulo também explica questões de segurança entre domínios e como carregar dados de servidores ou através de domínios. ■ O Capítulo 18, “Depurando aplicativos,” descreve o depurador do ActionScript dentro do Flash, que facilita a escrita de aplicativos. ■ O Capítulo 19, “Melhores práticas e convenções de codificação para ActionScript 2.0,” explica as melhores práticas para usar o Flash e para escrever o ActionScript. Esse capítulo também lista convenções de codificação padronizadas, como variáveis de atribuição de nome e outras convenções. ■ O Apêndice A, “Mensagens de erro,” lista as mensagens de erro que o compilador do Flash pode gerar. ■ O Apêndice B, “Operadores Flash 4 obsoletos,” lista todos os operadores obsoletos do Flash 4 e sua associatividade. ■ O Apêndice C, “Teclas do teclado e valores de códigos de teclas,” lista todas as teclas de um teclado padrão e os valores de códigos de teclas ASCII correspondentes usados para identificar as teclas no ActionScript. ■ O Apêndice D, “Criando scripts para versões anteriores do Flash Player,” fornece diretrizes para ajudá-lo a criar scripts sintaticamente corretos para a versão do Flash Player desejada. ■ O Apêndice E, “Programação orientada a objeto com o ActionScript 1.0,” fornece informações sobre o uso do modelo de objeto ActionScript 1.0 para escrver scripts. ■ O Apêndice F, “Terminologia,” lista a terminologia comumente usada ao trabalhar com a linguagem ActionScript e fornece descrições para os termos. Este manual explica como usar a linguagem ActionScript. Para obter informações sobre os elementos de linguagem propriamente ditos, consulte o ActionScript 2.0 Language Reference. 12 Introdução Convenções tipográficas Este manual usa as seguintes convenções tipográficas: ■ Fonte Code indica código do ActionScript. ■ Fonte Code negrito, normalmente em um procedimento, indica código que você precisa modificar ou adicionar a um código já adicionado ao arquivo FLA. Em alguns casos, pode ser usado para realçar o código a ser observado. ■ Texto em negrito indica dados que você precisa digitar na interface de usuário, como nome de arquivo ou nome de instância. ■ Texto em itálico indica um novo termo definido no texto que se segue. Em um caminho de arquivo, pode indicar um valor que deve ser substituído (por exemplo, por um nome de diretório no seu próprio disco rígido). 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 Apêndice F, “Terminologia”, na página 841. Copiar e colar código Quando você colar o ActionScript do painel Help (Ajuda) para o FLA ou o arquivo do ActionScript, preste atenção aos caracteres especiais. São caracteres especiais as aspas especiais (também chamadas de aspas curvas ou aspas inglesas). Esses caracteres não são interpretados pelo editor do ActionScript, então o código lança um erro quando você tenta compilá-lo no Flash. Sobre a documentação 13 Você pode identificar se os caracteres de aspas são especiais quando eles não são codificados por cores de forma correta. Ou seja, se nenhuma seqüência de caracteres mudar de cor no editor de cores, será preciso substituir os caracteres especiais por caracteres de aspas retas comuns. Se você digitar um caractere de aspa simples ou dupla diretamente no editor do ActionScript, sempre digitará um caractere de aspa reta. O compilador (quando você testa ou publica um arquivo SWF) lança um erro e permite que você saiba que há um tipo errado (marcas de aspas especiais ou curvas) de caracteres no seu código. Cuidado com quebras de linha ao copiar e colar código. Ao colar o seu código de alguns locais, a linha de código poderá se quebrar em um local inapropriado. Certifique-se de que a codificação de cores da sua sintaxe esteja correta no editor do ActionScript se achar que as quebras de linha representam um problema. Compare o código do painel Actions (Ações) com o do painel Help para ver se correspondem. Procure ativar o Word Wrap (quebra automática de linha) no editor do ActionScript para ajudar a solucionar quebras de linha excedentes no código (selecione View (Exibir) > Word Wrap (quebra automática de linha) na janela Script ou Word Wrap no menu pop-up do painel Actions.) Recursos adicionais Além deste manual sobre o ActionScript, existem outrossobre outros tópicos do Flash, como componentes e o Macromedia Flash Lite. Você pode acessar cada manual no painel Help (Help > Flash Help (Ajuda do Flash)), exibindo o sumário padrão. Clique no botão Clear (Limpar) para ver os manuais disponíveis; para obter mais informações, consulte “Onde encontrar documentação sobre outros assuntos” na página 17. Para obter mais informações sobre outros recursos disponíveis, consulte os seguintes tópicos: ■ “Sobre os arquivos de exemplo” na página 15 ■ “Onde encontrar arquivos PDF ou documentação impressa” na página 15 ■ “Sobre o LiveDocs” na página 16 ■ “Recursos on-line adicionais” na página 17 ■ “Onde encontrar documentação sobre outros assuntos” na página 17 N O T A Você também pode encontrar aspas especiais se colar o ActionScript de outros locais, como de uma página da Web ou um documento do Microsoft Word. 14 Introdução Sobre os arquivos de exemplo Há vários arquivos de exemplo baseados no ActionScript que são instalados com o Flash. Esses arquivos de exemplo mostram como o código funciona em um arquivo FLA; geralmente servem como uma ferramenta de aprendizado bem útil. Os capítulos deste manual muitas vezes fazem referência a esses arquivos, mas recomendamos que você consulte também a pasta de arquivos de exemplo do seu disco rígido. Os arquivos de exemplo incluem arquivos FLA de aplicativo que usam funções comuns do Flash instaladas com ele. Esses aplicativos foram projetados para apresentar aos novos desenvolvedores do Flash as capacidades dos aplicativos Flash assim como para mostrar aos desenvolvedores avançados como funcionam os recursos do Flash no contexto. Você pode encontrar os arquivos de origem de exemplo com foco no ActionScript na pasta Samples (Exemplos) do disco rígido. ■ No Windows, navegue até a unidade de inicialização\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\. ■ No Macintosh, navegue até Macintosh HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/ActionScript/. Você verá como são úteis os seguintes arquivos de exemplo com foco em componentes, pois eles contêm vários códigos ActionScript. Eles também podem ser encontrados na pasta Samples do disco rígido: ■ No Windows, navegue até a unidade de inicialização\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\Components\. ■ No Macintosh, navegue até Macintosh HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/Components/. Você também pode encontrar arquivos de exemplo adicionais para download na Internet. A página da Web a seguir contém links e descrições de arquivos de exemplo adicionais: www.macromedia.com/go/flash_samples/. Onde encontrar arquivos PDF ou documentação impressa Caso prefira ler a documentação em formato impresso, as versões PDF de cada manual encontram-se disponíveis para download. Vá até www.macromedia.com/support/ documentation/ e selecione o produto em que está interessado. Você pode exibir ou fazer o download do PDF ou acessar o link da versão LiveDocs do manual. Recursos adicionais 15 http://www.macromedia.com/go/flash_samples/ http://www.macromedia.com/support/documentation/ http://www.macromedia.com/support/documentation/ Muitas vezes você também pode adquirir a documentação impressa. Para obter informações atualizadas, vá até o site de suporte da documentação e selecione Flash Basic 8 ou Flash Professional 8. Sobre o LiveDocs Você pode acessar a documentação no site LiveDocs ou pelo painel Help. O site LiveDocs contém todas as páginas de ajuda do Flash e pode conter comentários que esclareçam, atualizem ou corrijam partes da documentação. Clique em View Comments (Exibir comentários) em LiveDocs na parte inferior de uma página do painel Help para exibir a página equivalente no site LiveDocs. Vá até http://livedocs.macromedia.com para ver uma lista de toda a documentação disponível no formato LiveDocs. Escritores técnicos monitoram o site LiveDocs. Uma das vantagens do LiveDocs é ver comentários que esclarecem a documentação ou corrigir erros ou problemas que surgem após o lançamento de um software. Não é no LiveDocs que você faz solicitações de ajuda, como perguntas sobre seu código que não funciona, comentários sobre problemas com software ou instalação ou perguntas sobre como criar algo com o Flash. Nele você fornece informações sobre a documentação (por exemplo, você aponta uma frase ou parágrafo que requer esclarecimento). Quando você clica no botão para adicionar um comentário sobre o LiveDocs, há diversos pontos sobre os tipos de comentários que são aceitáveis no sistema. Leia essas diretrizes atentamente para que seu comentário não seja removido do site. Se tiver alguma dúvida sobr eo Flash, faça sua pergunta nos fóruns da Web da Macromedia: www.macromedia.com/support/forums/. Os fóruns da Web são o melhor local para fazer perguntas, pois há vários funcionários da Macromedia lá, voluntários da equipe Macromedia, gerentes e membros de grupos de usuário da Macromedia e até escritores técnicos que monitoram esses fóruns. Engenheiros não monitoram o sistema LiveDocs, mas a lista de tarefas do Flash. Se achar que encontrou um erro (bug) no software ou se quiser solicitar um aprimoramento para o Flash, preencha o formulário em www.macromedia.com/go/wish. Se você relatar o bug ou a solicitação de aprimoramento no LiveDocs, eles não serão adicionados de forma oficial ao banco de dados de bugs. Use o formulário apropriado se quiser que um engenheiro dê atenção ao bug reportado ou à sua solicitação. Lembre-se de dar atenção aos caracteres especiais e às quebras de linha quando colar da Web, incluindo do LiveDocs. A Macromedia vem se esforçando para remover todos os caracteres especiais dos exemplos de código, mas, se você tiver dificuldades para colar o código, consulte “Copiar e colar código” na página 13. 16 Introdução http://www.macromedia.com/support/documentation/ http://livedocs.macromedia.com/ http://www.macromedia.com/support/forums/ http://www.macromedia.com/go/wish/ Recursos on-line adicionais Existem vários recursos on-line que oferecem várias instruções, ajuda e orientação para facilitar o uso do Macromedia Flash 8. Consulte com freqüência os seguintes sites para obter atualizações: O site The Macromedia Developer Center (www.macromedia.com/devnet) é atualizado regularmente com as informações mais recentes sobre o Flash, além de oferecer aconselhamentos de usuários experientes, tópicos avançados, exemplos, dicas, tutoriais (incluindo tutoriais com várias partes) 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 site The Macromedia Flash Support Center (www.macromedia.com/support/flash) fornece TechNotes (Notas Técnicas), atualizações de documentação e links para recursos adicionais na comunidade Flash. O site The Macromedia Weblogs (http://weblogs.macromedia.com) fornece uma lista dos weblogs (também chamados de blogs) de funcionários e da comunidade Macromedia . Os fóruns da Web da Macromedia (http://webforums.macromedia.com) oferecem vários fóruns para perguntas específicas sobre o Flash, seus aplicativos ou a linguagem ActionScript. Os fóruns são monitorados por voluntários da equipe Macromedia e muitas vezes são visitados por funcionários de lá também. Se não souber a quem recorrer ou como resolver um problema, comece por um fórum do Flash. O site The Macromedia Community (www.macromedia.com/community) hospeda regularmente Macrochats, uma série de apresentações ao vivo sobre uma variedade de tópicos feitas por funcionários ou membros da comunidade Macromedia. Consulte regulamente o site à procura de atualizações e para registrar-se nos Macrochats. Onde encontrar documentação sobre outros assuntos Os manuais a seguir oferecem informações adicionais sobre assuntos comumente associados ao ActionScript 2.0: ■ Para obter informações sobre oselementos que compõem a linguagem ActionScript, consulte o ActionScript 2.0 Language Reference. ■ Para obter informações sobre como trabalhar no ambiente de criação do Flash, consulte o How to Use Help (Como usar a Ajuda). ■ Para obter informações sobre como trabalhar com componentes, consulte o Using Components (Usando componentes). Recursos adicionais 17 http://www.macromedia.com/devnet http://www.macromedia.com/support/flash http://weblogs.macromedia.com http://webforums.macromedia.com http://www.macromedia.com/community/ 18 Introdução 1 CAPÍTULO 1 Novidades do ActionScript no Flash 8 O Macromedia Flash Basic 8 e o Macromedia Flash Professional 8 oferecem vários aprimoramentos que facilitam a criação de scripts mais eficientes com uso da linguagem ActionScript. Os novos recursos, analisados neste capítulo, incluem novos elementos de linguagem (consulte “Acréscimos à linguagem ActionScript” na página 22), ferramentas de edição aprimoradas (consulte “Alterações de edição do ActionScript” na página 28), alterações no modelo de segurança e outros aprimoramentos do ActionScript relacionados à ferramenta de criação. Para obter mais informações, consulte os seguintes tópicos: Novidades do ActionScript 2.0 e do Flash 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Alterações no modelo de segurança para arquivos SWF instalados localmente . 29 Novidades do ActionScript 2.0 e do Flash 8 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, objetos, métodos e outros elementos foram adicionados à linguagem. Existem também aprimoramentos do ActionScript relacionados aos ambientes de criação do Flash 8. O Flash Basic 8 e o Flash Professional 8 introduzem vários novos elementos de linguagem para recursos expressivos, como filtros e modos de mistura, além do desenvolvimento de aplicativos, como integração do JavaScript (ExternalInterface) e entrada e saída de arquivo (FileReference e FileReferenceList). Esta seção fornece uma visão geral dos elementos e classes da linguagem ActionScript que são novos ou foram alterados no Flash 8 e aprimoramentos do ActionScript relacionados à ferramenta de criação. Para obter uma lista de adições específicas ao ActionScript 2.0, consulte “Acréscimos à linguagem ActionScript” na página 22. Para usar qualquer dos novos elementos da linguagem nos seus scripts, tenha em mente o Flash Player 8 (o padrão) quando publicar seus documentos. 19 Os recursos a seguir foram adicionados ao Flash Basic 8 e ao Flash Professional 8 (a menos que explicitado de forma diferente): ■ Os aprimoramentos do editor do ActionScript permitem a exibição de caracteres ocultos nos scripts. Para obter mais informações, consulte “Exibindo caracteres ocultos” na página 57. ■ As opções de depuração agora encontram-se disponíveis na janela Script, assim como no painel Actions, para arquivos do ActionScript. ■ O diretório Configuration que inclui arquivos XML e arquivos de classes está reorganizado. Para obter detalhes, consulte “Arquivos de configuração instalados com o Flash 8” na página 69. ■ É possível definir uma preferência para recarregar arquivos de script modificados ao trabalhar em um aplicativo, o que ajuda a evitar o trabalho com versões mais antigas de arquivos de script e a substituição de arquivos de script mais novos. Para obter mais informações, consulte “Sobre as preferências do ActionScript” na página 44. ■ O recurso da janela Script encontra-se disponível no Flash Basic 8 e no Flash Professional 8. Isso significa que você pode criar um arquivo do ActionScript nos dois programas. ■ O Script Assist (Assistência de script), semelhante ao Normal Mode (Modo Normal) em edições anteriores do Flash, ajuda você a codificar sem que precise ter noções de sintaxe. Para obter mais informações sobre o Script Assist, consulte “Sobre o Script Assist” na página 62. ■ É possível carregar novos tipos de arquivos de imagem durante a execução, o que inclui imagens JPEG progressivas e arquivos GIF e PNG não-animados. Se você carregar um arquivo animado, o primeiro quadro da animação será exibido. ■ É possível atribuir identificadores de vinculação a arquivos de bitmap e de som armazenados na biblioteca (Library), o que significa que você pode anexar imagens ao Stage ou trabalhar com esses recursos em bibliotecas compartilhadas. ■ O cache de bitmap permite o aumento do desempenho dos aplicativos durante a execução por meio do cache de uma representação de bitmap de suas instâncias. Você pode usar o ActionScript para acessar essa propriedade. Para obter mais informações, consulte “Sobre cache de bitmap, rolagem e desempenho” na página 508. 20 Novidades do ActionScript no Flash 8 ■ O dimensionamento em 9 trechos permite o dimensionamento de instâncias de clipe de filme sem expansão dos traços que contornam o clipe de filme. Você pode usar o código ActionScript para acessar esse recurso no Flash Basic 8 e no Flash Professional 8 ou na ferramenta de criação do Flash 8. Para obter mais informações, consulte “Trabalhando com dimensionamento de 9 trechos no ActionScript” na página 585. Para obter informações sobre como acessar o dimensionamento em 9 trechos na ferramenta de criação, consulte “Sobre dimensionamento em 9 trechos e símbolos de clipe de filme” na página 91 em Usando o Flash. ■ Agora você pode adicionar informações de metadados para os arquivos FLA na caixa de diálogo Publish Settings (Configurações de publicação). Pode adicionar um nome e uma descrição ao arquivo FLA usando a caixa de diálogo para ajudar a aumentar a visibilidade da pesquisa on-line. ■ O painel Strings (Seqüências de caracteres) está aprimorado e agora inclui suporte multilinha no campo String e um arquivo de linguagem XML. Para obter mais informações, consulte “Sobre o painel Strings” na página 479. ■ Um novo coletor de lixo faz parte do Flash Player, que usa um coletor incremental para melhorar o desempenho. ■ O fluxo de trabalho para a criação de aplicativos acessíveis está aprimorado. No Flash Player 8 não há mais necessidade de os desenvolvedores adicionarem todos os objetos ao índice de tabulação para que o conteúdo seja lido corretamente por um leitor de tela. Para obter mais informações sobre o índice de tabulação, consulte tabIndex (Button.tabIndex property), tabIndex (MovieClip.tabIndex property) e tabIndex (TextField.tabIndex property) em ActionScript 2.0 Language Reference. ■ O Flash Player aumentou a segurança dos arquivos locais; agora há mais segurança quando os arquivos SWF são executados no disco rígido. Para obter informações sobre segurança de arquivos locais, consulte “Sobre segurança do arquivo local e o Flash Player” na página 709. ■ Usando o código ActionScript, você pode usar a API Drawing (API de desenho) para controlar o estilo de linhas dos traços desenhados. Para obter informações sobre novos estilos de linha, consulte “Usando estilos de linha” na página 574. ■ Usando o código ActionScript, você poderá usar a API Drawing para criar gradientes mais complexos com os quais preencherá as formas. Para obter informações sobre preenchimentos de gradiente, consulte “Usando preenchimentos de gradiente complexos” na página 573. ■ Você pode usar o código ActionScript para aplicar muitos filtros a objetos no Stage (como instâncias de clipe de filme). Para obter informações sobre filtros e o ActionScript, consulte “Trabalhando com filtros usando ActionScript” na página 534. Novidades do ActionScript 2.0 e do Flash 8 21 ■ Para fazer o upload dos arquivos para um servidor, use as APIs FileReference e FileReferenceList. Para obter mais informações, consulte “Sobre upload e download de arquivos” na página 674. ■ Você pode usar o código ActionScript para acessar meios novos e avançados de aplicar e manipular cores. Para obter mais informações, consulte “Definindovalores de cores” na página 599 e ColorTransform (flash.geom.ColorTransform) em ActionScript 2.0 Language Reference. ■ Foram feitos diversos aprimoramentos no texto, incluindo novas opções, propriedades e parâmetros nas classes TextField e TextFormat. Para obter mais informações, consulte TextField e TextFormat em ActionScript 2.0 Language Reference. ■ Para acessar os recursos avançados de eliminação de serrilhado (FlashType), use o código ActionScript. Para obter mais informações, consulte “Sobre a renderização de fontes e texto sem serrilhado” na página 430. ■ Quando testar o aplicativo, você poderá excluir os arquivos ASO. Selecione Control (Controlar) > Delete ASO files (Excluir arquivos ASO) ou Control > Delete ASO files e Test Movie (Testar filme) na ferramenta de criação. Para obter informações, consulte “Usando arquivos ASO” na página 298. Para obter uma lista de classes, elementos de linguagem, métodos e propriedades específicas adicionadas ao ActionScript 2.0 no Flash 8, consulte “Acréscimos à linguagem ActionScript” na página 22. Acréscimos à linguagem ActionScript Esta seção lista acréscimos aos elementos e classes da linguagem ActionScript novos ou alterados no Flash 8. As classes e os elementos de linguagem a seguir são novos acréscimos ao Flash Player 8 ou passaram a ter suporte recentemente nesse programa. As classes a seguir foram adicionadas ao ActionScript 2.0 no Flash 8: ■ A classe BevelFilter (do pacote flash.filters) permite a adição de efeitos de chanfro a objetos. ■ A classe BitmapData (do pacote flash.display) permite a criação e a manipulação de imagens de bitmap transparentes ou opacas dimensionadas arbitrariamente. ■ A classe BitmapFilter (do pacote flash.display) é uma classe base para efeitos de filtro. ■ A classe BlurFilter permite a aplicação de embaçamentos a objetos no Flash. ■ A classe ColorMatrixFilter (do pacote flash.filters) permite a aplicação de transformações a cores ARGB e valores alfa. ■ A classe ColorTransform (do pacote flash.geom) permite o ajuste de valores de cores em clipes de filme. A classe Color é obsoleta em relação a esta classe. 22 Novidades do ActionScript no Flash 8 ■ A classe ConvolutionFilter (do pacote flash.filters) permite a aplicação de efeitos de filtro de torção de matriz. ■ A classe DisplacementMapFilter (do pacote flash.filters) permite o uso de valores em pixels de um objeto BitmapData para o deslocamento de um objeto. ■ A classe DropShadowFilter (do pacote flash.filters) permite a adição de sombreamentos a objetos. ■ A classe ExternalInterface (do pacote flash.external) permite que você se comunique usando o ActionScript com o recipiente do Flash Player (o sistema que contém o aplicativo Flash, como um navegador com JavaScript, ou o aplicativo desktop). ■ A classe FileReference (do pacote flash.net ) permite o upload e o download de arquivos entre o computador do usuário e um servidor. ■ A classe FileReferenceList (do pacote flash.net) permite a seleção de um ou mais arquivos para upload. ■ A classe GlowFilter (do pacote flash.filters) permite a adição de efeitos de brilho a objetos. ■ A classe GradientBevelFilter (do pacote flash.filters) permite a adição de chanfros gradientes a objetos. ■ A classe GradientGlowFilter (do pacote flash.filters) permite a adição de efeitos de brilho gradiente a objetos. ■ A classe IME (da classe System) permite a manipulação do IME (Input Method Editor, Editor de método de entrada) do sistema operacional no Flash Player. ■ A classe Locale (do pacote mx.lang) permite o controle do modo de exibição de texto multilíngüe em um arquivo SWF. ■ A classe Matrix (do pacote flash.geom) representa uma matriz de transformação que determina como mapear pontos de um espaço de coordenada para o outro. ■ O objeto Point (do pacote flash.geom) representa um local em um sistema de coordenadas bidimensional, onde x representa o eixo horizontal e y representa o eixo vertical. ■ A classe Rectangle (do pacote flash.geom) permite a criação e a modificação de objetos Rectangle. ■ A classe TextRenderer (do pacote flash.text) oferece funcionalidade para fontes incorporadas sem serrilhado. ■ A classe Transform (do pacote flash.geom) coleta dados sobre transformações de cores e manipulações de coordenadas aplicadas a uma instância MovieClip. N O T A No Flash 8 foi adicionado suporte oficial para a classe AsBroadcaster. Novidades do ActionScript 2.0 e do Flash 8 23 Os novos elementos, métodos e funções da linguagem adicionados a classes existentes no ActionScript incluem: ■ A função global showRedrawRegions permite que o player do depurador indique as regiões da tela que estão sendo redesenhadas (ou seja, regiões problemáticas que estão sendo atualizadas). A função faz o player mostrar o que foi redesenhado, mas não permite que você controle as regiões de redesenho. ■ A propriedade blendMode da classe Button, que define o modo de mistura para a instância do botão. ■ A propriedade cacheAsBitmap da classe Button, que permite o cache do objeto como representação interna de bitmap da instância. ■ A propriedade filters da classe Button, que é um array indexado que contém cada objeto filtro associado ao botão. ■ A propriedade scale9Grid da classe Button, que é a região retangular que define nove regiões de dimensionamento para a instância. ■ A propriedade hasIME da classe System.capabilities, que indica se o sistema possui um IME instalado. ■ A propriedade getUTCYear da classe Date, que retorna o ano dessa data, de acordo com a hora universal. ■ A constante ALT da classe Key. ■ O método isAccessible() da classe Key retorna um valor booleano que indica se a última tecla pressionada pode ser acessada por outros arquivos SWF, dependendo das restrições de segurança. ■ O manipulador de eventos onHTTPStatus da classe LoadVars retorna o código de status retornado do servidor (por exemplo, o valor 404 para página não encontrada). Para obter mais informações, consulte onHTTPStatus (LoadVars.onHTTPStatus handler) em ActionScript 2.0 Language Reference. ■ O método attachBitmap() da classe MovieClip, que anexa uma imagem de bitmap a um clipe de filme. Para obter mais informações, consulte BitmapData (flash.display.BitmapData) em ActionScript 2.0 Language Reference. ■ O método beginBitmapFill() da classe MovieClip, que preenche um clipe de filme com uma imagem de bitmap. ■ Os parâmetros spreadMethod, interpolationMethod e focalPointRatio do método beginGradientFill() da classe MovieClip. Esse método preenche uma área de desenho com uma imagem de bitmap, e o bitmap pode ser repetido ou colocado lado a lado para preencher a área. 24 Novidades do ActionScript no Flash 8 ■ A propriedade blendMode da classe MovieClip, que permite a definição do modo de mistura para a instância. ■ A propriedade cacheAsBitmap da classe MovieClip, que permite o cache do objeto como uma representação interna de bitmap da instância. ■ A propriedade filters da classe MovieClip, que é um array indexado que contém cada objeto filtro associado no momento à instância. ■ O método getRect() da classe MovieClip, que retorna propriedades que são os valores de coordenada mínimo e máximo da instância especificada. ■ O método lineGradientStyle() da classe MovieClip, que especifica um estilo de linha gradiente que o Flash usa quando desenha um caminho. ■ Os parâmetros pixelHinting, noScale, capsStyle, jointStyle e miterLimit do método lineStyle() da classe MovieClip. Esses parâmetros especificam tipos de estilos de linha que você pode usar ao desenhar linhas. ■ A propriedade opaqueBackground da classe MovieClip, que define a cor de fundo opaca (não transparente) do clipe de filme como a cor que o valor hexadecimal RGB especifica. ■ A propriedade scale9Grid da classe MovieClip, que é a região retangular que define nove regiões de dimensionamento para a instância. ■ A propriedade scrollRect da classe MovieClip, que permite quevocê role rapidamente o conteúdo do clipe de filme e que a janela exiba um conteúdo maior. ■ A propriedade transform da classe MovieClip, que permite configurações em relação aos limites de matriz, transformação de cores e pixels de um clipe de filme. Para obter mais informações, consulte Transform (flash.geom.Transform) em ActionScript 2.0 Language Reference. ■ O parâmetro status da classe MovieClipLoader. O manipulador de eventos onLoadComplete retorna o código de status retornado do servidor (por exemplo, o valor 404 para página não encontrada). Para obter mais informações, consulte onLoadComplete (MovieClipLoader.onLoadComplete event listener) em ActionScript 2.0 Language Reference. ■ O manipulador de eventos onLoadError da classe MovieClipLoader é chamado quando um arquivo carregado com MovieClipLoader.loadClip() não pode ser carregado. ■ O parâmetro secure do método SharedObject.getLocal() determina se o acesso a esse objeto compartilhado se restringe a arquivos SWF transmitidos por uma conexão HTTPS. Para obter mais informações, consulte getLocal (SharedObject.getLocal method) em ActionScript 2.0 Language Reference. ■ A constante ID3 da classe Sound. Novidades do ActionScript 2.0 e do Flash 8 25 ■ A propriedade sandboxType da classe System.security indica o tipo de sandbox de segurança em que o arquivo SWF de chamada está operando. Para obter mais informações, consulte sandboxType (security.sandboxType property) em ActionScript 2.0 Language Reference. ■ O método parse() da classe TextField.StyleSheet. ■ A propriedade antiAliasType da classe TextField, que define o tipo de eliminação de serrilhado utilizada na instância TextField. ■ A propriedade filters da classe TextField, que é um array indexado que contém cada objeto filtro associado no momento à instância TextField. ■ A propriedade gridFitType da classe TextField, que define o tipo de ajuste à grade usado na instância. Para obter informações sobre ajuste à grade e TextField.gridFitType, consulte gridFitType (TextField.gridFitType property) em ActionScript 2.0 Language Reference. ■ A propriedade sharpness da classe TextField, que estabelece a definição das bordas de glifo para a instância TextField. Se usar essa propriedade, terá de definir o método antiAliasType() como avançado. ■ A propriedade thickness da classe TextField, que define a espessura das bordas de glifo na instância TextField. Se usar essa propriedade, terá de definir o método antiAliasType() como avançado. ■ O valor justify da propriedade align da classe TextFormat, que permite a justificação de um parágrafo específico. ■ A propriedade indent da classe TextFormat, que permite o uso de valores negativos. ■ A propriedade kerning da classe TextFormat, que permite a ativação ou desativação do kerning para o objeto TextFormat. ■ A propriedade leading da classe TextFormat, que permite o uso de entrelinhamento negativo, ou seja, que o espaço entre as linhas seja inferior à altura do texto. Isso permite que você coloque linhas de texto juntas nos aplicativos. ■ A propriedade letterSpacing da classe TextFormat, que permite a especificação da quantidade de espaço distribuída uniformemente entre os caracteres. ■ A propriedade _alpha da classe Video, que é a quantidade especificada de transparência para o objeto vídeo. ■ A propriedade _height da classe Video, que indica a altura da instância do vídeo. ■ A propriedade _name da classe Video, que indica o nome de instância do vídeo. ■ A propriedade _parent da classe Video, que indica a instância ou objeto de clipe de vídeo que contém a instância do vídeo. 26 Novidades do ActionScript no Flash 8 ■ A propriedade _rotation da classe Video, que permite a definição do valor de rotação da instância do vídeo em graus. ■ A propriedade _visible da classe Video, que permite a definição da visibilidade de uma instância de vídeo. ■ A propriedade _width da classe Video, que permite a definição da largura da instância do vídeo. ■ A propriedade _x da classe Video, que permite a definição da coordenada x da instância do vídeo. ■ A propriedade _xmouse da classe Video, que permite a definição da coordenada x da posição do ponteiro do mouse. ■ A propriedade _xscale da classe Video, que permite a definição do percentual de dimensionamento horizontal da instância do vídeo. ■ A propriedade _y da classe Video, que permite a definição da coordenada y da instância do vídeo. ■ A propriedade _ymouse da classe Video, quer permite a definição da coordenada y da posição do ponteiro do mouse. ■ A propriedade _yscale da classe Video, que permite a definição do percentual de dimensionamento vertical da instância do vídeo. ■ O manipulador de eventos onHTTPStatus da classe XML retorna o código de status retornado do servidor (por exemplo, o valor 404 para página não encontrada). Para obter mais informações, consulte onHTTPStatus (XML.onHTTPStatus handler) em ActionScript 2.0 Language Reference. ■ A propriedade localName da classe XMLNode, que retorna o nome completo do objeto nó XML (incluindo o prefixo e o nome local). ■ A propriedade namespaceURI da classe XMLNode, que lê o URI do namespace para o qual o prefixo do nó XML resolve. Para obter mais informações, consulte namespaceURI (XMLNode.namespaceURI property) em ActionScript 2.0 Language Reference. ■ A propriedade prefix da classe XMLNode, que lê o prefixo do nome do nó. ■ O método getNamespaceForPrefix() da classe XMLNode, que retorna o URI do namespace associado ao prefixo especificado para o nó. ■ O método getPrefixForNamespace da classe XMLNode, que retorna o prefixo associado a um URI de namespace especificado para o nó. Novidades do ActionScript 2.0 e do Flash 8 27 Sobre elementos de linguagem obsoletos Alguns elementos de linguagem estão obsoletos no Flash Player 8. Para obter uma lista dos elementos de linguagem obsoletos e alternativas para uso no Flash Player 8, consulte as seções a seguir do ActionScript 2.0 Language Reference: ■ Deprecated Class summary ■ Deprecated Function summary ■ Deprecated Property summary ■ Deprecated Operator summary Alterações de edição do ActionScript O editor do ActionScript no painel Actions e na janela Script foi atualizado de várias maneiras para ficar mais eficiente e fácil de usar do que nas versões anteriores da ferramenta. Essas alterações são resumidas nesta seção. View hidden characters (Exibir caracteres ocultos) Agora você pode usar o menu pop-up Options (Opções) dos painéis Script, Debugger (Depurador) e Output (Saída) para exibir ou ocultar caracteres quando escrever arquivos de script no painel Actions ou na janela Script. Para obter informações sobre esse recurso, consulte “Exibindo caracteres ocultos” na página 57. Script assist added to Actions panel (Script assist adicionado ao painel Actions) Nas versões anteriores do Flash, você podia trabalhar no painel Actions tanto no modo normal, em que você preenchia opções e parâmetros para criar código, quanto no modo especialista, em que você adicionava comandos diretamente ao painel Script. Essas opções não estavam disponíveis no Flash MX 2004 e no Flash MX Professional 2004. No entanto, no Flash Basic 8 e no Flash Professional 8, você pode trabalhar no modo Script Assist, que é semelhante ao modo normal e muito mais eficiente que ele. Para obter informações sobre o modo Script Assist, consulte Capítulo 13, “Criando ActionScript com o Script Assist” em Usando o Flash. Para ver um tutorial sobre o Script Assist, consulte o Capítulo 13, “Criando um evento startDrag/stopDrag com o Script Assist” do manual Usando o Flash. 28 Novidades do ActionScript no Flash 8 Reload modified files (Recarregar arquivos modificados) Você pode recarregar os arquivos de script modificados quando trabalhar em um aplicativo. É exibida uma mensagem de aviso, solicitando o recarregamento dos arquivos de script modificados associados ao aplicativo em que você está trabalhando. Esserecurso é especialmente vantajoso para equipes que trabalham simultaneamente em aplicativos. Ele ajuda a evitar o trabalho com scripts desatualizados ou que versões mais recentes de um script acabem sendo substituídas. Se um arquivo de script tiver sido movido ou excluído, uma mensagem de aviso será exibida e solicitará o salvamento dos arquivos conforme necessário. Para obter mais informações, consulte “Sobre as preferências do ActionScript” na página 44. Alterações no modelo de segurança para arquivos SWF instalados localmente O Flash Player 8 possui um modelo de segurança novo e aperfeiçoado por meio do qual os aplicativos Flash e os arquivos SWF de um computador local podem se comunicar com a Internet e o sistema de arquivos local, em vez de serem executados de um servidor remoto da Web. Ao desenvolver um aplicativo Flash, você precisa indicar se um arquivo SWF pode se comunicar com uma rede ou com um sistema de arquivos local. Nas versões anteriores do Flash Player, os arquivos SWF locais podiam interagir com outros arquivos SWF e carregar dados de qualquer computador remoto ou local sem configurar definições de segurança. No Flash Player 8, um arquivo SWF não pode fazer conexões com o sistema de arquivos local e a rede (como a Internet) no mesmo aplicativo sem fazer uma configuração de segurança. Isso é para sua segurança. Dessa forma, um arquivo SWF não pode ler arquivos no seu disco rígido e depois enviar o conteúdo deles pela Internet. A restrição de segurança afeta todo o conteúdo implantado localmente, seja um conteúdo herdado (um arquivo FLA criado em uma versão anterior do Flash) ou criado no Flash 8. Usando o Flash MX 2004 ou uma ferramenta de criação anterior, você pode testar um aplicativo Flash que seja executado localmente e também acesse a Internet. No Flash Player 8, esse aplicativo agora solicita permissão ao usuário para se comunicar com a Internet. N O T A Nesta descrição, um arquivo SWF local é um arquivo SWF instalado localmente no computador de um usuário (e não disponibilizado a partir de um site) e não inclui arquivos de projetor (EXE). Alterações no modelo de segurança para arquivos SWF instalados localmente 29 Quando você testa um arquivo no disco rígido, são necessárias várias etapas para determinar se ele é um documento local confiável (seguro) ou um documento potencialmente não-confiável (sem segurança). Se você criar o arquivo no ambiente de criação do Flash (por exemplo, quando selecionar Control > Test Movie), seu arquivo será considerado confiável, pois ele se encontra no ambiente de teste. No Flash Player 7 e anteriores, os arquivos SWF locais tinham permissões para acessar o sistema de arquivos local e a rede. No Flash Player 8, os arquivos SWF locais podem ter três níveis de permissão: ■ Access the local file system only (Acessar somente o sistema de arquivos local), o nível padrão. O arquivo SWF local pode ser lido no sistema de arquivos local e em caminhos de rede de convenção universal de atribuição de nomes (UNC, Universal Naming Convention) e não pode se comunicar com a Internet. ■ Access the network only (Acessar somente a rede). O arquivo SWF local pode acessar somente a rede (como a Internet) e não o sistema de arquivos local onde o arquivo SWF está instalado. ■ Access to both the local file system and the network (Acessar o sistemas de arquivos local e a rede). O arquivo SWF local pode ser lido no sistema de arquivos local onde o arquivo está instalado, pode ser lido em qualquer servidor que lhe conceda permissão (e gravar nele) e pode criar vários scripts para outros arquivos SWF na rede ou no sistema de arquivos local que lhe conceda permissão. Para obter mais detalhes sobre cada nível de permissão, consulte “Sobre segurança do arquivo local e o Flash Player” na página 709. Há também pequenas alterações em System.security.allowDomain e aprimoramentos em System.security.allowInsecureDomain. Para obter mais informações sobre segurança de arquivos locais, consulte o Capítulo 17, “Noções básicas de segurança.” 30 Novidades do ActionScript no Flash 8 2 CAPÍTULO 2 Escrevendo e editando o ActionScript 2.0 Ao escrever o código ActionScript no Macromedia Flash Basic 8 ou no Macromedia Flash Professional 8, use o painel Actions (Ações) ou a janela Script. O painel Actions e a janela Script contêm um editor de código completo (o editor do ActionScript) que inclui referências de código e sinalização por cores, formatação de código, realce de sintaxe, verificação de sintaxe, depuração, números de linha, quebra automática de linha e suporte a Unicode em duas exibições diferentes. Para obter mais informações sobre o editor do ActionScript, consulte “Usando o painel Actions e a janela Script” na página 36. Use um dos dois métodos para escrever o código ActionScript no Flash. Você pode criar scripts que façam parte de seu documento do Flash (ou seja, scripts incorporados ao arquivo FLA) ou criar scripts externos (scripts ou classes armazenadas em arquivos externos). Não é possível usar o painel Actions para criar scripts externos. Use o editor do ActionScript no painel Actions ao criar scripts em um arquivo FLA. O painel Actions contém o editor do ActionScript em um painel Script e ferramentas de suporte para facilitar a criação de scripts. Essas ferramentas incluem a caixa de ferramentas Actions (Ações) que oferece um acesso rápido aos elementos básicos da linguagem ActionScript; o navegador Script que ajuda na navegação por todos os scripts do documento; e o modo Script Assist (Assistência de script) que solicita os elementos necessários para a criação de scripts. Para obter mais informações sobre o painel Actions, consulte “Sobre o painel Actions” na página 37. Para obter mais informações sobre o Script Assist, consulte “Sobre o Script Assist” na página 62. Quando precisar criar um script externo, use o editor do ActionScript na janela Script para criar um novo arquivo do ActionScript. (Você também pode usar o seu editor de texto favorito para criar um arquivo externo do AS.) Na janela Script, o editor do Action Script inclui recursos de assistência a código, como referências de código e sinalização por cores, verificação de sintaxe etc., da mesma forma que no painel Actions. Para obter mais informações sobre a janela Script, consulte “Sobre a janela Script” na página 38. 31 O Flash oferece assistência adicional a scripts através de comportamentos. Os comportamentos são funções predefinidas do ActionScript que você pode anexar a objetos no documento do Flash sem precisar criar o código ActionScript. Para obter mais informações sobre comportamentos, consulte “Sobre comportamentos” na página 65. Para obter mais informações sobre como manipular eventos, consulte as seguintes seções: Sobre o ActionScript e eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Organizando o código ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Usando o painel Actions e a janela Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Sobre o painel Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Sobre a janela Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Sobre a codificação no painel Actions e na janela Script . . . . . . . . . . . . . . . . . . . . . . 39 Sobre recursos do painel Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Sobre comportamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Sobre as configurações de publicação do ActionScript . . . . . . . . . . . . . . . . . . . . . . . 66 Sobre o ActionScript e eventos No Macromedia Flash Basic 8 e no Macromedia Flash Professional 8,o código ActionScript é executado quando ocorre um evento: por exemplo, quando um clipe de filme é carregado, quando um quadro-chave é inserido na timeline ou quando o usuário clica em um botão. Os eventos podem ser ativados pelo usuário ou pelo sistema. Os usuários clicam em botões do mouse e pressionam teclas; o sistema ativa eventos quando condições específicas são atendidas ou quando processos são concluídos (o arquivo SWF é carregado, a timeline alcança um determinado quadro, um elemento gráfico conclui o download etc.). Quando ocorre um evento, você cria um manipulador de eventos para responder ao evento com uma ação. Compreender quando e onde ocorrerão os eventos o ajudará a determinar como e onde você responderá a eles com uma ação e quais ferramentas do ActionScript utilizará em cada caso. Para obter mais informações, consulte “Sobre a criação de scripts para manipular eventos” na página 35. Os eventos podem ser agrupados em várias categorias: eventos de mouse e teclado, que ocorrem quando o usuário interage com seu aplicativo Flash através do mouse e do teclado; eventos de clipe, que ocorrem em clipes de filme; e eventos de quadro, que ocorrem em quadros na timeline. Para obter informações sobre os tipos de scripts que podem ser criados para manipular eventos, consulte “Sobre a criação de scripts para manipular eventos” na página 35. 32 Escrevendo e editando o ActionScript 2.0 Eventos de mouse e teclado Quando o usuário interage com seu aplicativo ou arquivo SWF, ele ativa eventos de mouse e teclado. Por exemplo, quando ele rola sobre um botão, ocorre o evento Button.onRollOver ou on(rollOver); quando ele clica em um botão, o evento Button.onRelease é ativado; se uma tecla do teclado for pressionada, o evento on(keyPress) ocorrerá. Você pode criar um código em um quadro ou anexar scripts a uma instância para manipular esses eventos e adicionar toda a interatividade desejada. Eventos de clipe Em um clipe de filme, você pode reagir a diversos eventos de clipe ativados quando o usuário entra ou sai da cena ou interagir com a cena usando o mouse ou o teclado. Por exemplo, você pode carregar uma imagem externa SWF ou JPG no clipe de filme quando o usuário entrar na cena ou permitir que os movimentos do mouse do usuário reposicionem elementos na cena. Eventos de quadro Em uma timeline principal ou de clipe de filme, um evento de sistema ocorre quando a reprodução entra em um quadro-chave — conhecido como evento de quadro. Os eventos de quadro são úteis para ativar ações baseadas na passagem de tempo (que se movem pela timeline) ou para interagir com elementos visíveis no momento no Stage. Quando você adiciona um script a um quadro-chave, ele é executado quando o quadro-chave é alcançado durante uma reprodução. Os script anexados a um quadro são chamados scripts de quadro. Uma das utilizações mais comuns dos scripts de quadro é interromper a reprodução quando um determinado quadro-chave é alcançado. Isso é feito com a função stop(). Selecione um quadro-chave e adicione a função stop() como um elemento de script no painel Actions. Ao interromper arquivo SWF em um quadro-chave específico, você precisará executar uma ação. Você pode, por exemplo, usar um script de quadro para atualizar dinamicamente o valor de um rótulo, gerenciar a interação dos elementos no Stage etc. Sobre o ActionScript e eventos 33 Organizando o código ActionScript É possível anexar scripts a quadros-chave e instâncias de objeto (clipes de filme, botões e outros símbolos). Entretanto, se o seu código ActionScript for distribuído por vários quadros- chave e instâncias de objeto, a depuração de seu aplicativo ficará muito mais difícil. Também será difícil compartilhar o código com diferentes aplicativos Flash. Portanto, é importante que você siga as práticas recomendadas de codificação ao criar o ActionScript no Flash. Em vez de anexar scripts aos elementos, como quadros-chave, clipes de filme e botões, responda aos eventos chamando as funções residentes em um local central. Um dos métodos consiste em anexar o ActionScript incorporado ao primeiro ou ao segundo quadro da timeline, sempre que possível, para que você não precise pesquisar o arquivo FLA a fim de localizar todo o código. Uma prática comum envolve a criação de uma camada denominada actions e a inclusão do código ActionScript nessa camada. Ao anexar todos os scripts a elementos individuais, você incorpora todo o código ao arquivo FLA. Se o compartilhamento de seu código com outros aplicativos do Flash for um requisito importante para você, use a janela Script ou o seu editor de texto favorito para criar um arquivo externo do ActionScript (AS). A criação de um arquivo externo torna o seu código mais modular e bem organizado. À medida que seu projeto for se desenvolvendo, essa conveniência terá cada vez mais utilidade do que você imagina. Um arquivo externo ajudará na depuração e também no gerenciamento do controle de origem caso você esteja trabalhando em um projeto junto com outros desenvolvedores. Para usar o código ActionScript contido em um arquivo externo do AS, crie um script no arquivo FLA e use a instrução #include para acessar o código armazenado externamente, como mostrado no exemplo a seguir: #include "../core/Functions.as" 34 Escrevendo e editando o ActionScript 2.0 Também é possível usar o ActionScript 2.0 para criar classes personalizadas. Armazene as classes personalizadas em arquivos externos do AS e use instruções import em um script para exportar as classes para o arquivo SWF, em vez de usar instruções #include. Para obter mais informações sobre como criar arquivos de classe, consulte “Criando arquivos de classes personalizados” na página 249 e “Sobre a importação de arquivos de classes” na página 254 que tratam da importação desses arquivos. Você também pode usar componentes (clipes de filme predefinidos) para compartilhar código e funcionalidade, como scripts e elementos de UI. Ao criar o ActionScript no Flash 8, use o painel Actions, a janela Script ou ambos. O uso do painel Actions ou da janela Script é determinado pelo modo de resposta aos eventos, pelo modo de organização do código e, principalmente, pelas práticas recomendadas de codificação. Para obter mais informações sobre convenções e práticas recomendadas de codificação, consulte “Convenções de codificação do ActionScript” na página 782. Outros problemas relacionados a fluxo de trabalho e organização de código deverão ser considerados quando você usar comportamentos, que são funções predefinidas do ActionScript (consulte “Sobre comportamentos” na página 65). Sobre a criação de scripts para manipular eventos A criação de código para eventos pode ser categorizada em dois grupos principais: eventos que ocorrem na timeline (em quadros-chave) e eventos que ocorrem em instâncias de objeto (clipes de filme, botões e componentes). A interatividade de seu aplicativo ou arquivo SWF pode ser distribuída pelos vários elementos de seu projeto; você também pode optar por adicionar scripts diretamente a esses elementos. Entretanto, a Macromedia recomenda a não adição direta de scripts a esses elementos (quadros-chave e objetos). Nesse caso, você deve responder aos eventos chamando as funções residentes em um local central, conforme descrito em “Organizando o código ActionScript”. N O T A 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 qualquer alteração em um arquivo externo, será preciso salvá-lo e recompilar os arquivos FLA que o utilizam. Organizando o código ActionScript 35 Usando o painel Actions e a janela Script Para criar scripts em um arquivo FLA, insira o ActionScript diretamente no painel Actions. Para criar scripts externos a serem incluídos ou importados para o seu aplicativo, você pode usar a janela Script (File [Arquivo] > New
Compartilhar