The Language for Motion ActionScript Motivação Linguagem de fácil manipulação para objetos gráficos. Atualmente Orientada a Objetos. Executada sobre uma máquina virtual que está “instalada em 98% das maquinas com acesso a internet” (Millward Brown). Grande capacidade de portabilidade. Breve História 2000 - Lançamento do Flash Player 5 com ActionScript. 2002 - Lançamento do Flash Player 6 com ActionScript 1.0 e a inclusão de manipuladores de eventos e primitivas gráficas. 2003 - Lançamento do Flash Player 7 veio com a atualização. ActionScript 2.0. 2005 - Liberação do Flash Player 8 que extende o ActionScript 2.0 adicionando novas bibliotecas. 2007 - Lançamento do Flash Player 9 que vem com o novo ActionScript 3.0 e o advento da nova máquina virtual, chamado AVM2. Paradigma de Programação ActionScript 1.0 - programação procedural, baseada em protótipos, conceitos básicos de OO; ActionScript 2.0 - programação procedural e com mais conceitos de OO; ActionScript 3.0 - programação OO (100%) Sintaxe Aplicativo servidor sem while; Comandos onEnterFrame (tipo diferente de laço); Comandos eval(str:String); Objeto Boolean; Array extensível em tamanho; Array extensível em tipos; Tipo Function; Especificação ActionScript 3 Bible by Roger Braunstein, Mims Wright, Joey Lott, and Josh Noble (Paperback - Sep 18, 2007) ActionScript 3 in Adobe Flash CS3 Professional Hands-On Training by Todd Perkins (Paperback - Sep 10, 2007) Beginning ActionScript 2.0 (Wrox Beginning Guides) by Nathan Derksen and Jeff Berg (Paperback - April 24, 2006) Utilização Aplicativos Web Jogos Web Jogos para Dispositivos Móveis (utiliza-se o Flash Lite que é o ActionScript 2.0 adaptado para Mobiles) Aplicativos RIA (Rich Internet Aplications), indicado apenas para ActionScript 3.0 Sites com grande interatividade Animações programadas Manipulação de Vídeos (YouTube) Implementação Flash Player: Único compilador para ActionScript; AVM1; AVM2; JIT – Just In Time; Player 5 e 6; Player 7 e 8; Player 9. Ambiente de Desenvolvimento As principais ferramentas de desenvolvimentos atualmente são: Flash CS3 Ambiente de Desenvolvimento Flex Builder Exemplos de Programa (1/3) Exemplo actionScript 1.0 on(rollOver){ gotoAndStop(15); } on(rollOut){ setProperty(“myMovieClip”, _alpha, 40); } Exemplos de Programa (2/3) Exemplo actionScript 2.0 var myArray:Array = new Array ("Hello", "ActionScript", 3, 7, 11, "Flash"); Array.prototype.pickNumber = function():Number { var rand:Number = random(this.length); return (typeof (this[rand]) == "number") ? this[rand] : this.pickNumber(); }; Array.prototype.pickString = function():String { var rand:Number = random(this.length); return (typeof (this[rand]) == "string") ? this[rand] : this.pickString(); }; var num:Number = myArray.pickNumber(); var str:String = myArray.pickString(); _root.createTextField ("txt", 1, 10, 10, 530, 390); txt.text = "Array = "+myArray+"\nRandom Number = "+num+"\nRandom String = "+str; Exemplos de Programa (3/3) package { import flash.display.Sprite; import flash.text.TextField; import flash.filters.DropShadowFilter; public class HelloWorld2 extends Sprite { public function HelloWorld2() { var shad:DropShadowFilter = new DropShadowFilter (2, 45, 0x000000, 25, 3, 3, 2, 2); var txt:TextField = new TextField(); txt.textColor = 0xFFFFFF; txt.filters = [shad]; txt.width = 120; txt.x = Math.random()*300; txt.y = Math.random()*300; txt.selectable = false; txt.text = "Hello World welcome! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]"; addChild(txt); } } } Vantagens Desenvolvimento flexível e dinâmico; Leveza dos aplicativos; Fácil aprendizado por iniciantes; Praticidade em interfaces gráficas; Portabilidade para dispositivos móveis; Desvantagens Códigos não legíveis; Falta de laços seguros; ‘Variáveis Persistentes’; Segurança no compilador; Conclusão Notável evolução; Desde protótipo até OO Cada vez mais procurado pelo mercado; Expansão na Web; Crescimento em robustez; Aumento de performance (10 vezes); Expansão para softwares corporativos (Adobe Flex);