Você está na página 1de 21

UNIVERSIDADE ZAMBEZE FACULDADE DE CINCIAS E TECNOLOGIA

CURSO: ENGENHARIA INFORMTICA - 3 Ano-LABORAL

TRABALHO DE PROGRAMAO III

TEMA: Linguagens de programao baseadas em objectos: linguagem Action Script

Discente: Adriano J. Canate Benessone Lus Bonomar Fidlio J. Baptista Jnior Michael J. K. Mesquita Toms Manuel Chibai

Docente: Eng. Amilcar Borras

Beira, Maro de 2012

ndice
Introduo..................................................................................................................................................... 3 Definio: ...................................................................................................................................................... 4 Histria do Action Script ............................................................................................................................... 4 Caractersticas gerais do ActionScript........................................................................................................... 5 Classificao do Action Script ....................................................................................................................... 5 Verses do ActionScript ................................................................................................................................ 5 Action Script 2.0 ........................................................................................................................................ 6 Caractersticas ....................................................................................................................................... 6 Action Script 3.0 ........................................................................................................................................ 6 Caractersticas ....................................................................................................................................... 6 Vantagens do ActionScript 3.0 .............................................................................................................. 7 Tipos de variveis no ActionScript .............................................................................................................. 10 Constantes .................................................................................................................................................. 10 Operadores de comparao ....................................................................................................................... 11 Variveis estticas................................................................................................................................... 13 Bibliografia .................................................................................................................................................. 21

Introduo
A programao orientada a objectos (OOP) uma maneira de organizar o cdigo em um programa agrupando-o em objectos, elementos individuais que incluem informaes (valores de dados) e funcionalidade. O uso de uma abordagem orientada a objectos para organizar um programa permite agrupar partes especficas de informaes (por exemplo, informaes sobre msica, como ttulo do lbum, ttulo da faixa ou nome do artista) juntamente com a funcionalidade comum ou com as aces associadas a essas informaes (como adicionar faixa lista de reproduo ou reproduzir todas as canes desse artista). Na prtica, a programao orientada a objectos tem duas partes. Uma parte so as estratgias e tcnicas para criar um programa (frequentemente chamada de design orientado a objectos). A outra parte da OOP so as estruturas reais de programao que esto disponveis em uma determinada linguagem de programao para criar um programa usando uma abordagem orientada a objectos. O presente trabalho as segunda parte, que so as estruturas reais de programao, tendo como exemplo a linguagem Action Script, onde sero apresentados os seguintes tpicos: vantagens e desvantagens da linguagem; exemplos de classes, objectos, atributos, mtodos entre outros.

Definio:
ActionScript uma linguagem de programao orientada objetos baseadaemECMAscript, utilizada principalmente para construo de aplicaes InternetRICA (do ingls RIA - "Rich Internet Applications"). executada em uma mquina virtual (AVM -"ActionScript Virtual Machine", atualmente na verso 3 que est disponvel no Adobe AIR ( plug-inencontrado em navegadores web) e tambm no ambienteAdobe Air.

Histria do Action Script


Desenvolvido pela empresa Macromedia, hoje controlada pela Adobe (que comprou a Macromedia em 2005), o ActionScript comeou como uma linguagem de script para a ferramenta Macromedia Flash. As primeiras trs verses das ferramentas Flash possuam recursos de interatividade limitados. Os programadores podiam incluir comandos simples, chamados de "action", um boto ou frame. O conjunto de aces era limitado a controles de navegao bsicos, com comandos como "play", "stop", "get URL", e "goto and play".Com a introduo do Flash 4 em 1999, o conjunto de aces foi incrementado e gerou uma linguagem de scripts. Novos recursos como variveis, expresses, operadores diversos, blocos de condio ("if"), e loops foram adicionados. Apesar de ser chamado internamente de "ActionScript", o manual do Flash 4 e documentos de marketing continuaram a usar o termo "actions" para descrever a linguagem. Quando veio ao mercado, o Flash 2, possua poucos recursos de programao disponveis. J no Flash 3, aplicaes diferenciadas eram obtidas atravs da integrao do Flash +JavaScript. Quando chegou ao mercado, o Flash 4 apresentou uma quantidade maior de scripts, mas no era ainda propriamente o consagrado ActionScript, as aces do Flash eram simplesmente chamadas de Actions.O Flash 5.0 trouxe o conceito de ActionScript, mas somente no Flash MX que realmente tornou-se uma linguagem de programao realmente orientada a objetos, robusta e inteligente.

Caractersticas gerais do ActionScript


ActionScript 3 pode ser utilizado tanto para classe-base, programao orientada a objectos, bem como linha de tempo baseada em script. Voc pode us-lo da forma que for mais confortvel para voc ou faz mais sentido para o seu projecto.

Classificao do Action Script

Verses do ActionScript
20002003 - ActionScript 1.0Lanado com a verso 5 do Flash em Setembro de 2000, as Actions do Flash 4 foram incrementadas e passaram a ser chamadas de ActionScript pela primeira vez. Tinha influncia do JavaScript e do padro ECMA-262 (terceira edio) .

20032006 - ActionScript 2.0 Na verso 2.0, introduzida em Setembro de 2003 com o lanamento do Flash MX 2004 e do Flash Player 7. Introduziu verificao de tipos e classes e herana. Esta verso seguia o padro ECMAScript (quarta edio), mas apenas parcialmente.

2006actual - ActionScript 3.0Lanado em Junho de 2006, a verso 3.0 do ActionScript foi lanada em conjunto com oambiente de desenvolvimento Adobe Flex 2.0 e o Flash Player 9. Uma reestruturao dalinguagem com uma nova mquina virtual.

O ActionScript uma linguagem que evoluiu dos recursos de script do Flash Player. Embora esteja na terceira verso, existem duas verses lanadas como ActionScript1 (averso 1.0 foi nomeada somente quando lanada a verso dois).

Action Script 2.0


Caractersticas Tipos em tempo de compilao e dinamicamente tipados em tempo de execuo. Orientao objetos baseada em prottipos, novas classes criadas a partir daextenso de outras pr-existentes. Tipo primitivo numrico. Um apenas : Number , ponto flutuante com dupla preciso.

Action Script 3.0


executada em uma mquina virtual (AVM - ActionScriptVirtual Machine), atualmente na verso 3 que est disponvel no Adobe Flash Player (plug-in encontrado em navegadores web) e tambm no ambiente Adobe AIR 2(Adobe Integrated Runtime). Caractersticas

Nesta verso foram introduzidos novos recursos:

Verificao de tipos em tempo de compilao e de execuo: os tipos so agora preservados em tempo de execuo. O Flash Player faz verificao de tipos no momento da execuo. Estas informaes de tipo tambm so utilizadas na mquina virtual para melhorar desempenho e reduzir uso de memria.

ECMAScript uma linguagem de programao baseada em scripts, padronizada pela Ecma International na especificao ECMA-262. A linguagem bastante usada em tecnologias para Internet, sendo esta base para a criao do JavaScript/JScript e tambm do ActionScript. 2 Adobe AIR uma tecnologia que permite a criao deaplicaes a partir de tecnologias de desenvolvimento de pginas web, como HTML, Ajax ou Flash.

Excees em tempo de execuo: Erros em tempo de execuo disponiblizam estado da pilha ("stack traces") com indicao de arquivo fonte e nmero de linhas, como em java, para rpida identificao de onde o erro foi gerado.

Separao do sistema de herana de classes do sistema de herana de prototipao utilizado na verso anterior: Vrios recursos que antes eram disponibilizados por funes de biblioteca foram includos na linguagem.

Classes seladas: o comportamento padro que as classes no podem ser estendidas em tempo de execuo, melhorando a alocao de memria e mantendo a aplicao mais segura. Classes dinmicas podem ser utilizadas se definidas como modificador dynamic.

Suporte a pacotes ( package), como em Java,namespaces. Sistema unificado de tratamento de eventos baseado no Document Object Model. Acesso direto lista de componentes do Flash em tempo de execuo, permitindo controle completo em ActionScript. Implementao da especificao do ECMAScript (quarta edio). Expresses regulares: suporte nativo expresses regulares. Novos tipos primitivos nmericos: int (com sinal) e uint (sem sinal), ambos com 32 bits obrigatria a declarao de variveis, funes e seus valores retornados, at mesmo quando a funo no retorna valor algum.

Vantagens do ActionScript 3.0

O 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. O ActionScript 3.0 no necessrio para o contedo que executado no Adobe Flash Player. No entanto, ele abre a porta para os aprimoramentos de desempenho que s esto disponveis com o AVM2 (a mquina virtual do ActionScript 3.0). O cdigo do ActionScript 3.0 pode ser executado at 10 vezes mais rpido do que o cdigo do ActionScript existente. A verso anterior da AVM1 (ActionScript Virtual Machine) executa os cdigos ActionScript 1.0 e ActionScript 2.0. O Flash Player 9 e 10 suportam a AVM1 em termos de compatibilidade reversa.
7

Exemplo de cdigo em ActionScript(AS) 3:

Os programadores JavaScript no tero grandes dificuldades para se adaptar programao ActionScript. So grandes as semelhanas entre elas devido ao uso do padro ECMAScript (Ecma-262). Em ActionScript, recomendvel separar cada linha do cdigo por um ponto-e-vrgula (;). No obrigatrio, mas no entanto extremamente recomendvel para separar comandos. Alm do mais, diferentemente da verso 2.0, o ActionScript 3.0 no permite tipagem fraca 3: todas os tipos de variveis devem ser declaradas (tipagem forte4). Exemplo:

Toda funo deve ter um valor com que ir retornar, mesmo que seja um valor vazio (void). Por exemplo:

Linguagens implementadas com tipos de dados fortes, tais como Java e Pascal, exigem que o tipo de dado de um valor seja do mesmo tipo da varivel ao qual este valor ser atribudo. 4 Em linguagens com tipos de dados fracos, tais como PHP e VBScript, a converso no se faz necessria, sendo realizada implicitamente pelo compilador ou interpretador.

Todos os comandos de uma funo, clusula condicional, loops, classes e pacotes devem estar inseridos dentro de chaves ({ }). A identao no obrigatria, mas extremamente recomendvel, assim como na maioria das linguagens. Variveis e funes no devem ter nomes que iniciam com nmeros, nem com os caracteres "_" ou "$". Os comentrios so teis tanto para inserir lembretes e informaes sobre o cdigo como para tirar linhas de cdigo que numa compilao no sejam executadas (til para testes).

H duas maneiras de comentar em ActionScript:

Alm do conhecido Adobe Flash, h outras IDEs (Ambiente de Desenvolvimento Integrado) que permitem a programao de ActionScript. A maioria deles so gratuitas. Dentre as mais conhecidas podemos citar: Flex Builder: feita para os programadores tradicionais interessados em desenvolver para a Plataforma Flash. No apenas um editor de script, pois inclui vrios componentes de
9

interface de usurio (UI) e classes indisponveis para Flash (mas disponveis no Flex SDK). Feita para a criao de RIAs (Rich Internet Applications). FlashDevelop: IDE gratuita, com vrios recursos que agilizam a criao, e cdigo aberto para Windows, construda sobre Microsoft .NET Framework. Para criao de AS em verso 2 e 3, tambm possvel criar HTML, CSS e outras. Com auto-complete e outros recursos.

Tipos de variveis no ActionScript


Number: qualquer nmero, incluindo os de ponto flutuante (exemplo: 4.5) int: qualquer nmero inteiro, positivo ou no (452, -32...) uint: nmero inteiro e no negativo (2,487,0...) String: para textos ("ol", "Fulano Beltrano") Boolean: valor booleano (true ou false) Array: Registro de um ou mais valores ([25,"Fulano",54.47]) Object: A estrutura bsica de qualquer valor ActionScript, pode ser usado tambm como alternativa ao tipo Array - ser usado como um dicionrio (meuObj.nome = "Fulano").

Para declarar uma varivel:

Constantes
No AS 3.0 foi introduzido o conceito de constantes, que nada mais so do que valores com um valor fixo e imutvel.

Por conveno (e no obrigao) comum declarar constantes com nome em letras maisculas. A declarao if uma das mais comuns. Tambm podem ser usadas as declaraes else if e else. Exemplo:
10

Operadores de comparao:
Igualdade: == No-igualdade: != Maior: > Menor: < Maior ou igual: >= Menor ou igual: <= Operadores lgicos: Operador E: && Operador OU: || Operador de negao (false): !

11

Switch

H a opo switch, que um modo de comparao mais simplificado e leve que o if, porm no pode ser usado para comparaes complexas. Em vez de if, esta condicional utiliza a palavra case para sinalizar uma comparao. E no fim de cada comparao necessrio inserir a palavra reservada break, seno todos os comandos sero lanados at o fim do switch (causando erro de comparao). A palavra default executa uma aco caso nenhuma das comparaes tenha sido bemsucedida.

12

Variveis estticas As variveis estticas so declaradas usando uma combinao da palavra-chave static e da instruo var ou const . Exemplo: class StaticVars { public static var totalCount:int = 0; public static const MAX_NUM:uint = 16; } Variveis de ocorrncia

As variveis de ocorrncia incluem propriedades declaradas com as palavras-chave var e const , mas sem a palavrachave static . As variveis de ocorrncia que so anexadas s ocorrncias da classe em vez de a uma classe inteira so teis para armazenar valores especficos a uma ocorrncia.

13

Definies de classes

A sintaxe apropriada para uma definio de classe requer a palavra-chave class seguida pelo nome da classe. O corpo da classe que est entre chaves ( {} ) segue o nome da classe. Por exemplo, o cdigo a seguir cria uma classe denominada Shape que contm uma varivel denominada visible : public class Shape { var visible:Boolean = true; }

Atributos de classes

O ActionScript 3.0 permite modificar definies de classe usando um dos quatro seguintes atributos:

Para cada um desses atributos, exceto para internal , voc deve incluir explicitamente o atributo para obter o comportamento associado. Por exemplo, se voc no incluir o atributo dynamic ao definir uma classe, no poder adicionar propriedades a uma ocorrncia da classe em tempo de execuo. Voc atribui explicitamente um atributo colocando-o no incio da definio de classe, conforme demonstrado no cdigo a seguir: dynamic class Shape {} Observe que a lista no inclui um atributo denominado abstract . Isso porque as classes abstratas no tm suporte no ActionScript 3.0. Observe tambm que a lista no inclui atributos

14

denominados private e protected . Esses atributos tm significado apenas dentro de uma definio de classe e no podem ser aplicados s prprias classes.

Corpo da classe

O corpo da classe, que delimitado por chaves, usado para definir as variveis, constantes e mtodos da classe. O exemplo a seguir mostra a declarao da classe Accessibility na API do Adobe Flash Player: public final class Accessibility { public static function get active():Boolean; public static function updateProperties():void; } Voc tambm pode definir um espao para nomes dentro de um corpo de classe. O exemplo a seguir mostra como um espao para nomes pode ser definido dentro de um corpo de classe e usado como atributo de um mtodo naquela classe: public class SampleClass { public namespace sampleNamespace; sampleNamespace function doSomething():void; } Mtodos

Mtodos so funes que fazem parte de uma definio de classe. Depois que uma ocorrncia da classe criada, um mtodo ligado a essa ocorrncia. Os mtodos so definidos usando a palavra-chave function . Assim como em qualquer propriedade de classe, voc pode aplicar atributos de propriedade de classe a mtodos, incluindo um espao para nome privado, protegido, pblico, interno, esttico ou personalizado. Voc pode usar uma instruo de funo da seguinte maneira: public function sampleFunction():String {}

15

Ou pode usar uma varivel qual atribuir uma expresso de funo, da seguinte maneira: public var sampleFunction:Function = function () {}

Interfaces

Uma interface uma coleo de declaraes de mtodos que permite que objetos no relacionados se comuniquem. Por exemplo, o ActionScript 3.0 define a interface IEventDispatcher que contm declaraes de mtodos que uma classe pode usar para manipular objetos de eventos. A interface IEventDispatcher estabelece uma maneira padro para os objetos passarem objetos de eventos entre si. O cdigo a seguir mostra a definio da interface IEventDispatcher: public interface IEventDispatcher { function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean = false):void; function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void; function dispatchEvent(event:Event):Boolean; function hasEventListener(type:String):Boolean; function willTrigger(type:String):Boolean; } As interfaces so baseadas na distino entre uma interface do mtodo e sua implementao. Uma interface do mtodo inclui todas as informaes necessrias para cham-lo, inclusive o nome do mtodo, todos os seus parmetros e seu tipo de retorno. Uma implementao do mtodo inclui no apenas as informaes da interface, mas tambm as instrues executveis que executam o comportamento do mtodo. Uma definio de interface contm apenas interfaces do mtodo, e qualquer classe que implemente a interface responsvel por definir as implementaes do mtodo.

16

Definio de uma interface

A estrutura de uma definio de interface semelhante da definio de uma classe, exceto que uma interface pode conter apenas mtodos sem nenhum corpo de mtodo. As interfaces no podem incluir variveis ou constantes, mas podem incluir getters e setters. Para definir uma interface, use a palavra-chave interface . Por exemplo, a seguinte interface, IExternalizable, faz parte do pacote flash.utils no ActionScript 3.0. A interface IExternalizable define um protocolo para serializar um objeto, o que significa converter um objeto em um formato adequado para armazenamento em um dispositivo ou para transporte pela rede. public interface IExternalizable { function writeExternal(output:IDataOutput):void; function readExternal(input:IDataInput):void; } Observe que a interface IExternalizable declarada com o modificador de controle de acesso public . As definies de interface podem ser modificadas apenas pelos especificadores de controle de acesso public e internal . As declaraes de mtodo dentro de uma definio de interface no podem ter nenhum especificador de controle de acesso.

Herana

Herana uma forma de reutilizao de cdigo que permite que programadores desenvolvam novas classes com base em classes existentes. As classes existentes so sempre conhecidas como classes base ou superclasses, enquanto as novas classes normalmente so chamadas de subclasses. A vantagem principal da herana que ela permite reutilizar cdigo de uma classe base e ainda deixar o cdigo existente inalterado. Alm disso, a herana no requer nenhuma alterao no modo como as outras classes interagem com a classe base. Em vez de modificar uma classe existente que pode ter sido completamente testada ou j estar em uso, usando herana voc pode tratar essa classe como um mdulo integrado que pode ser estendido com propriedades ou mtodos adicionais. De forma correspondente, voc usa a palavra-chave extends para indicar que uma classe herda de outra classe.A herana tambm permite que voc
17

se beneficie com o polimorfismo do cdigo. Polimorfismo a habilidade de usar um nico nome de mtodo para um mtodo que se comporta de maneira diferente ao ser aplicado a diferentes tipos de dados. Um exemplo simples uma classe base denominada Shape com duas subclasses denominadas Circle e Square. A classe Shape define um mtodo denominado area() , que retorna a rea da forma. Se o polimorfismo estiver implementado, voc poder chamar o mtodo area() em objetos do tipo Circle e Square e fazer com que os clculos corretos sejam feitos para voc. A herana ativa o polimorfismo permitindo que as subclasses sejam herdadas e redefinidas, ou substituam, mtodos da classe base. No exemplo a seguir, o mtodo area() redefinido pelas classes Circle e Square: class Shape { public function area():Number { return NaN; } } class Circle extends Shape { private var radius:Number = 1; override public function area():Number { return (Math.PI * (radius * radius)); } } class Square extends Shape { private var side:Number = 1; override public function area():Number { return (side * side); }
18

} var cir:Circle = new Circle(); trace(cir.area()); // output: 3.141592653589793 var sq:Square = new Square(); trace(sq.area()); // output: 1

Como cada classe define um tipo de dados, o uso da herana cria um relacionamento especial entre a classe base e a classe que a estende. Uma subclasse garantidamente possui todas as propriedades de sua classe base, o que significa que uma ocorrncia de uma subclasse pode ser sempre substituda por uma ocorrncia da classe base. Por exemplo, se um mtodo definir um parmetro do tipo Shape, vlido passar um argumento do tipo Circle, porque Circle estende Shape, da seguinte maneira: function draw(shapeToDraw:Shape) {}

var myCircle:Circle = new Circle(); draw(myCircle);

19

Concluso

Vimos que o uso de uma abordagem orientada a objectos para organizar um programa permite agrupar partes especficas de informaes (por exemplo, informaes sobre msica, como ttulo do lbum, ttulo da faixa ou nome do artista) juntamente com a funcionalidade comum ou com as aces associadas a essas informaes (como adicionar faixa lista de reproduo ou reproduzir todas as canes desse artista). Tendo como foco a linguagem Action script onde foram vistas algumas noes bsicas da linguagem tais como a criao de classes, objectos, tipos de variveis, entre outros, tudo na vertente orientada a objectos.

20

Bibliografia

*AULA4;Programao baseada em objectos. Acessado em Maro 2012.Disponivel em: http://dee.feg.unesp.br/Disciplinas/SMA6093/aulas/Aula04.pdf.

* DE CARVALHO ,Flvia Pereira; Introduo a ActionScript 3.0 Acessado em Maro 2012.Disponivel em: <http://fit.faccat.br/~fpereira/aula_flash/slides_aula_flash_actionscript3_1porfolha.pdf.>

* DE JESUS,Wagner Santos C; Introduo ao ambiente Flash e a Programao em ActionScript(AS).Acessado em Maro 2012.Disponivel em: <http://www1.univap.br/wagner/ASI-Bim.ppt>.

* Autor desconhecido,Programao do ADOBE ACTIONSCRIPT 3.0. Acessado em Maro 2012.Disponivel em:< http://fit.faccat.br/~fpereira/aula_flash/adobe_actionscript3.pdf>

21

Você também pode gostar