Upload
cleutonpam
View
31
Download
1
Embed Size (px)
Citation preview
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(