Docstoc

PLC - ActionScript

Document Sample
PLC - ActionScript Powered By Docstoc
					      Paradigmas de Linguagens
           Computacionais

          História do ActionScript




Equipe: Caio César Neves de Oliveira (ccno)
        João da Rocha Pascoal Neto (jrpn)
        Mário Barbosa de Araújo Júnior (mbaj)
        Tiago Farias Silva (tfs)
                                       Índice

INTRODUÇÃO ........................................................................ 3
HISTÓRIA .............................................................................. 3
PARADIGMA DE PROGRAMAÇÃO ............................................ 4
UTILIZAÇÃO .......................................................................... 5
SINTAXE ............................................................................... 5
ESPECIFICAÇÃO .................................................................... 6
IMPLEMENTAÇÃO .................................................................. 7
AMBIENTE DE DESENVOLVIMENTO ......................................... 8
EXEMPLOS DE PROGRAMA .................................................... 9
VANTAGENS E DESVANTAGENS ........................................... 10
CONCLUSÕES ..................................................................... 11
REFERÊNCIAS ..................................................................... 12
                               Introdução
ActionScript é uma linguagem de script baseada no ECMAScript (linguagem
usada para web, possui referência para javaScript), basicamente associada
como um script de comportamento da aplicação Adobe Flash. Atualmente na
versão 3.0, o ActionScript revolucionou o formato flash, que oferecia
inicialmente mais do que uma animação linear típica. Com o ActionScript,
aplicações pode prover uma excelente experiência de interatividade, além de
um suporte de conexão pela web, graças a um completo conjunto de
componentes.

Aplicações desenvolvidas utilizando Adobe Flash ou Adobe Flex irão oferecer o
uso de ActionScript para manipulação Runtime de informações e conteúdo.
Outras plataformas como o ColdFusion suportam também scripting com a
linguagem de ActionScript.




                                 História
Nas primeiras versões do Macromedia Flash, o suporte a codificação era muito
escasso e limitado a funcionalidades básicas, tais como play() e stop(). Assim
que o Flash começou a se tornar um formato de mídia poderoso e viável para a
web, desenvolvedores começaram a querer estender os limites da "linguagem"
até então existente para uma linguagem de maior poder e robustez.
Novas funcionalidades foram sendo incrementadas nas versões mais novas do
Flash, mas a linguagem, hoje conhecida como ActionScript, ainda não tinha
sido implementada. Com o lançamento da versão 4 do Flash, a capacidade de
codificar foi ampliada. Flash 4 introduziu variáveis e condições (elementos
primordiais em linguagens computacionais) e era portanto, mais interativo.
O ActionScript apareceu pela primeira vez com o lançamento do Flash 5, que
foi a primeira versão completamente programável do Flash. Esse release foi
nomeado de ActionScript 1.0. O Flash 6 (MX) melhorou o ambiente de
programação adicionando mais funções permitindo um melhor controle de
elementos de Clipes de Vídeo (ou MovieClips). Entretanto, o AS 1.0 era uma
"linguagem estranha aos programadores" com sérias limitações. Um de seus
maiores problemas era não oferecer suporte de classes. Sendo assim,
programadores acostumados a codificações orientadas a objeto, eram
obrigados a inventar maneiras de utilizar "objetos" no AS 1.0.
Dentro de 2 anos, o Flash 7 (MX 2004) introduziu o ActionScript 2.0, onde
foram adicionadas características de orientação a objetos, como declaração
explícita de classes, herança, interfaces e o conceito de linguagem fortemente
tipada. Programadores AS 2 podiam agora fazer uso de vários aspectos da
abordagem OO como reuso de código, maior legibilidade e escalabilidade. No
Flash 8, a linguagem foi estendida com a incorporação de novas bibliotecas
com API para manipulação de bitmaps em tempo de execução e permitindo
upload de arquivos. No entanto, alguns programadores OO olhavam para o AS
2 com desconfiança, pois não o achavam "totalmente orientada a objetos" por
algumas características particulares da linguagem.
 O ActionScript Virtual Machine (AVM1), o qual está inserido no Flash Player,
executa o ActionScript e, com a nova máquina virtual, ActionScript Virtual
Machine (AVM2), o Flash 9 (que vem com o novíssimo ActionScript 3.0) mostra
uma significativa melhora de performance.


      24 de Agosto de 2000 - Lançamento do Flash Player 5 incluindo a
       primeira versão do ActionScript. Usando programação baseada em
       protótipos (Prototype-based programming) baseado no ECMAScript and
       permitindo programação procedural e o básico de Orientação a Objetos.
      15 de Março de 2002 - Lançamento do Flash Player 6 que melhora o
       ActionScript 1.0 com a inclusão de manipuladores de eventos e uma API
       para manipulação básica de primitivas gráficas.
      9 de Setembro de 2003 - Lançamento do Flash Player 7 (MX 2004 e MX
       Professional 2004) oferece novas características como suporte a texto
       CSS e melhoria de performance. Veio também o ActionScript 2.0 com
       mais características de Orientação a Objetos como Herança, Interfaces,
       Forte Tipagem mas ainda permitia a programação procedural.
      13 de Setembro de 2005 - Liberação do Flash Player 8 que extende o
       ActionScript 2.0 adicionando novas bibliotecas com API's de controle de
       bitmaps em tempo de execução e upload de arquivos.
      16 de Abril de 2007 - Lançamento do Flash Player 9 (inicialmente
       chamado de 8.5) que vem com o novíssimo ActionScript 3.0 e o advento
       da nova máquina virtual, chamado AVM2 (ActionScript Virtual Machine
       2) que coexiste com a antiga AVM1. O aumento de performance era o
       maior objetivo para a criação dessa versão incluindo a JIT Compilation
       (Just-In-Time Compilation). Esse compilador usa o já compilado byte
       code e o converte para código de máquina(logo antes de este ser
       processado pelo player, por isso é "Just in Time"), maximizando assim o
       poder computacional
      Flash Player 9 é a primeira versão do Player a ser nomeada como
       Adobe Flash Player. Antes chamava-se "Macromedia Flash" até a
       Adobe adquirir a Macromedia e seus produtos. A principal
       característica do ActionScript 3.0 é a total Orientação a Objetos e sua
       grande performance.




                   Paradigma de Programação
      ActionScript 1.0 - Programação Procedural, Baseada em Protótipos e o
       básico de Orientação a Objetos
      ActionScript 2.0 - Programação Procedural e com mais conceitos de
       Orientação a Objetos
      ActionScript 3.0 - Programação Orientada a Objetos (100%)
                                  Utilização
      Aplicativos Web
      Jogos Web (teagames.com, jogos10.com.br)
      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)




                                   Sintaxe
Serão listadas abaixo algumas particularidades que diferenciam o ActionScript
das demais linguagens computacionais existentes.

      Não é possível construir um aplicativo servidor em ActionScript por meio
       de laços. Pois os laços (for, while e do-while) não podem entrar em loop
       infinito. Caso o compilador identifique que o laço ultrapassou uma
       quantidade 'x' de iterações ele aborta o programa.

      Comandos 'onEnterFrame': o onEnterFrame é um evento que é
       associado a um MovieClip que permite laços lentos que são
       determinados pela taxa de frames (ou framerate) do programa Flash. O
       framerate mínimo é 2 fps (frames per second) e o máximo é 120 fps. Ou
       seja, o onEnterFrame executa operações que variam entre 2 a 120
       vezes em um segundo. Se vários MovieClips estiverem associados a um
       evento onEnterFrame, eles são executados em paralelo. Se um
       MovieClip é atribuido a um evento onEnterFrame mais de uma vez, o
       mais recente sobrescreve o anterior.
      Comandos 'eval(str:String)': o eval é um comando bastante curioso. Ele
       recebe uma string como parâmetro e transforma essa string em uma
       variável ou em uma chamada para uma função. Se a variável ou a
       função existir, ela funciona normalmente, caso contrário não é gerado
       um erro de execução, mas a variável fica com o valor 'undefined'(o
       equivalente ao 'null' de outras linguagens) e a função simplesmente não
       é executada.
      O tipo 'Boolean': Ao contrário do tipo primitivo 'boolean', o valor booleano
       do ActionScript é realmente um objeto, ou seja, Boolean (atenção ao 'B'
       maiúsculo!). Portanto, nem sempre lhe são atribuídos valores true ou
       false. Por exemplo, se o programador declara uma variável booleana e
       não atribui nenhum valor a ela, o valor assumido será 'undefined', que
       não é true e nem false.
      Problema das 'Variáveis persistentes': Em alguns casos bem
       específicos, existe a possibilidade de o Flash Player não apagar da
       memória algumas variáveis declaradas como globais carregadas em um
       programa já executado. Isso é chamado, no jargão dos programadores
       ActionScript, de 'O problema das variáveis persistentes' e é necessário
       um bom conhecimento do método de compilação do Flash Player para
       contornar o problema.
      O cast do ActionScript é feito da seguinte forma: Tipo (variável ou
       expressão).
      Diretivas de compilação: #include, #initclip e #endinitclip (as duas
       últimas servem para especificar a ordem de execução dos comandos).
      O elemento _root: _root é uma variável típica do Flash-ActionScript que
       condiciona os outros elementos do Stage (ou cenário) a uma condição
       de filhos (child). O elemento _root serve então como referência a um
       elemento primordial de um cenário. Por exemplo, qualquer variável
       inicializada no Stage principal, pode ser referenciada por _root.Variavel.
       Do mesmo modo, se a mesma variável se encontra dentro de um
       MovieClip que está no _root, a referência correta seria
       _root.MovieClip.Variavel.
      Array extensível em tamanho: O tipo Array do ActionScript pode
       funcionar como uma lista. Como assim? Ao declarar um array com
       tamanho 10, o tamanho é especificado. Entretanto, se for inserido mais
       de 10 elementos no Array, este passa a suportar o tamanho do array do
       mesmo modo. Ou seja, funciona como uma lista e como um array ao
       mesmo tempo.
      Array extensível em tipos: Num mesmo array é possível inserir
       elementos de tipos diferentes. Por exemplo: índice 0 ter um Boolean,
       índice 1 ter uma String e índice 2 ter um Object.
      Tipo Function: Existe um tipo Function. Sendo assim, o programador
       pode retornar um função, passá-la como parâmetro em outra função e
       fazer operações como em outros tipos.




                              Especificação
Com o passar dos anos o ActionScript ganhou importância devido ao aumento
de interatividade principalmente nas aplicações Web. Assim, a linguagem
ganhou muitos adeptos e consequentemente vários tutoriais, fóruns e livros.
Abaixo segue a lista com alguns dos livros mais conhecidos sobre o
ActionScript.

      Essential ActionScript 3.0 (Essential) by Colin Moock (Paperback - Jun
       15, 2007)
      Essential ActionScript 2.0 by Colin Moock (Paperback - Jun 16, 2004) -
       Illustrated
      Foundation ActionScript for Flash 8 (Foundation) by Sham Bhangal,
       Kristian Besley, David Powers, and Eric Dolecki (Paperback - April 10,
       2006)
      Object-Oriented ActionScript For Flash 8 by Peter Elst and Todd Yard
       (Paperback - Feb 20, 2006)
      ActionScript for Flash MX: The Definitive Guide, Second Edition by Colin
       Moock (Paperback - Dec 19, 2002) - Illustrated
      Macromedia Flash 8 ActionScript: Training from the Source by Jobe
       Makar and Danny Patterson (Paperback - Jan 24, 2006)
      Beginning ActionScript 2.0 (Wrox Beginning Guides) by Nathan Derksen
       and Jeff Berg (Paperback - April 24, 2006)
      ActionScript 3 Bible by Roger Braunstein, Mims Wright, Joey Lott, and
       Josh Noble (Paperback - Sep 18, 2007)
      ActionScript Cookbook by Joey Lott (Paperback - Jun 2003)
      Macromedia Flash MX ActionScript for Fun and Games (With CD-ROM)
       by Gary Rosenzweig (Paperback - Jul 16, 2002)
      ActionScript 3 in Adobe Flash CS3 Professional Hands-On Training by
       Todd Perkins (Paperback - Sep 10, 2007)
      ActionScript 2.0 Language Reference for Macromedia Flash 8 by Francis
       Cheng, Jen deHaan, Robert L. Dixon, and Shimul Rahim (Paperback -
       Oct 13, 2005)


A Adobe, que é a atual responsável pela linguagem, possui um forum em seu
site (www.adobe.com) que funciona como suporte a aprendizagem. E em todas
as versões do programa Flash (do 5 ao 9) possui um Help com toda a API das
versões compatíveis do ActionScript.




                            Implementação
O único compilador existente para o ActionScript é o Flash Player, que foi
criado pela Macromedia (Adobe atualmente). O Flash Player passou por várias
modificações e atualmente está na sua nona edição, o Flash Player 9 ou Adobe
Flash Player (tendo desta vez a Adobe como proprietária).



O ActionScript é uma linguagem semi-interpretada. Possui uma Máquina Virtual
chamada ActionScript Virtual Machine que está atualmente em sua segunda
versão (AVM2). Antes do Flash Player 9, o arquivo (.fla), que é a extensão que
contém o ActionScript, era compilado para o AVM1 e do AVM1 interpretado
para linguagem de máquina, gerando um arquivo(.swf). Na versão atual, o
AVM2 ajuda o Player a compilar diretamente o arquivo(.fla) para o 'Code
Machine' atingindo um desempenho 10 vezes superior as versões anteriores.
Esse modo de compilação é conhecido como "JIT" (Just-In-Time) e, a título de
exemplo, é usado em Máquinas Virtuais conhecidas mundialmente como o JDK
1.5 (para Java).



Abaixo segue uma lista com as versões do Flash Player e respectivas versões
do ActionScript suportadas:
      Flash Players 5 e 6 - ActionScript 1.0
      Flash Players 7 e 8 - ActionScript 1.0 e 2.0
      Flash Player 9 ou Adobe Flash Player - Suporta as 3 versões, mas
       possui uma particularidade: O usuário deve escolher se quer compilar
       arquivos somente na versão 3.0 ou nas versões 2.0 e 1.0. Isso ocorre
       pois as versões 1.0 e 2.0 são compatíveis (o 2.0 é um incremento do
       1.0) mas o ActionScript 3.0 possui uma estrutura completamente
       diferenciada.




                  Ambiente de Desenvolvimento
Existem atualmente dois ambientes principais para desenvolver aplicativos e
jogos em ActionScript: o Macromedia Flash e o Adobe Flex Builder.

O Macromedia Flash, ou apenas Flash, é um programa que foi criado
inicialmente para a criação de animações com qualidade e com um mínimo
possível de interatividade por parte do usuário através de componentes
próprios do Flash como RadioButtons, NumericSteppers e etc. Com o passar
do tempo, com o surgimento e a necessidade de aplicações mais interativas e
com um bom suporte a animações como linhas do tempo (timelines), a
Macromedia foi levada a desenvolver um script em que fosse possível criar e
controlar o comportamento, o posicionamento, a visibilidade e outros atributos
dos Clipes de Video (MovieClips) que passariam a se tornar o tipo básico de
qualquer animação no Flash. Assim foi incluído um editor a partir do Flash 5
para que fosse desenvolvido o código em ActionScript.

O Flex Builder é um ambiente recentemente criado pela Adobe que manipula o
ActionScript 3.0 e MXML (linguagem de marcação). Uma grande diferença em
relação ao Flash é que o Flex oferece suporte a desenvolvimento simultâneo
de vários usuários. O que torna o Flex mais corporativo e o Flash mais voltado
ao entretenimento. Quanto à interface, o Flex Builder é quase idêntico a IDE
Eclipse. Inclusive possui os analisadores léxico e sintático que identificam erros
no código assim que ele é digitado.
Os componentes do flex são criados de duas maneiras: ou o usuário arrasta o
componente para o palco e o código é inserido no editor ou o inverso,
permitindo assim uma maior flexibilidade na criação da aplicação.
                      Exemplos de Programa
   Exemplo actionScript 1.0


    on(rollOver){
           gotoAndStop(15);
    }
    on(rollOut){
           setProperty(“myMovieClip”, _alpha, 40);
    }




   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;




   Exemplo actionScript 3.0

    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 e Desvantagens
ActionScript provê uma maneira mais eficiente de fazer coisas: criar
animações, aplicativos e jogos em Flash. ActionScript é uma linguagem
orientada a objetos que suporta herança de classes e todos requisitos que os
desenvolvedores desejam numa linguagem robusta. Ele provê um
desenvolvimento muito flexível e dinâmico de aplicações e jogos por possuir
uma interface bem intuitiva ao usuário. O usuário simplesmente pode jogar as
imagens no Stage, nomeá-las e usar estes nomes ao fazer o respectivo código.
Dessa forma, não é preciso criar e instanciar objeto por objeto como em outras
linguagens.

Outra vantagem é a leveza com que os aplicativos Flash rodam nos sistemas.
Por ActionScript ser uma linguagem semi-interpretada, contribui muito para a
leveza e compactação dos arquivos.

O AS 2.0 especificamente, é uma linguagem de fácil adaptação a
programadores de primeira viagem. Isto acontece pelo fato de poder ser
orientada a objetos ou não. Na verdade, isso depende da maneira como o
programador prefere trabalhar com o código, deixando assim, o programador
mais a vontade com a codificação de seu programa. Por outro lado, tal
liberdade implica uma maior gama de programadores inexperientes atraídos a
linguagem, de modo que pode se tornar cada vez menor a legibilidade dos
códigos. Já com o AS 3.0 isso não acontece, visto este ser totalmente
orientado a objetos, não permitindo qualquer outra forma ou paradigma de
programação.

A eficiência do ActionScript têm-se mostrado grande na área de Web. Devido a
sua grande proximidade e ligação com a interface gráfica do programa,
ActionScript é uma das linguagens mais usadas em sites da Internet no mundo
todo. Sua flexibilidade e rapidez devido ao Flash Player, tem conquistado cada
vez mais profissionais na área de web que desejam projetar sites ou aplicações
de maneira rápida e com muita praticidade em interfaces gráficas.

Uma desvantagem muito significativa no Universo Flash-ActionScript é a falta
de um 'laço' (for, while e do-while) seguro. Como já foi citado em um tópico
anterior, ActionScript não suporta aplicativos servidores por não ter
possibilidade de executar um laço infinito.

Segundo dados da revista INFO, o Flash Player, compilador do ActionScript, foi
listado em sua versão 7.0 como um dos programas mais vulneráveis a
invasões, ficando com a 6º posição, atrás de programas como Internet Explorer
6.0 e Nero Express. Mesmo com o lançamento do novíssimo Flash Player 9.0,
não se sabe ainda quão séria foi a melhoria neste aspecto de segurança.




                              Conclusões
Como podemos perceber ao examinar a história do ActionScript, as mudanças
aparecem com o tempo. E no caso do AS, aparecem sempre pra melhor.
Desde quando ainda era um protótipo de linguagem pouco robusta, AS já
mostrava aos seus usuários o seu alto potencial de flexibilidade, dinamismo e
praticidade quando o assunto era Web. Hoje, com o AS 3.0 totalmente
orientado a objetos, os pioneiros dessa linguagem se animam com o potencial
adquirido por esta. Se com apenas poucos comandos primitivos como 'play()' e
'stop()' o Flash era uma ferramenta indispensável para designers e
profissionais da área de animação, imagine o que pode ser feito com uma
linguagem clara, robusta, com um paradigma definido e um bom compilador!
Não é de admirar que o mercado anseie cada vez mais por programadores
ActionScript!

Paradigmas a parte, ActionScript tem conquistado vários adeptos ao redor do
mundo. De uma maneira tal, que imaginá-la como uma grande linguagem de
vasta aceitação no universo computacional não é mais um mero sonho, mas
sim, uma realidade.
                           Referências
   http://en.wikipedia.org/wiki/Actionscript
   http://en.wikipedia.org/wiki/Adobe_Flash
   http://en.wikipedia.org/wiki/Macromedia_Flash
   http://www.ibm.com/developerworks/library/wa-actionscript/index.html
   http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/w
    whelp.htm?context=LiveDocs_Book_Parts&file=04_OO_Programming_1
    61_11.html
   http://www.riapt.org/tiki-
    index.php?page=Optimizar+o+desenvolvimento+em+Flash+usando+ferr
    amentas+open-source
   http://www.adobe.com/br/aboutadobe/pressroom/pr/jun2006/PR_Adobe_
    Flash_.pdf
   http://www.digital-web.com/articles/the_road_to_actionscript_3/

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:10
posted:12/7/2011
language:Portuguese
pages:12