320 likes | 420 Views
DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012. FORMADOR Gonçalo Miguel MÓDULO 25. Introdução ao ActionScript 3.0. 25. Introdução ao ActionScript 3.0. Módulo 25 – 3ª Sessão. Conceitos de Programação orientada a objectos Recorrendo ao ActionScript 3.0
E N D
DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 FORMADORGonçalo Miguel MÓDULO25. Introdução ao ActionScript 3.0
25. Introdução ao ActionScript 3.0 Módulo 25 – 3ª Sessão Conceitos de Programação orientada a objectos Recorrendo ao ActionScript 3.0 Novos Conceitos : classes, objectos ,método construtor, métodos set get, métodos, instâncias, extensão de classes, polimorfismo,… Material: Slides PowerPoint
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Programação orientada a objectos Programação orientada a objectos é uma maneira de organizar o código de um programa, agrupando-o em objectos, que são os elementos individuais que incluem informação ( propriedades com valores ) e comportamentos. Tarefas típicas na programação orientada a objectos • Definição de classes • Criação de propriedades, métodos de obtenção e definição de acessor (Set / Get) • Controle do acesso a classes, propriedades, métodos e acessores • Criação de propriedades e métodos estáticos
25. Introdução ao ActionScript 3.0 Definição da Classe package com.example.quickstart { importflash.display.MovieClip; publicclass Greeter { // ------- Método Construtor ------- publicfunction Greeter(initialName:String = "") { name = initialName; } // ------- Propriedades ------- publicvar name:String; // ------- Métodos ------- publicfunction sayHello():String { return “Hi”; } } }
25. Introdução ao ActionScript 3.0 Utilização da Classe Para usarmos a classe definida anteriormente, temos de importar, colocando o package e o nome da Classe. importcom.example.quickstart.Greeter; var michaelGreeter:Greeter = new Greeter("Michael"); michaelGreeter.name = "Mike" trace(michaelGreeter.sayHello())
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Classes Uma classe é uma representação abstracta de um objecto A definição da estrutura e o comportamento de objectos de um determinado tipo
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Objecto Um objecto é uma instância de uma determinada Classe A definição da estrutura e o comportamento de objectos de um determinado tipo
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Classe Objecto Propriedades Propriedades: valor Métodos
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Classe Carro combustivel deposito dono matricula ano MainClass TimelineCode External AS DocumentClass atestar() deQuemÉ() matricula() Idade() API da classe
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 carro1 Carro Combustivel: 300 deposito : 900 dono : “Manuel” matricula : “bo-gi-21” ano : 2001 combustivel deposito dono matricula ano atestar() deQuemÉ() matricula() Idade() carro2 Combustivel: 100 deposito : 210 dono : “Miriam” matricula : “bi-de-33” ano : 2001
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 //Declaração de package package transportes{ //Declaração de Classepublicclass Carro { //Declaração das propriedades var combustivel:Number; //Método Construtor – Para construir um elemento do nosso novo tipo public function Carro() { } //Declaração dos métodos //atestar, andar, contaKm, media, etc…. } }
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Método Construtor
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 • O método construtor é o método que nos permite instanciar um objecto da classe, e é o único método que tem de existir em todas as classes. • O método construtor tem de ser obrigatoriamente público ( Ver controlo de acesso) • O método construtor tem o mesmo nome da classe e não tem valor de retorno, apesar de retornar sempre um objecto da classe. • Podemos ter vários métodos construtores que sejam instanciados com diferentes argumentos, mas sempre com o nome da classe. • Caso do Array: • var meuArray:Array = newArray(); • var meuArray:Array = newArray(12,23);
25. Introdução ao ActionScript 3.0 Stage FLA Main.as Classes MovieClip FiguraGeometrica KeyboardEvent MovieClip Package:flash.display Package:flash.events Package:com.gonmiguel.figuras KeyEvent MouseEvent Quadrado Triangulo
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 CONTROLO DE ACESSO
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Controlo de Acesso: Variáveis e funções
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 • Controlo de Acesso: Exemplos de utilização • private function drawTriangle():void { • … • } • private var variavelPrivada:Number ; • public function Aviao():void{ • … • }
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Métodos Set e Get
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 As propriedades das classes não devem ser acedidas directamente por outras classes. Devemos então definir as nossas variáveis como private, e devemos implementar uma função para aceder à propriedade (Getter – de Get) e outra função para associar um valor a uma propriedade (Setter – de Set). package Transporte{ publicclass Carro { private var combustivel:Number; public function getcombustivel():Number {returncombustivel; } public function setcombustivel(comb:Number):void {combustivel = comb; } …
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 PACKAGES
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Package: Conceito Um package corresponde a uma estrutura de classes actionscript. Uma classe que instancie um objecto, não é escrita nas actions do fla. É escrita num ficheiro próprio de extensão .as (actionscript) e tem obrigatoriamente de estar dentro de um package. Se o ficheiro “as” estiver na mesma directoria do .fla, deverá ser declarado sem nome. Caso esteja dentro de uma directoria, deverá ser declarado com o nome da directoria.
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 • Package Transportes { • publicclassAviao { • } • } Definição básica da classe Aviao. Indica-nos que para usarmos a classe Aviao , teremos de importar o package Transportes. No nosso ficheiro de actionscript principal, importaríamos da seguinte maneira: import Transportes.Aviao;
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Package: Declaração Exemplos: a.)Esta classe está definida na mesma directoria do “.fla” package { class Button { .. } } b.)Esta classe está definida dentro de uma directoria controls, que por sua vez está dentro de uma directoria mx package mx.controls { class Button { .. } } importButton; importmx.controls.Button;
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Extensão e Hierarquia de classes
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Extensão e Hierarquia de classes http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Extensão e Hierarquia de classes Um objecto da classe MovieClip é também da classe Sprite, DisplayObjectContainer, InteractiveObject , DisplayObject, EventDispatcher e Object Para criarmos uma classe que seja herdada de outra, temos de utilizar a palavra extends como no exemplo que se segue. Uma classe Aviao que estende a classe MovieClip ( E tem a sua própria timeline…) • PackageTransportes { • publicclassAviaoextendsMovieClip{ • } • }
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Polimorfismo O polimorfismo consiste em re-escrever os métodos de uma classe da qual foi extendida. Utiliza-se a palavra dedicada override para sobrepor a função local à função existente na Super Classe.
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 CLASSE DOCUMENTO
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 DocumentClass– MainClass • É a classe responsável por controlar a timeline principal e o palco. • Para definir esta classe é necessário: • Definir um package; • Importar a classe MovieClip; • Extender a classe Movieclip; • Definir um construtor para a classe; A Classe do Documento (Document Class) é a classe principal de um projecto em flash. package{ importflash.display.MovieClip; publicclassMainextendsMovieClip { public function Main(){ } } }
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Document Class 1. Cria um novo Documento Flash. 2. Clica no lápis , para definir a classe do documento
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Document Class 3. Escreve o seguinte código no ficheiro aberto e grava-o com o nome Main.as package { importflash.display.MovieClip; publicclassMainextendsMovieClip { public function Main() { trace( “Script externo" ); } } }
25. Introdução ao ActionScript 3.0 Programação orientada a objectos em ActionScript 3.0 Referências : Programação orientada a objectos em AS3 Capitulo 5 - Adobe Systems: Programação do Adobe ActionScript 3.0 http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/flash_as3_programming.pdf ELST,Peter ;JACOBS, Sas; YARD, Todd; Object-Oriented ActionScript 3.0 ; friendsof:Apress ; 2007 Object-oriented programming by Michelle Yaiser http://www.adobe.com/devnet/actionscript/learning.html Santos, Mário http://blog.msdevstudio.net/2008/10/30/tutorial-classes-as3-estrutura-e-compreensao/