apostila adobe as3

758
Programação do ADOBE ® ACTIONSCRIPT ® 3.0

Upload: lucimar-teixeira-rodrigues

Post on 14-Feb-2015

123 views

Category:

Documents


29 download

TRANSCRIPT

Programao do ADOBE ACTIONSCRIPT 3.0

2008 Adobe Systems Incorporated. Todos os direitos reservados.Copyright

Programao do ActionScript 3.0 Se 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, USA Notice 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

ContedoCaptulo 1: Sobre este manual Uso deste manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Acesso documentao do ActionScript Recursos de aprendizagem do ActionScript ............................................................................... 2 ............................................................................ 3

Captulo 2: Introduo ao ActionScript 3.0 Sobre o ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Vantagens do ActionScript 3.0 Novidades do ActionScript 3.0 ......................................................................................... 4 ......................................................................................... 5 ............................................................................... 7

Compatibilidade com verses anteriores

Captulo 3: Introduo do ActionScript Fundamentos de programao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Trabalho com o objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Elementos de programa comuns

Exemplo: Pea de portflio de animao Criao de aplicativos com o ActionScript Criao de suas prprias classes Exemplo: Criao de um aplicativo bsico Execuo de exemplos subseqentes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Captulo 4: Linguagem e sintaxe do ActionScript Viso geral da linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Objetos e classes Variveis Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Pacotes e espaos para nomes Tipos de dados Operadores Condicionais Repetio Funes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Captulo 5: Programao orientada a objetos no ActionScript Noes bsicas de programao orientada a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Classes Interfaces Herana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Tpicos avanados

Exemplo: GeometricShapes

Captulo 6: Trabalho com datas e horas Noes bsicas de data e hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Gerenciamento de datas de calendrio e horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

PROGRAMAO DO ACTIONSCRIPT 3.0 ivContedo

Controle de intervalos de tempo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Exemplo: relgio analgico simples

Captulo 7: Trabalho com strings Noes bsicas de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Criao de strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 A propriedade length Comparao de strings Concatenao de strings

Trabalho com caracteres em strings

Obteno de representaes de strings de outros objetos Localizao de substrings e padres em strings Exemplo: arte ASCII

Converso de strings entre maisculas e minsculas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Captulo 8: Trabalho com matrizes Noes bsicas sobre matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Matrizes indexadas Matrizes associativas Clonagem de matrizes Tpicos avanados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

Matrizes multidimensionais

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Exemplo: lista de reproduo

Captulo 9: Manipulao de erros Noes bsicas da manipulao de erros Tipos de erros Manipulao de erros no ActionScript 3.0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Trabalho com as verses de depurador do Flash Player e do AIR Manipulao de erros sncronos em um aplicativo Criao de classes de erros personalizadas Resposta a eventos e status de erros Comparao das classes Error Exemplo: Aplicativo CustomErrors

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Captulo 10: Uso de expresses regulares Noes bsicas de expresses regulares: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Sintaxe da expresso regular Exemplo: Um analisador Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Mtodos para usar expresses regulares com strings

Captulo 11: Trabalho com XML Noes bsicas sobre XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 A abordagem E4X em relao ao processamento de XML Objetos XML Objetos XMLList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

Inicializao de variveis XML

Montagem e transformao de objetos XML

PROGRAMAO DO ACTIONSCRIPT 3.0 vContedo

Como percorrer estruturas XML Uso de espaos para nomes XML Converso de tipo XML

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

Leitura de documentos XML externos

Exemplo: carregamento de dados RSS a partir da Internet Captulo 12: Manipulao de eventos Noes bsicas sobre a manipulao de eventos O fluxo de evento Objetos de evento Ouvintes de evento Exemplo: Alarm Clock

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

Captulo 13: Programao de exibio Noes bsicas sobre a programao de exibio Principais classes de exibio Vantagens da abordagem da lista de exibio Trabalho com os objetos de exibio Manipulao de objetos de exibio Animao de objetos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

Carregamento dinmico do contedo da exibio Exemplo: SpriteArranger

Captulo 14: Uso de objetos visuais Noes bsicas do uso da API de desenho Compreenso da classe Graphics Desenho de linhas e curvas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Desenho de formas utilizando os mtodos incorporados Criao de linhas e preenchimentos gradientes Uso da classe Math com mtodos de desenho Animao com a API de desenho Uso avanado da API de desenho Caminhos de desenho Definio de regras de contorno Uso de classes de dados grficos Sobre o uso de drawTriangles() Exemplo: Gerador visual algortmico

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

Captulo 15: Trabalho com geometria Noes bsicas de geometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Uso de objetos Point Uso de objetos Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Uso de objetos Rectangle

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

PROGRAMAO DO ACTIONSCRIPT 3.0 viContedo

Captulo 16: Filtro de objetos de exibio Noes bsicas sobre filtragem de objetos de exibio Criao e aplicao de filtros Filtros de exibio disponveis Exemplo: Filter Workbench

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

Captulo 17: Trabalho com sombreadores Pixel Bender Noes bsicas de sombreadores Pixel Bender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 Carregamento ou incorporao de um sombreador Acesso aos metadados do sombreador Uso de um sombreador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

Especificao de valores de entrada e de parmetro de sombreador

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

Captulo 18: Trabalho com clipes de filme Noes bsicas de clipes de filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 Trabalho com objetos MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Controle de reproduo de clipe de filme Carregamento de um arquivo SWF externo Exemplo: RuntimeAssetsExplorer

Criao de objetos MovieClip com o ActionScript

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

Captulo 19: Trabalho com interpolaes de movimento Noes bsicas de interpolaes de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Cpia de scripts de interpolaes de movimento Descrio da animao Adio de filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Incorporao de scripts de interpolaes de movimento

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

Associao de uma interpolao de movimento com seus objetos de exibio

Captulo 20: Trabalho com cinemtica inversa Noes bsicas de cinemtica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 Viso geral da animao de armaduras IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Obteno de informaes sobre uma armadura IK Movimentao de uma armadura IK Uso de eventos IK

Ocorrncia de IKMover e limitao de seu movimento

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

Captulo 21: Trabalho com texto Noes bsicas do trabalho com texto Uso da classe TextField Uso do Mecanismo de texto do Flash

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

Captulo 22: Trabalho com bitmaps Noes bsicas do trabalho com bitmaps Classes Bitmap e BitmapData Manipulao de pixels Cpia de dados de bitmap

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

Texturas com funes de rudo

PROGRAMAO DO ACTIONSCRIPT 3.0 viiContedo

Rolagem de bitmaps

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496

Benefcios do mapeamento mip Exemplo: Lua giratria animada

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 Criao e movimentao de objetos 3D Projeo de objetos 3D em uma exibio 2D Execuo de transformaes 3D complexas Uso de tringulos para obter efeitos 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519

Captulo 24: Trabalho com vdeo Noes bsicas sobre vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 Noes bsicas sobre formatos de vdeo Noes bsicas sobre a classe Video Carregamento de arquivos de vdeo Controle da reproduo de vdeo Uso de tela cheia Acelerao de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547

Arquivos de vdeo em fluxo contnuo

Noes bsicas sobre pontos de sinalizao Uso de pontos de sinalizao e metadados Captura da entrada da cmera Envio de vdeo para um servidor Exemplo: Jukebox de vdeo

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562

Tpicos avanados sobre arquivos FLV

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563

Captulo 25: Trabalho com som Noes bsicas do trabalho com som Compreenso da arquitetura do som Trabalho com sons incorporados

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572

Carregamento de arquivos de som externos Trabalho com arquivos de fluxo de som Reproduo de sons

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582

Trabalho com udio gerado dinamicamente

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583

Consideraes sobre segurana ao carregar e reproduzir sons Controle do volume e do panorama do som Trabalho com metadados de som Acesso a dados de som brutos Captura de entrada do som Exemplo: Podcast Player

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

Captulo 26: Captura da entrada do usurio Noes bsicas sobre a entrada do usurio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 Captura da entrada do teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601

PROGRAMAO DO ACTIONSCRIPT 3.0 viiiContedo

Captura da entrada do mouse Exemplo: WordSearch

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607

Captulo 27: Rede e comunicao Noes bsicas de rede e comunicao Trabalho com dados externos conexes de soquete

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614

Conexo com outras ocorrncias do Flash Player e AIR Armazenamento de dados locais Trabalho com arquivos de dados

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647

Exemplo: Criao de um cliente Telnet

Exemplo: Upload e download de arquivos

Captulo 28: Ambiente do sistema cliente Noes bsicas do ambiente do sistema cliente Uso da classe System Uso da classe Capabilities Uso da classe IME

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664

Uso da classe ApplicationDomain

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659

Exemplo: Deteco de capacidades do sistema Captulo 29: Copiar e colar Noes bsicas de copiar e colar

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669

Leitura e gravao na rea de transferncia do sistema Formatos de dados da rea de transferncia Captulo 30: Impresso Noes bsicas de impresso Impresso de uma pgina

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

Tarefas do Flash Player e do AIR e impresso do sistema Configurao de tamanho, escala e orientao Exemplo: Impresso de vrias pginas Exemplo: Escala, corte e resposta

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682

Captulo 31: Uso da API externa Noes bsicas de uso da API externa Requisitos e vantagens da API externa Uso da classe ExternalInterface

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698

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

Captulo 32: Segurana do Flash Player Viso geral da segurana do Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 Caixas de proteo de segurana Controles de permisso Restrio de APIs de rede Carregamento de contedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718

Segurana de modo de tela cheia

PROGRAMAO DO ACTIONSCRIPT 3.0 ixContedo

Cross-scripting

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724 . . . . . . . . . . . . . . . . . 729 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734

Acesso mdia carregada como dados Carregamento de dados

Carregamento de contedo incorporado de arquivos SWF importados em um domnio de segurana Trabalho com contedo legado Controle do acesso URL de sada Objetos compartilhados Configurao de permisses de LocalConnection

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732

Acesso a cmera, microfone, rea de transferncia, mouse e teclado ndice

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735

1

Captulo 1: Sobre este manualEste 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:Captulos Captulos de 2 a 5 - viso geral da programao do ActionScript Descrio 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 Descreve os tipos de dados de nvel superior no ActionScript 3.0. do 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.

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 FlexBuilder 3

Com o uso da ferramenta de autoria do Adobe Flash CS4 ProfessionalPara 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.

PROGRAMAO DO ACTIONSCRIPT 3.0 2Sobre 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 Uso do Flash Descrio Descreve como desenvolver aplicativos dinmicos da Web na ferramenta de autoria do Flash. Descreve a utilizao especfica da linguagem do ActionScript 3.0 e das APIs principais do Flash Player e do Adobe AIR.

Programao do ActionScript 3.0

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. Descreve como desenvolver e implantar aplicativos do Adobe AIR utilizando o ActionScript 3.0 e a API do Adobe AIR no 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. Fornece exemplos de sintaxe, utilizao e cdigo para os componentes da ferramenta de autoria do Flash e para as APIs do ActionScript 2.0. Explica os detalhes de como usar os componentes do ActionScript 2.0 para desenvolvimento de aplicativos criados no Flash. Descreve cada componentes disponvel na Arquitetura de componentes da Adobe verso 2, junto com sua API. Descreve os objetos, os mtodos e as propriedades disponveis na API JavaScript. 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 Explica como desenvolver aplicativos 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.

Desenvolvimento de aplicativos do Adobe AIR com o Flash CS4 Professional Aprendizagem do ActionScript 2.0 no Adobe Flash

Referncia de linguagem do ActionScript 2.0

Uso dos componentes do ActionScript 2.0

Referncia dos componentes e da linguagem do ActionScript 2.0 Ampliao do Flash Introduo ao Flash Lite 2.x

Desenvolvimento de aplicativos do Flash Lite 2.x Introduo ao ActionScript do Flash Lite 2.x

PROGRAMAO DO ACTIONSCRIPT 3.0 3Sobre este manual

Manual Referncia de linguagem do ActionScript do Flash Lite 2.x

Descrio Fornece exemplos de sintaxe, utilizao e cdigo para a API do ActionScript 2.0 disponvel no Flash Lite 2.x. Apresenta uma introduo ao Flash Lite 1.x e descreve como testar o contedo utilizando o emulador do Adobe Device Central CS4. Descreve como desenvolver aplicativos para dispositivos mveis utilizando o 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. Fornece a sintaxe e a utilizao dos elementos do ActionScript disponveis com o Flash Lite 1.x.

Introduo ao Flash Lite 1.x

Desenvolvimento de aplicativos do Flash Lite 1.x

Aprendizagem do ActionScript no Flash Lite 1.x

Referncia de linguagem do ActionScript do Flash Lite 1.x

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/.

4

Captulo 2: Introduo ao ActionScript 3.0Este 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 debytes e fornece aprimoramentos de desempenho significativos

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

Uma API (Interface de programao de aplicativo) expandida e aprimorada, com controle de baixo nvel de objetose 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.

PROGRAMAO DO ACTIONSCRIPT 3.0 5Introduo 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 execuo O 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 execuo No 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 seladas O 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 mtodo O 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.

PROGRAMAO DO ACTIONSCRIPT 3.0 6Introduo ao ActionScript 3.0

Para exibir a especificao E4X do ECMA, v para www.ecma-international.org. Expresses regulares O 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 nomes Os 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 primitivos O 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 exibio A 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.

PROGRAMAO DO ACTIONSCRIPT 3.0 7Introduo ao ActionScript 3.0

Manipulao de dados e contedo dinmicos O 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 nvel Varias 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 texto O 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 nopode 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 ActionScript3.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.

PROGRAMAO DO ACTIONSCRIPT 3.0 8Introduo ao ActionScript 3.0

Em geral, os arquivos SWF escritos no ActionScript 1.0 ou 2.0 devem ser migrados para trabalhar com os arquivosSWF 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.Funcionalidade com suporte Pode carregar SWFs publicados para Contm este AVM Executa SWFs gravados no ActionScript Flash Player 7 7 e anterior AVM1 1.0 e 2.0 Flash Player 8 8 e anterior AVM1 1.0 e 2.0 Flash Player 9 e 10 9 (ou 10) e anterior AVM1 e AVM2 1.0, 2.0 e 3.0

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 Contedo criado no ActionScript 1.0 e 2.0 Contedo criado no ActionScript 3.0 ActionScript 1.0, 2.0 e 3.0

Pode carregar contedo e executar cdigo no ActionScript 1.0 e 2.0 apenas contedo criado no Pode cruzar contedo de script criado no

ActionScript 1.0 e 2.0 apenas (ActionScript 3.0 ActionScript 1.0 e 2.0 at LocalConnection. at LocalConnection) ActionScript 3.0

9

Captulo 3: Introduo do ActionScriptEste 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.

PROGRAMAO DO ACTIONSCRIPT 3.0 10Introduo 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 computadorAcabamos 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

PROGRAMAO DO ACTIONSCRIPT 3.0 11Introduo do ActionScript

Booleano: um valor do tipo verdadeiro ou falso, tal como se uma opo est ativa ou se dois valores so iguaisOs 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.

PROGRAMAO DO ACTIONSCRIPT 3.0 12Introduo 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 EventosJuntos, 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 varivelponto-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();

PROGRAMAO DO ACTIONSCRIPT 3.0 13Introduo 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(1);

Como voc pode ver, os mtodos, assim como as propriedades, so acessados escrevendo o nome do objeto (uma varivel), um ponto e o nome do mtodo seguido de parnteses. Os parnteses so uma forma de indicar que voc est chamando o mtodo ou, em outras palavras, instruindo o objeto a executar aquela ao. s vezes, os valores (ou as variveis) so colocados entre parnteses, como uma forma de passar adiante informaes adicionais necessrias para executar a ao. Esses valores so conhecidos como parmetros de mtodo. Por exemplo, o mtodo gotoAndStop() precisa saber para qual quadro deve ir, por isso requer um nico parmetro entre parnteses. Outros mtodos, como play() e stop(), so auto-explicativos, por isso no requerem informaes extras. No entanto, eles ainda so escritos com parnteses. Diferentemente das propriedades (e variveis), os mtodos no so usados como alocadores de espao de valor. Entretanto, alguns mtodos podem executar clculos e retornar um resultado que pode ser usado como uma varivel. Por exemplo, o mtodo toString() da classe Number converte o valor em sua representao de texto:var numericData:Number = 9; var textData:String = numericData.toString();

Por exemplo, voc usaria o mtodo toString() se quisesse exibir o valor de uma varivel Number em um campo de texto na tela. A propriedade text da classe TextField (que representa o contedo real do texto exibido na tela) definida como uma String, por isso pode conter apenas valores de texto. Esta linha de cdigo converte o valor numrico na varivel numericData em texto e faz com que aparea na tela, no objeto TextField chamado calculatorDisplay:calculatorDisplay.text = numericData.toString();

EventosDescrevemos um programa de computador como uma srie instrues que o computador exe