Upload
internet
View
106
Download
2
Embed Size (px)
Citation preview
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
Novos Conceitos : classes, objectos ,método construtor, métodos set get, métodos, instâncias, extensão de classes, polimorfismo,…
Material: Slides PowerPoint
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao 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.
• 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
Tarefas típicas na programação orientada a objectos
25. Introdução ao ActionScript 3.0
package com.example.quickstart {import flash.display.MovieClip; public class Greeter { // ------- Método Construtor ------- public function Greeter(initialName:String = "") { name = initialName;} // ------- Propriedades ------- public var name:String; // ------- Métodos ------- public function sayHello():String { return “Hi”;} } }
Definição da Classe
25. Introdução ao ActionScript 3.0
import com.example.quickstart.Greeter;var michaelGreeter:Greeter = new Greeter("Michael");michaelGreeter.name = "Mike" trace(michaelGreeter.sayHello())
Para usarmos a classe definida anteriormente, temos de importar, colocando o package e o nome da Classe.
Utilização da Classe
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Uma classe é uma representação abstracta de um objecto
Classes
A definição da estrutura e o comportamento de objectos de um determinado tipo
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Um objecto é uma instância de uma determinada Classe
Objecto
A definição da estrutura e o comportamento de objectos de um determinado tipo
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Classe
Métodos
Propriedades
Objecto
Propriedades: valor
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Classe Carro
atestar()deQuemÉ()matricula()Idade()
combustiveldepositodonomatriculaanoMain Class
Timeline CodeExternal AS
DocumentClass
API da classe
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
carro1
carro2
Combustivel: 300deposito : 900dono : “Manuel”matricula : “bo-gi-21”ano : 2001
Combustivel: 100deposito : 210dono : “Miriam”matricula : “bi-de-33”ano : 2001
Carro
atestar()deQuemÉ()matricula()Idade()
combustiveldepositodonomatriculaano
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
//Declaração de packagepackage transportes{
//Declaração de Classe public class Carro {
//Declaração das propriedadesvar 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…. }}
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
25. Introdução ao 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 = new Array();
var meuArray:Array = new Array(12,23);
25. Introdução ao ActionScript 3.0
FLAMain.as Stage MovieClip
MouseEventKeyEvent
FiguraGeometricaKeyboardEvent MovieClip
Quadrado
Classes
Triangulo
Package:flash.events Package:flash.display Package:com.gonmiguel.figuras
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
CONTROLO DE ACESSO
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Controlo de Acesso: Variáveis e funções
keyword Acesso
public Disponivel para todas as chamadas
private Só disponivel para a classe que a declara
protectedDisponivel para a classe que a declara e para todas as subclasses
internal Disponivel para todas as classes do mesmo package
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Controlo de Acesso: Exemplos de utilização
private function drawTriangle():void {…}
private var variavelPrivada:Number ;
public function Aviao():void{…}
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
25. Introdução ao 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{ public class Carro {
private var combustivel:Number;
public function get combustivel():Number {return combustivel;
}public function set combustivel(comb:Number):void {
combustivel = comb;} …
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
PACKAGES
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao 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.
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Package Transportes {public class
Aviao {
} }
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;
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao 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 { .. } }
import Button;
import mx.controls.Button;
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Extensão e Hierarquia de classes
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Extensão e Hierarquia de classeshttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html
Package flash.display
Class public dynamic class MovieClip
Inheritance MovieClip Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object
Subclasses FlexMovieClip, GravityBootstrap, LivePreviewParent, SystemManager, UIMovieClip, WindowedSystemManager
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Extensão e Hierarquia de classesUm 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…)
Package Transportes {public class Aviao extends
MovieClip {
} }
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao 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.
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
CLASSE DOCUMENTO
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
É a classe responsável por controlar a timeline principal e o palco.
Para definir esta classe é necessário:
1. Definir um package;2. Importar a classe MovieClip;3. Extender a classe Movieclip;4. Definir um construtor para a classe;
package{
import flash.display.MovieClip;
public class Main extends MovieClip{
public function Main(){ }
}}
A Classe do Documento (Document Class) é a classe principal de um projecto em flash.
Document Class – Main Class
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Document Class
1. Cria um novo Documento Flash.
2. Clica no lápis , para definir a classe do documento
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao ActionScript 3.0
Document Class
3. Escreve o seguinte código no ficheiro aberto e grava-o com o nome Main.as
package{
import flash.display.MovieClip;
public class Main extends MovieClip{
public function Main(){
trace( “Script externo" );}
}}
Programação orientada a objectos em ActionScript 3.0
25. Introdução ao 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 Yaiserhttp://www.adobe.com/devnet/actionscript/learning.html
Santos, Máriohttp://blog.msdevstudio.net/2008/10/30/tutorial-classes-as3-estrutura-e-compreensao/