apostila adobe as3

758
Programação do ADOBE ® ACTIONSCRIPT ® 3.0

Upload: cleutonpam

Post on 26-Nov-2015

31 views

Category:

Documents


1 download

TRANSCRIPT

  • Programao do ADOBE ACTIONSCRIPT 3.0

  • Copyright 2008 Adobe Systems Incorporated. Todos os direitos reservados.Programao do ActionScript 3.0Se distribudo com o software que inclui um contrato de usurio final, este guia, juntamente com o software nele descrito, estar sujeito licena, podendo ser usado ou copiado apenas de acordo com os termos dessa licena. Exceto conforme permitido por essa licena, nenhuma parte deste guia pode ser reproduzida, armazenada em um sistema de recuperao ou transmitida, em nenhuma forma ou meio eletrnico, mecnico, de gravao, ou semelhante, sem a permisso prvia por escrito da Adobe Systems Incorporated. Observe que o contedo deste guia est protegido por leis de direitos autorais, mesmo que no seja distribudo com o software que inclui um contrato de licena de usurio final.O contedo deste guia foi desenvolvido apenas para fins informativos, est sujeito a alteraes sem aviso prvio e no deve ser considerado um compromisso firmado pela Adobe Systems Incorporated. A Adobe Systems Incorporated no se responsabiliza por erros ou imprecises que possam aparecer no contedo informativo deste guia.Lembre-se de que os desenhos ou imagens existentes e cogitados para incluso em projetos podem estar protegidos por leis de direitos autorais.. A incorporao no autorizada desse material em um novo trabalho pode ser considerada uma violao dos direitos autorais do respectivo detentor. Certifique-se de obter a permisso necessria do detentor em questo.Todas as referncias a nomes de empresas em modelos de amostra so apenas para fins demonstrativos e no tm o objetivo de fazer aluses a nenhuma organizao real.Adobe, the Adobe logo, Adobe AIR, ActionScript, Flash, Flash Lite, Flex, Flex Builder, MXML, and Pixel Bender are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.ActiveX and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. Macintosh is a trademark of Apple Inc., registered in the United States and other countries. Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.All other trademarks are the property of their respective owners. This product includes software developed by the Apache Software Foundation (http://www.apache.org/).MPEG Layer-3 audio compression technology licensed by Fraunhofer IIS and Thomson Multimedia (http://www.mp3licensing.com)Speech compression and decompression technology licensed from Nellymoser, Inc. (www.nellymoser.com).Video compression and decompression is powered by On2 TrueMotion video technology. 1992-2005 On2 Technologies, Inc. All Rights Reserved. http://www.on2.com.This product includes software developed by the OpenSymphony Group (http://www.opensymphony.com/).This product contains either BSAFE and/or TIPEM software by RSA Security, Inc.

    Sorenson Spark video compression and decompression technology licensed from Sorenson Media, Inc.Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USANotice to U.S. government end users. The software and documentation are Commercial Items, as that term is defined at 48 C.F.R. 2.101, consisting of Commercial Computer Software and Commercial Computer Software Documentation, as such terms are used in 48 C.F.R. 12.212 or 48 C.F.R. 227.7202, as applicable. Consistent with 48 C.F.R. 12.212 or 48 C.F.R. 227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250 ,and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference.

  • iii

    Contedo

    Captulo 1: Sobre este manualUso deste manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Acesso documentao do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Recursos de aprendizagem do ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Captulo 2: Introduo ao ActionScript 3.0Sobre o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Vantagens do ActionScript 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Novidades do ActionScript 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    Compatibilidade com verses anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    Captulo 3: Introduo do ActionScriptFundamentos de programao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    Trabalho com o objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Elementos de programa comuns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Exemplo: Pea de portflio de animao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    Criao de aplicativos com o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    Criao de suas prprias classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    Exemplo: Criao de um aplicativo bsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    Execuo de exemplos subseqentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    Captulo 4: Linguagem e sintaxe do ActionScriptViso geral da linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    Objetos e classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    Pacotes e espaos para nomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    Variveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    Condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    Repetio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    Captulo 5: Programao orientada a objetos no ActionScriptNoes bsicas de programao orientada a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    Herana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    Tpicos avanados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    Exemplo: GeometricShapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    Captulo 6: Trabalho com datas e horasNoes bsicas de data e hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

    Gerenciamento de datas de calendrio e horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

  • ivPROGRAMAO DO ACTIONSCRIPT 3.0Contedo

    Controle de intervalos de tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

    Exemplo: relgio analgico simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    Captulo 7: Trabalho com strings Noes bsicas de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    Criao de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

    A propriedade length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    Trabalho com caracteres em strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

    Comparao de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

    Obteno de representaes de strings de outros objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

    Concatenao de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

    Localizao de substrings e padres em strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

    Converso de strings entre maisculas e minsculas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    Exemplo: arte ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    Captulo 8: Trabalho com matrizesNoes bsicas sobre matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

    Matrizes indexadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

    Matrizes associativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    Matrizes multidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

    Clonagem de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    Tpicos avanados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

    Exemplo: lista de reproduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

    Captulo 9: Manipulao de errosNoes bsicas da manipulao de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

    Tipos de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    Manipulao de erros no ActionScript 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

    Trabalho com as verses de depurador do Flash Player e do AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

    Manipulao de erros sncronos em um aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    Criao de classes de erros personalizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    Resposta a eventos e status de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

    Comparao das classes Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

    Exemplo: Aplicativo CustomErrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

    Captulo 10: Uso de expresses regularesNoes bsicas de expresses regulares: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

    Sintaxe da expresso regular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    Mtodos para usar expresses regulares com strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

    Exemplo: Um analisador Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

    Captulo 11: Trabalho com XMLNoes bsicas sobre XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

    A abordagem E4X em relao ao processamento de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

    Objetos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

    Objetos XMLList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

    Inicializao de variveis XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

    Montagem e transformao de objetos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

  • vPROGRAMAO DO ACTIONSCRIPT 3.0Contedo

    Como percorrer estruturas XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

    Uso de espaos para nomes XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

    Converso de tipo XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

    Leitura de documentos XML externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    Exemplo: carregamento de dados RSS a partir da Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

    Captulo 12: Manipulao de eventosNoes bsicas sobre a manipulao de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

    Como a manipulao de eventos do ActionScript 3.0 diferente das verses anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

    O fluxo de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

    Objetos de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

    Ouvintes de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

    Exemplo: Alarm Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

    Captulo 13: Programao de exibioNoes bsicas sobre a programao de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

    Principais classes de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

    Vantagens da abordagem da lista de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

    Trabalho com os objetos de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

    Manipulao de objetos de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    Animao de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

    Carregamento dinmico do contedo da exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

    Exemplo: SpriteArranger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

    Captulo 14: Uso de objetos visuaisNoes bsicas do uso da API de desenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

    Compreenso da classe Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

    Desenho de linhas e curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

    Desenho de formas utilizando os mtodos incorporados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

    Criao de linhas e preenchimentos gradientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

    Uso da classe Math com mtodos de desenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

    Animao com a API de desenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

    Exemplo: Gerador visual algortmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

    Uso avanado da API de desenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

    Caminhos de desenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

    Definio de regras de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

    Uso de classes de dados grficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

    Sobre o uso de drawTriangles() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

    Captulo 15: Trabalho com geometriaNoes bsicas de geometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

    Uso de objetos Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

    Uso de objetos Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

    Uso de objetos Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

    Exemplo: Aplicao de uma transformao de matriz em um objeto de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

  • viPROGRAMAO DO ACTIONSCRIPT 3.0Contedo

    Captulo 16: Filtro de objetos de exibioNoes bsicas sobre filtragem de objetos de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

    Criao e aplicao de filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

    Filtros de exibio disponveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

    Exemplo: Filter Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

    Captulo 17: Trabalho com sombreadores Pixel BenderNoes bsicas de sombreadores Pixel Bender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

    Carregamento ou incorporao de um sombreador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

    Acesso aos metadados do sombreador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

    Especificao de valores de entrada e de parmetro de sombreador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

    Uso de um sombreador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

    Captulo 18: Trabalho com clipes de filmeNoes bsicas de clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

    Trabalho com objetos MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    Controle de reproduo de clipe de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    Criao de objetos MovieClip com o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

    Carregamento de um arquivo SWF externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

    Exemplo: RuntimeAssetsExplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

    Captulo 19: Trabalho com interpolaes de movimentoNoes bsicas de interpolaes de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

    Cpia de scripts de interpolaes de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    Incorporao de scripts de interpolaes de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

    Descrio da animao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

    Adio de filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

    Associao de uma interpolao de movimento com seus objetos de exibio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

    Captulo 20: Trabalho com cinemtica inversaNoes bsicas de cinemtica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

    Viso geral da animao de armaduras IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

    Obteno de informaes sobre uma armadura IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

    Ocorrncia de IKMover e limitao de seu movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

    Movimentao de uma armadura IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

    Uso de eventos IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

    Captulo 21: Trabalho com textoNoes bsicas do trabalho com texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

    Uso da classe TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

    Uso do Mecanismo de texto do Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

    Captulo 22: Trabalho com bitmapsNoes bsicas do trabalho com bitmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

    Classes Bitmap e BitmapData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488

    Manipulao de pixels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

    Cpia de dados de bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

    Texturas com funes de rudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

  • viiPROGRAMAO DO ACTIONSCRIPT 3.0Contedo

    Rolagem de bitmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

    Benefcios do mapeamento mip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495

    Exemplo: Lua giratria animada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496

    Captulo 23: Trabalho em 3D (trs dimenses)Noes bsicas de 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

    Noes bsicas sobre os recursos 3D do Flash Player e o runtime do AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

    Criao e movimentao de objetos 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

    Projeo de objetos 3D em uma exibio 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512

    Execuo de transformaes 3D complexas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

    Uso de tringulos para obter efeitos 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519

    Captulo 24: Trabalho com vdeoNoes bsicas sobre vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527

    Noes bsicas sobre formatos de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

    Noes bsicas sobre a classe Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532

    Carregamento de arquivos de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532

    Controle da reproduo de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533

    Uso de tela cheia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535

    Acelerao de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539

    Arquivos de vdeo em fluxo contnuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540

    Noes bsicas sobre pontos de sinalizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541

    Criao de mtodos de retorno de chamada para metadados e pontos de sinalizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542

    Uso de pontos de sinalizao e metadados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547

    Captura da entrada da cmera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

    Envio de vdeo para um servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562

    Tpicos avanados sobre arquivos FLV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562

    Exemplo: Jukebox de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563

    Captulo 25: Trabalho com somNoes bsicas do trabalho com som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569

    Compreenso da arquitetura do som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571

    Carregamento de arquivos de som externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572

    Trabalho com sons incorporados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574

    Trabalho com arquivos de fluxo de som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

    Trabalho com udio gerado dinamicamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

    Reproduo de sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578

    Consideraes sobre segurana ao carregar e reproduzir sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582

    Controle do volume e do panorama do som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583

    Trabalho com metadados de som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

    Acesso a dados de som brutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585

    Captura de entrada do som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589

    Exemplo: Podcast Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

    Captulo 26: Captura da entrada do usurioNoes bsicas sobre a entrada do usurio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

    Captura da entrada do teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601

  • viiiPROGRAMAO DO ACTIONSCRIPT 3.0Contedo

    Captura da entrada do mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

    Exemplo: WordSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607

    Captulo 27: Rede e comunicaoNoes bsicas de rede e comunicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611

    Trabalho com dados externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614

    Conexo com outras ocorrncias do Flash Player e AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619

    conexes de soquete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624

    Armazenamento de dados locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628

    Trabalho com arquivos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630

    Exemplo: Criao de um cliente Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644

    Exemplo: Upload e download de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647

    Captulo 28: Ambiente do sistema clienteNoes bsicas do ambiente do sistema cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653

    Uso da classe System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655

    Uso da classe Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656

    Uso da classe ApplicationDomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657

    Uso da classe IME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659

    Exemplo: Deteco de capacidades do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664

    Captulo 29: Copiar e colarNoes bsicas de copiar e colar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668

    Leitura e gravao na rea de transferncia do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668

    Formatos de dados da rea de transferncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669

    Captulo 30: Impresso Noes bsicas de impresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674

    Impresso de uma pgina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675

    Tarefas do Flash Player e do AIR e impresso do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676

    Configurao de tamanho, escala e orientao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

    Exemplo: Impresso de vrias pginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680

    Exemplo: Escala, corte e resposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682

    Captulo 31: Uso da API externaNoes bsicas de uso da API externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685

    Requisitos e vantagens da API externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687

    Uso da classe ExternalInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688

    Exemplo: uso da API externa em um continer de pgina da Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692

    Exemplo: uso da API externa em um continer ActiveX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698

    Captulo 32: Segurana do Flash PlayerViso geral da segurana do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704

    Caixas de proteo de segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706

    Controles de permisso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708

    Restrio de APIs de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715

    Segurana de modo de tela cheia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717

    Carregamento de contedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718

  • ixPROGRAMAO DO ACTIONSCRIPT 3.0Contedo

    Cross-scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721

    Acesso mdia carregada como dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724

    Carregamento de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727

    Carregamento de contedo incorporado de arquivos SWF importados em um domnio de segurana . . . . . . . . . . . . . . . . . 729

    Trabalho com contedo legado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730

    Configurao de permisses de LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730

    Controle do acesso URL de sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731

    Objetos compartilhados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732

    Acesso a cmera, microfone, rea de transferncia, mouse e teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734

    ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735

  • 1Captulo 1: Sobre este manual

    Este manual fornece informaes bsicas para o desenvolvimento de aplicativos no Adobe ActionScript 3.0. Para entender melhor as idias e as tcnicas descritas, voc deve estar familiarizado com os conceitos gerais de programao, como tipo de dados, variveis, loops e funes. Voc tambm deve compreender os conceitos bsicos de programao orientada a objetos, como classes e herana. Conhecimento anterior do ActionScript 1.0 ou ActionScript 2.0 til, mas no necessrio.

    Uso deste manualOs captulos deste manual esto organizados nos seguintes grupos lgicos para ajud-lo a localizar melhor as reas relacionadas da documentao do ActionScript:

    Este manual tambm contm vrios arquivos de amostra que demonstram os conceitos de programao de aplicativos quanto a classes importantes ou utilizadas normalmente. Os arquivos de amostra so compactados para que se tornem mais fceis de carregar e usar com o Adobe Flash CS4 Professional e podem incluir arquivos delimitadores. Entretanto, o principal cdigo de amostra ActionScript 3.0 puro que pode ser usado em qualquer ambiente de desenvolvimento.

    O ActionScript 3.0 pode ser escrito e compilado de vrias formas, inclusive:

    Com o uso do ambiente de desenvolvimento do Adobe Flex Builder 3

    Com o uso de qualquer editor de texto e um compilador de linha de comando, como aquele fornecido com o Flex Builder 3

    Com o uso da ferramenta de autoria do Adobe Flash CS4 Professional

    Para obter mais informaes sobre ambientes de desenvolvimento do ActionScript , consulte Introduo ao ActionScript 3.0 na pgina 4

    Para compreender as amostras de cdigo neste manual, voc no precisa ter experincia anterior nos ambientes de desenvolvimento integrados para ActionScript, como o Flex Builder ou as ferramentas de autoria do Flash. Entretanto, talvez voc queira fazer referncia na documentao quelas ferramentas para saber como us-las para escrever e compilar o cdigo do ActionScript 3.0 Para obter mais informaes, consulte Acesso documentao do ActionScript na pgina 2.

    Captulos Descrio

    Captulos de 2 a 5 - viso geral da programao do ActionScript

    Discute os principais conceitos do ActionScript 3.0, incluindo sintaxe de linguagem, instrues e operadores e programao orientada a objetos do ActionScript.

    Captulos de 6 a 11 - principais tipos de dados e classes do ActionScript 3.0

    Descreve os tipos de dados de nvel superior no ActionScript 3.0.

    Captulos de 12 a 32 - APIs do Flash Player e do Adobe AIR

    Descreve recursos importantes que so implementados nos pacotes e nas classes especficas do Adobe Flash Player 10 e do Adobe AIR, incluindo manipulao de eventos, trabalho com objetos de exibio e com a lista de exibio, rede e comunicao, entrada e sada de arquivos, interface externa, modelo de segurana de aplicativos e muito mais.

  • 2PROGRAMAO DO ACTIONSCRIPT 3.0Sobre este manual

    Acesso documentao do ActionScriptComo este manual concentra-se na descrio do ActionScript 3.0, que uma linguagem rica e poderosa de programao orientada a objetos, ele no abrange totalmente o processo nem o fluxo de trabalho de desenvolvimento de aplicativos dentro de uma determinada ferramenta ou arquitetura de servidor. Portanto, alm da Programao do ActionScript 3.0, talvez voc queira consultar outras fontes de documentao enquanto projeta, desenvolve, testa e implanta aplicativos do ActionScript 3.0.

    Documentao do ActionScript 3.0Este manual fornece os conceitos da linguagem de programao do ActionScript 3.0 alm de detalhes e amostras da implementao ilustrando importante recursos de linguagem. Entretanto, este manual no uma referncia completa quanto linguagem. Para isso, consulte Referncia dos componentes e da linguagem do ActionScript 3.0, que descreve cada classe, mtodo, propriedade e evento na linguagem. A Referncia de componentes e linguagem do ActionScript 3.0 fornece informaes de referncia detalhadas sobre a linguagem principal, os componentes da ferramenta de autoria do Flash (nos pacotes fl) e as APIs do Flash Player e do Adobe AIR (nos pacotes flash).

    Documentao do FlashSe voc usar a ferramenta de autoria do Flash, talvez queira consultar estes manuais:

    Manual Descrio

    Uso do Flash Descreve como desenvolver aplicativos dinmicos da Web na ferramenta de autoria do Flash.

    Programao do ActionScript 3.0 Descreve a utilizao especfica da linguagem do ActionScript 3.0 e das APIs principais do Flash Player e do Adobe AIR.

    Referncia de componentes e linguagem do ActionScript 3.0 Fornece exemplos de sintaxe, utilizao e cdigo para os componentes da ferramenta de autoria do Flash e para as APIs do ActionScript 3.0.

    Uso dos componentes do ActionScript 3.0 Explica os detalhes do uso de componentes para desenvolvimento de aplicativos desenvolvidos no Flash.

    Desenvolvimento de aplicativos do Adobe AIR com o Flash CS4 Professional

    Descreve como desenvolver e implantar aplicativos do Adobe AIR utilizando o ActionScript 3.0 e a API do Adobe AIR no Flash.

    Aprendizagem do ActionScript 2.0 no Adobe Flash Fornece uma viso geral da sintaxe do ActionScript 2.0 e explica como usar o ActionScript 2.0 quando est trabalhando com diferentes tipos de objetos.

    Referncia de linguagem do ActionScript 2.0 Fornece exemplos de sintaxe, utilizao e cdigo para os componentes da ferramenta de autoria do Flash e para as APIs do ActionScript 2.0.

    Uso dos componentes do ActionScript 2.0 Explica os detalhes de como usar os componentes do ActionScript 2.0 para desenvolvimento de aplicativos criados no Flash.

    Referncia dos componentes e da linguagem do ActionScript 2.0

    Descreve cada componentes disponvel na Arquitetura de componentes da Adobe verso 2, junto com sua API.

    Ampliao do Flash Descreve os objetos, os mtodos e as propriedades disponveis na API JavaScript.

    Introduo ao Flash Lite 2.x Explica como usar o Adobe Flash Lite 2.x para desenvolver aplicativos e fornece exemplos de sintaxe, utilizao e cdigo para os recursos do ActionScript disponveis com o Flash Lite 2.x

    Desenvolvimento de aplicativos do Flash Lite 2.x Explica como desenvolver aplicativos do Flash Lite 2.x.

    Introduo ao ActionScript do Flash Lite 2.x Mostra como desenvolver aplicativos com o Flash Lite 2.x e descreve todos os recursos do ActionScript disponveis para os desenvolvedores do Flash Lite 2.x.

  • 3PROGRAMAO DO ACTIONSCRIPT 3.0Sobre este manual

    Recursos de aprendizagem do ActionScriptAlm do contedo desses manuais, a Adobe fornece artigos, conceitos de design e exemplos no Adobe Developer Center e no Adobe Design Center atualizados regularmente.

    Adobe Developer CenterO Adobe Developer Center o seu recurso para obter informaes atualizadas sobre o ActionScript, artigos sobre desenvolvimento de aplicativos reais e informaes sobre problemas importantes. Consulte o Developer Center em www.adobe.com/devnet/.

    Adobe Design CenterSaiba das novidades em design digital e grficos de movimento. Navegue nos trabalhos dos principais artistas, descubra novas tendncias de design e aprimore suas habilidades com tutoriais, fluxos de trabalho importantes e tcnicas avanadas. Confira duas vezes por ms os tutoriais e artigos recentes, alm de peas de galeria inspiradoras. Consulte o Design Center em www.adobe.com/designcenter/.

    Referncia de linguagem do ActionScript do Flash Lite 2.x Fornece exemplos de sintaxe, utilizao e cdigo para a API do ActionScript 2.0 disponvel no Flash Lite 2.x.

    Introduo ao Flash Lite 1.x Apresenta uma introduo ao Flash Lite 1.x e descreve como testar o contedo utilizando o emulador do Adobe Device Central CS4.

    Desenvolvimento de aplicativos do Flash Lite 1.x Descreve como desenvolver aplicativos para dispositivos mveis utilizando o Flash Lite 1.x.

    Aprendizagem do ActionScript no Flash Lite 1.x Explica como usar o ActionScript em aplicativos do Flash Lite 1.x e descreve todos os recursos do ActionScript disponveis com o Flash Lite 1.x.

    Referncia de linguagem do ActionScript do Flash Lite 1.x Fornece a sintaxe e a utilizao dos elementos do ActionScript disponveis com o Flash Lite 1.x.

    Manual Descrio

  • 4Captulo 2: Introduo ao ActionScript 3.0

    Este captulo fornece uma viso geral do Adobe ActionScript 3.0, a mais recente e revolucionria verso do ActionScript.

    Sobre o ActionScriptO ActionScript a linguagem de programao dos ambientes de tempo de execuo Adobe Flash Player e Adobe AIR. Ele permite interatividade, manipulao de dados e muito mais no contedo e nos aplicativos do Flash, Flex e AIR.

    O ActionScript executado com a AVM (ActionScript Virtual Machine), que faz parte do Flash Player e do AIR. O cdigo do ActionScript em geral compilado no formato de cdigo de bytes (um tipo de linguagem de programao escrita e entendida por computadores) por um compilador, como o criado no Adobe Flash CS4 Professional ou no Adobe Flex Builder ou como o disponvel no Adobe Flex SDK. O cdigo de bytes incorporado aos arquivos SWF, que so executados pelo Flash Player e pelo AIR.

    O ActionScript 3.0 oferece um modelo de programao robusto que parecer familiar aos desenvolvedores com um conhecimento bsico de programao orientada a objetos. Alguns dos recursos principais do ActionScript 3.0 que foram aprimorados em relao verso anterior incluem:

    Uma nova ActionScript Virtual Machine, chamada AVM2, que usa um novo conjunto de instrues de cdigo de bytes e fornece aprimoramentos de desempenho significativos

    Uma base de cdigo de compilador moderna que executa otimizaes mais avanadas do que as verses anteriores do compilador

    Uma API (Interface de programao de aplicativo) expandida e aprimorada, com controle de baixo nvel de objetos e um autntico modelo orientado a objetos

    Uma API XML baseada na especificao de linguagem ECMAScript para XML (E4X) (ECMA-357 edio 2) E4X a extenso de linguagem para ECMAScript que adiciona XML como um tipo de dados nativo da linguagem.

    Um modelo de evento baseado na Especificao de eventos DOM (Document Object Model) nvel 3

    Vantagens do ActionScript 3.0O ActionScript 3.0 vai alm dos recursos de script de suas verses anteriores. Ele foi criado para facilitar a criao de aplicativos altamente complexos com grandes conjuntos de dados e bases de cdigo reutilizveis orientadas a objetos. Embora o ActionScript 3.0 no seja necessrio para o contedo executado no Adobe Flash Player, ele permite melhorias de desempenho que s esto disponveis com a AVM2, a nova mquina virtual. O cdigo do ActionScript 3.0 pode ser executado at 10 vezes mais rpido do que o cdigo do ActionScript existente.

    A verso antiga da AVM1 (ActionScript Virtual Machine) executa os cdigos ActionScript 1.0 e ActionScript 2.0. As verses 9 e 10 do Flash Player oferecem suporte a AVM1 para compatibilidade com contedo existente e herdado de verses anteriores. Para obter mais informaes, consulte Compatibilidade com verses anteriores na pgina 7.

  • 5PROGRAMAO DO ACTIONSCRIPT 3.0Introduo ao ActionScript 3.0

    Novidades do ActionScript 3.0Embora contenha muitas classes e recursos que parecero familiares aos programadores do ActionScript, em termos de arquitetura e conceito, o ActionScript 3.0 diferente de suas verses anteriores. Os aprimoramentos do ActionScript 3.0 incluem novos recursos da linguagem central e uma API do Flash Player melhorada que fornece mais controle sobre objetos de baixo nvel.

    Nota: Os aplicativos do Adobe AIR tambm podem usar as APIs do Flash Player.

    Recursos da linguagem centralA linguagem central define os blocos de construo bsicos da linguagem de programao, como instrues, expresses, condies, loops e tipos. O ActionScript 3.0 contm vrios recursos novos que aceleram o processo de desenvolvimento.

    Excees de tempo de execuoO ActionScript 3.0 relata mais condies de erros que suas verses anteriores. As excees de tempo de execuo so usadas para condies de erro comuns, melhorar a experincia de depurao e permitir o desenvolvimento de aplicativos que manipulam erros de forma robusta. Os erros de tempo de execuo fornecem rastreamentos de pilha anotados com informaes sobre o arquivo de origem e o nmero de linha, ajudando a detectar os erros rapidamente.

    Tipos de tempo de execuoNo ActionScript 2.0, as anotaes de tipo eram basicamente um recurso de desenvolvedor; em tempo de execuo, todos os valores so tipificados dinamicamente. No ActionScript 3.0, as informaes de tipo so preservadas em tempo de execuo e usadas para diversos fins. O Flash Player e o Adobe AIR fazem a verificao de tipos em tempo de execuo, melhorando a segurana de tipos do sistema. As informaes sobre tipo tambm so usadas para retratar variveis em representaes, melhorando o desempenho e reduzindo o uso de memria.

    Classes seladasO ActionScript 3.0 apresenta o conceito de classes seladas. Uma classe selada possui apenas o conjunto fixo de propriedades e mtodos que foram definidos em tempo de compilao e no possvel adicionar outros. Ela permite uma verificao em tempo de compilao mais rgida, resultando em programas mais robustos. Ela tambm melhora o uso de memria por no exigir uma tabela de hash interna para cada ocorrncia de objeto. As classes dinmicas tambm so possveis usando a palavra-chave dynamic. Todas as classes no ActionScript 3.0 so seladas por padro, mas podem ser declaradas para se tornar dinmicas com a palavra-chave dynamic.

    Fechamentos de mtodoO ActionScript 3.0 permite um fechamento de mtodo que lembra automaticamente de sua ocorrncia de objeto original. Esse recurso til para a manipulao de eventos. No ActionScript 2.0, os fechamentos de mtodo no lembravam de qual ocorrncia de objeto tinham sido extrados, gerando um comportamento inesperado quando o fechamento de mtodo era invocado. A classe mx.utils.Delegate era uma soluo conhecida, mas no mais necessria.

    ECMAScript para XML (E4X)O ActionScript 3.0 implementa o ECMAScript para XML (E4X), recentemente padronizado como ECMA-357. O E4X oferece um conjunto fluente de construes de linguagem para manipular XML. Diferentemente das APIs tradicionais de anlise de XML, o XML com E4X funciona como um tipo de dados nativo da linguagem. O E4X simplifica o desenvolvimento de aplicativos que manipulam XML, reduzindo drasticamente a quantidade de cdigo necessria. Para obter mais informaes sobre a implementao do E4X do ActionScript 3.0, consulte Trabalho com XML na pgina 230.

  • 6PROGRAMAO DO ACTIONSCRIPT 3.0Introduo ao ActionScript 3.0

    Para exibir a especificao E4X do ECMA, v para www.ecma-international.org.

    Expresses regularesO ActionScript 3.0 inclui suporte nativo para expresses regulares, o que permite pesquisar e manipular seqncias de caracteres rapidamente. Ele implementa o suporte a expresses regulares conforme definidas na especificao de linguagem ECMAScript (ECMA-262) edio 3.

    Espaos para nomesOs espaos para nomes so semelhantes aos especificadores de acesso tradicionais usados para controlar a visibilidade de declaraes (public, private, protected). Eles funcionam como especificadores de acesso personalizados, que podem ter os nomes que voc escolher. Os espaos para nomes so equipados com um URI (Identificador Universal de Recursos) para evitar colises e tambm so usados para representar nomes para espaos XML no trabalho com E4X.

    Novos tipos primitivosO ActionScript 2.0 tem um nico tipo numrico, Number, um nmero de ponto flutuante de preciso dupla. O ActionScript 3.0 contm os tipos int e uint. O tipo int um inteiro assinado de 32 bits que permite ao cdigo ActionScript aproveitar os rpidos recursos matemticos de inteiros da CPU. O tipo int til para contadores de loop e variveis em que os inteiros so usados. O tipo uint um tipo inteiro de 32 bits no assinado, til para valores de cores RGB, contagens de bytes etc.

    Recursos da API do Flash PlayerAs APIs do Flash Player no ActionScript 3.0 contm vrias classes que permitem controlar objetos em um nvel baixo. A arquitetura da linguagem foi projetada para ser mais intuitiva do que a das outras verses. As novas classes so tantas que no cabe tratar em detalhes aqui, mas as sees a seguir destacam algumas alteraes significativas.

    Nota: Os aplicativos do Adobe AIR tambm podem usar as APIs do Flash Player.

    Modelo de eventos DOM3 O modelo de eventos DOM (Document Object Model) nvel 3 fornece um meio padro de gerar e manipular mensagens de eventos para que os objetos nos aplicativos possam interagir e se comunicar, mantendo seu estado e respondendo a alteraes. Padronizado segundo as Especificaes de eventos DOM nvel 3 do World Wide Web Consortium, este modelo fornece um mecanismo mais claro e eficiente do que os sistemas de eventos disponveis nas verses anteriores do ActionScript.

    Os eventos e eventos de erros esto localizados no pacote flash.events. A estrutura dos componentes Flash usa o mesmo modelo de eventos que a API do Flash Player, por isso o sistema de eventos unificado na plataforma Flash.

    API de lista de exibioA API para acessar a lista de exibio do Flash Player e do Adobe AIR (a rvore que contm os elementos visuais no aplicativo) consiste em classes para trabalhar com primitivas visuais.

    A nova classe Sprite um bloco de construo leve, semelhante classe MovieClip, porm mais apropriada como uma classe base para componentes da UI. A nova classe Shape representa formas de vetor brutas. Essas classes podem ser instanciadas naturalmente com o operador new e atribudas a um pai dinamicamente a qualquer momento.

    O gerenciamento de profundidade agora automtico e incorporado ao Flash Player e ao Adobe AIR, tornando desnecessria a atribuio de nmeros de profundidade. Novos mtodos foram fornecidos para especificar e gerenciar a ordem z de objetos.

  • 7PROGRAMAO DO ACTIONSCRIPT 3.0Introduo ao ActionScript 3.0

    Manipulao de dados e contedo dinmicosO ActionScript 3.contm mecanismos para carregar e manipular ativos e dados no seu aplicativo que so intuitivos e consistentes na API. A nova classe Loader fornece um nico mecanismo para carregar arquivos SWF e ativos de imagem e fornece uma forma de acessar informaes detalhadas sobre o contedo carregado. A classe URLLoader fornece um mecanismo separado para carregar texto e dados binrios em aplicativos orientados a dados. A classe Socket fornece um meio de ler e gravar dados binrios nos soquetes do servidor em qualquer formato.

    Acesso a dados de baixo nvelVarias APIs fornecem acesso de baixo nvel a dados que nunca antes estiveram disponveis no ActionScript. Para dados obtidos por download, a classe URLStream, que implementada por URLLoader, fornece acesso a dados como dados binrios brutos enquanto esto sendo baixados. A classe ByteArray permite otimizar a leitura, a gravao e o trabalho com dados binrios. A nova API Sound fornece controle detalhado de som por meio das classes SoundChannel e SoundMixer. Novas APIs que lidam com segurana fornecem informaes sobre os privilgios de segurana de um arquivo SWF ou contedo carregado, permitindo manipular melhor os erros de segurana.

    Trabalho com textoO ActionScript 3.0 contm um pacote flash.text para todas as APIs relacionadas a texto. A classe TextLineMetrics fornece uma mtrica detalhada para uma linha de texto em um campo de texto; ela substitui o mtodo TextFormat.getTextExtent() no ActionScript 2.0. A classe TextField contm vrios novos mtodos de baixo nvel interessantes que podem fornecer informaes especficas sobre uma linha de texto ou um nico caractere em um campo de texto. Esses mtodos incluem getCharBoundaries(), que retorna um retngulo representando a caixa delimitadora de um caractere, getCharIndexAtPoint(), que retorna o ndice do caractere em um ponto especificado, e getFirstCharInParagraph(), que retorna o ndice do primeiro caractere em um pargrafo. Os mtodos de nvel de linha incluem getLineLength(), que retorna o nmero de caracteres em uma linha de texto especificada, e getLineText(), que retorna o texto da linha especificada. Uma nova classe Font fornece um meio de gerenciar fontes incorporadas em arquivos SWF.

    Compatibilidade com verses anterioresComo sempre, o Flash Player fornece compatibilidade total com contedo publicado em verses anteriores. Qualquer contedo executado em verses anteriores do Flash Player pode ser executado no Flash Player 9 e em verses posteriores. A introduo do ActionScript 3.0 no Flash Player 9, contudo, apresenta alguns desafios de interoperabilidade entre o contedo antigo e o novo executado no Flash Player 9 ou posterior. Esses problemas de compatibilidade incluem os seguinte:

    Um nico arquivo SWF no pode combinar o cdigo do ActionScript 1.0 ou 2.0 com o cdigo do ActionScript 3.0.

    O cdigo do ActionScript 3.0 pode ser carregado em um arquivo SWF escrito no ActionScript 1.0 ou 2.0, mas no pode acessar as variveis e funes do arquivo SWF.

    Os arquivos SWF escritos no ActionScript 1.0 ou 2.0 no podem carregar arquivos SWF escritos no ActionScript 3.0. Isso significa que os arquivos SWF criados no Flash 8 ou no Flex Builder 1.5 ou verses anteriores no podem carregar arquivos SWF do ActionScript 3.0.

    A nica exceo a essa regra que um arquivo SWF do ActionScript 2.0 pode ser substitudo por um arquivo SWF do ActionScript 3.0, contanto que no tenha carregado nada antes em qualquer um de seus nveis. Um arquivo SWF do ActionScript 2.0 pode fazer isso por meio de uma chamada a loadMovieNum(), transmitindo um valor de 0 ao parmetro level.

  • 8PROGRAMAO DO ACTIONSCRIPT 3.0Introduo ao ActionScript 3.0

    Em geral, os arquivos SWF escritos no ActionScript 1.0 ou 2.0 devem ser migrados para trabalhar com os arquivos SWF escritos no ActionScript 3.0. Por exemplo, digamos que voc criou um player de mdia usando o ActionScript 2.0. Ele carrega vrios contedos que tambm foram criados usando o ActionScript 2.0. Se voc criar um novo contedo no ActionScript 3.0, no poder carreg-lo no player de mdia. Ser necessrio migrar o player de vdeo para o ActionScript 3.0.

    Se, no entanto, voc criar um player de mdia no ActionScript 3.0, ele poder executar carregamentos simples do seu contedo do ActionScript 2.0.

    As tabelas a seguir resumem as limitaes das verses anteriores do Flash Player em relao ao carregamento de novo contedo e execuo de cdigo, bem como as limitaes de scripts entre arquivos SWF escritos em verses diferentes do ActionScript.

    Na tabela a seguir, "Funcionalidade com suporte" refere-se ao contedo executado no Flash Player 9 ou posterior. O contedo executado no Flash Player 8 ou anterior s pode ser carregar, exibir, executar e cruzar scripts no ActionScript 1.0 e 2.0.

    Funcionalidade com suporte Flash Player 7 Flash Player 8 Flash Player 9 e 10

    Pode carregar SWFs publicados para 7 e anterior 8 e anterior 9 (ou 10) e anterior

    Contm este AVM AVM1 AVM1 AVM1 e AVM2

    Executa SWFs gravados no ActionScript 1.0 e 2.0 1.0 e 2.0 1.0, 2.0 e 3.0

    Funcionalidade com suporte Contedo criado no ActionScript 1.0 e 2.0 Contedo criado no ActionScript 3.0

    Pode carregar contedo e executar cdigo no contedo criado no

    ActionScript 1.0 e 2.0 apenas ActionScript 1.0, 2.0 e 3.0

    Pode cruzar contedo de script criado no ActionScript 1.0 e 2.0 apenas (ActionScript 3.0 at LocalConnection)

    ActionScript 1.0 e 2.0 at LocalConnection.

    ActionScript 3.0

  • 9Captulo 3: Introduo do ActionScript

    Este captulo foi criado para oferecer uma introduo programao do ActionScript e o conhecimento necessrio para que voc entenda os conceitos e exemplos do resto deste manual. Comearemos com uma discusso sobre os conceitos bsicos de programao, descritos no contexto de sua aplicao ao ActionScript. Tambm abordaremos os fundamentos de como organizar e criar um aplicativo do ActionScript.

    Fundamentos de programaoComo o ActionScript uma linguagem de programao, para conhec-lo, primeiro necessrio compreender alguns conceitos gerais de programao de computador.

    O que os programas de computador fazemEm primeiro lugar, bom saber o que um programa de computador e o que ele faz. Um programa de computador consiste em dois aspectos principais:

    Ele uma srie de instrues ou etapas que o computador deve executar.

    Cada etapa envolve a manipulao de algumas informaes ou dados.

    Em termos gerais, um programa de computador apenas uma srie de comandos passo a passo que voc fornece ao computador e ele executa. Cada comando conhecido como instruo. Como voc ver neste manual, no ActionScript, cada instruo escrita com um ponto-e-vrgula no final.

    Em essncia, tudo o que uma determinada instruo faz em um programa manipular alguns dados que esto armazenados na memria do computador. Em um caso simples, voc pode instruir o computador a adicionar dois nmeros e armazenar o resultado na memria. Em um caso mais complexo, imagine que existe um desenho de um retngulo em um lugar na tela e voc quer escrever um programa a fim de mov-lo para outro lugar. O computador est mantendo controle de determinadas informaes sobre o retngulo (as coordenadas x, y nas quais ele est localizado, sua largura, altura, cor etc.). Cada uma dessas informaes est armazenada em um local na memria do computador. Um programa que move o retngulo para um local diferente deve ter etapas como "alterar a coordenada x para 200; alterar a coordenada y para 150" (ou seja, deve especificar novos valores a serem usados para as coordenadas x e y). claro que o computador faz alguma coisa com esses dados para realmente transformar os nmeros na imagem que aparece na tela; mas, para o nvel de detalhe que nos interessa, basta saber que o processo de "mover um retngulo na tela", na verdade, implica em alterar alguns dados na memria do computador.

    Variveis e constantesComo a programao envolve principalmente a alterao de algumas informaes na memria do computador, preciso encontrar um meio de representar uma informao isolada no programa. Uma varivel um nome que representa um valor na memria do computador. Durante a escrita de instrues para manipular valores, o nome da varivel escrito no lugar do valor; sempre que se deparar com o nome da varivel no seu programa, o computador consultar a memria e usar o valor que encontrar nela. Por exemplo, se voc tiver duas variveis chamadas value1 e value2, cada uma contendo um nmero, para adicionar esses dois nmeros, voc pode escrever a instruo:

    value1 + value2

    Quando executar as etapas, o computador verificar os valores de cada varivel e os adicionar juntos.

  • 10PROGRAMAO DO ACTIONSCRIPT 3.0Introduo do ActionScript

    No ActionScript 3.0, uma varivel consiste em trs partes diferentes:

    O nome da varivel

    O tipo de dados que pode ser armazenado nela

    O valor real armazenado na memria do computador

    Acabamos de ver como o computador usa o nome como alocador de espao para o valor. O tipo de dados tambm importante. Durante a criao de uma varivel no ActionScript, voc especifica o tipo de dados que ela conter; a partir da, as instrues do programa s podem armazenar esse tipo de dados na varivel, e voc pode manipular o valor usando as caractersticas especficas associadas a esse tipo de dados. No ActionScript, a criao de uma varivel (conhecida como declarar a varivel) requer o uso da instruo var:

    var value1:Number;

    Nesse caso, instrumos o computador a criar uma varivel chamada value1, que contm apenas dados Number (Number um tipo de dados especfico definido no ActionScript). Voc tambm pode armazenar um valor na varivel imediatamente:

    var value2:Number = 17;

    No Adobe Flash CS4 Professional, existe outro meio de declarar uma varivel. Durante a colocao de um smbolo de clipe de filme, smbolo de boto ou campo de texto no Palco, voc pode lhe dar um nome de ocorrncia no Inspetor de propriedades. Por baixo do pano, o Flash cria uma varivel com o mesmo nome que o nome de ocorrncia, que voc pode usar no cdigo do ActionScript para fazer referncia a esse item do Palco. Assim, por exemplo, se voc der a um smbolo de clipe de filme no Palco o nome de ocorrncia rocketShip, sempre que usar a varivel rocketShip no cdigo do ActionScript, na verdade, estar manipulando esse clipe de filme.

    Uma constante muito semelhante a uma varivel no sentido de que um nome que representa um valor na memria do computador, com um tipo de dados especfico. A diferena que um valor s pode ser atribudo a uma constante uma nica vez no processamento do aplicativo do ActionScript. Assim que atribudo, o valor da constante o mesmo em todo o aplicativo. A sintaxe para declarar uma constante a mesma que para declarar uma varivel, exceto que voc usa a palavra-chave const em vez da palavra-chave var:

    const SALES_TAX_RATE:Number = 0.07;

    Uma constante til para definir um valor que usado em vrios locais em um projeto e que no alterado sob circunstncias normais. O uso de uma constante em vez de um valor literal torna o cdigo mais legvel. Por exemplo, mais fcil entender a finalidade de uma linha de cdigo que multiplica um preo pela SALES_TAX_RATE, comparado a uma linha de cdigo que multiplica o preo por 0,07. Alm disso, se o valor definido por uma constante tiver de ser alterado e voc usar uma constante que represente esse valor em todo o seu projeto, bastar alterar o valor em um nico lugar (a declarao da constante), em vez de alter-lo em vrios locais como aconteceria se voc usasse valores literais codificados.

    Tipos de dadosNo ActionScript, h vrios tipos de dados que voc pode usar como os tipos de dados da varivel que voc criar. Alguns deles podem ser entendidos como "simples" ou "fundamentais":

    Seqncia de caracteres: um valor textual, como um nome ou o texto do captulo de um livro

    Numrico: o ActionScript 3.0 inclui trs tipos de dados especficos para dados numricos:

    Nmero: qualquer valor numrico, incluindo valores com ou sem uma frao

    int: um inteiro (um nmero inteiro sem uma frao)

    uint: um inteiro "sem sinal", que significa um nmero inteiro que no pode ser negativo

  • 11PROGRAMAO DO ACTIONSCRIPT 3.0Introduo do ActionScript

    Booleano: um valor do tipo verdadeiro ou falso, tal como se uma opo est ativa ou se dois valores so iguais

    Os tipos de dados simples representam uma nica informao: por exemplo, um nico nmero ou uma nica seqncia de texto. Entretanto, a maioria dos tipos de dados definidos no ActionScript poderia ser descrita como tipos de dados complexos, porque representam um conjunto de valores agrupados. Por exemplo, uma varivel com o tipo de dados Date representa um valor nico: um momento no tempo. No entanto, esse valor de data na verdade representado com diversos valores: dia, ms, ano, horas, minutos, segundos etc., que so todos nmeros individuais. Portanto, embora pensemos em uma data como um valor nico (e a tratemos dessa forma, criando uma varivel Date), internamente, o computador a entende como um grupo de diversos valores que, juntos, definem uma nica data.

    A maioria dos tipos de dados embutidos, bem como os definidos pelos programadores, so tipos de dados complexos. Alguns tipos de dados complexos que talvez voc conhea so:

    MovieClip: um smbolo de clipe de filme

    TextField: um campo de texto de entrada ou dinmico

    SimpleButton: um smbolo de boto

    Date: informaes sobre um momento nico no tempo (uma data e hora)

    Duas palavras que, em geral, so usadas como sinnimos de tipos de dados so classe e objeto. Uma classe simplesmente a definio de um tipo de dados; como um modelo para todos os objetos dos tipos de dados, como dizer "todas as variveis do tipo de dados Example tm estas caractersticas: A, B e C. Um objeto, porm, apenas uma ocorrncia real de uma classe; uma varivel cujo tipo de dados MovieClip poderia ser descrita como um objeto MovieClip. Estas so formas diferentes de dizer a mesma coisa:

    O tipo de dados da varivel myVariable Number.

    A varivel myVariable uma ocorrncia de Number.

    A varivel myVariable um objeto Number.

    A varivel myVariable uma ocorrncia da classe Number.

    Trabalho com o objetosO ActionScript conhecido como uma linguagem de programao orientada a objetos. Programao orientada a objetos simplesmente uma abordagem da programao, nada mais do que uma forma de organizar o cdigo em um programa, usando objetos.

    Anteriormente, definimos um programa de computador como uma srie de etapas ou instrues que o computador executa. De forma conceitual, ento, podemos imaginar um programa de computador como uma longa lista de instrues. Entretanto, na programao orientada a objetos, as instrues do programa so divididas em objetos diferentes, ou seja, o cdigo agrupado em blocos de funcionalidade, de forma que tipos relacionados de funcionalidade ou partes relacionadas de informao so agrupados em um nico continer.

    Na verdade, se voc j trabalhou com smbolos no Flash, ento est acostumado a trabalhar com objetos. Imagine que voc definiu um smbolo de clipe de filme (digamos que seja o desenho de um retngulo) e colocou uma cpia dele no Palco. Esse smbolo de clipe de filme tambm (literalmente) um objeto no ActionScript; uma ocorrncia da classe MovieClip.

  • 12PROGRAMAO DO ACTIONSCRIPT 3.0Introduo do ActionScript

    H diversas caractersticas do clipe de filme que voc pode modificar. Por exemplo, quando ele selecionado, h valores que voc pode alterar no Inspetor de propriedades, como a coordenada x, sua largura ou vrios ajustes de cor, como alterar seu alfa (transparncia) ou aplicar um filtro de sombra. Outras ferramentas do Flash permitem fazer mais alteraes, como usar a ferramenta Transformao livre para girar o retngulo. Tudo o que possvel fazer para modificar um smbolo de clipe de filme no ambiente de autoria do Flash tambm pode ser feito no ActionScript, alterando as partes dos dados que so colocadas em um nico pacote chamado objeto MovieClip.

    Na programao orientada a objetos do ActionScript, h trs tipos de caractersticas que qualquer classe pode incluir:

    Propriedades

    Mtodos

    Eventos

    Juntos, esses elementos ajudam a gerenciar as partes dos dados usadas pelo programa e a decidir quais aes so executadas em uma determinada ordem.

    PropriedadesUma propriedade representa uma das partes dos dados que so compactados em um objeto. Um objeto de msica pode ter propriedades chamadas artist e title; a classe MovieClip tem propriedades como rotation, x, width e alpha. As propriedades so tratadas como variveis individuais; na verdade, elas podem ser entendidas apenas como as variveis "filho" contidas em um objeto.

    A seguir, apresentamos alguns exemplos de cdigo do ActionScript que usa propriedades. Esta linha de cdigo move o MovieClip chamado square para 100 pixels na coordenada x:

    square.x = 100;

    Este cdigo usa a propriedade de rotao fazendo com que o MovieClip square gire para corresponder rotao do MovieClip triangle:

    square.rotation = triangle.rotation;

    Este cdigo altera a escala horizontal do MovieClip square para que ele fique uma vez e meia maior do que antes:

    square.scaleX = 1.5;

    Observe a estrutura comum: voc usa uma varivel (square, triangle) como o nome do objeto, seguido de um ponto (.) e, depois, o nome da propriedade (x, rotation, scaleX). O ponto, conhecido como operador ponto, usado para indicar que voc est acessando um dos elementos filho de um objeto. A estrutura inteira reunida, "nome da varivel-ponto-nome da propriedade", usada como uma nica varivel, como um nome para um nico valor na memria do computador.

    MtodosUm method uma ao que pode ser executada por um objeto. Por exemplo, se voc criou um smbolo de clipe de filme no Flash com vrios quadros-chave e animao em sua linha de tempo, esse clipe de filme pode ser reproduzido, parar ou ser instrudo a mover o indicador de reproduo para um quadro especfico.

    Este cdigo instrui o MovieClip chamado shortFilm a iniciar a reproduo:

    shortFilm.play();

    Esta linha faz o MovieClip chamado shortFilm parar a reproduo (o indicador de reproduo pra; como pausar um vdeo):

    shortFilm.stop();

  • 13PROGRAMAO DO ACTIONSCRIPT 3.0Introduo do ActionScript

    Este cdigo faz um MovieClip chamado shortFilm mover o indicador de reproduo para o Quadro 1 e parar a reproduo ( como retroceder um vdeo):

    shortFilm.gotoAndStop(