Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SlyX

Começando com AS3 classe - ou f9

Recommended Posts

Acredito que assim como no AS2, programação com classes é bem melhor do que programação estruturada...

Depende muito do que vocÊ vai fazer..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não foi com o texto, e não consegui editar o tópico, então aqui vai o texto que era para estar contido no primeiro post

 

seguinte, criei vergonha na cara e comecei a programar em AS3..

 

tenho umas dúvidas sobre a utilização de classes, quais seriam as necessidades por exemplo:

 

posso fazer um stage resize assim (similar a como faria no as2)

addStageListener();
function addStageListener() {
	stage.scaleMode = StageScaleMode.NO_SCALE;
	stage.align = StageAlign.TOP_LEFT;
	stage.addEventListener(Event.RESIZE, resizeHandler);
}

function resizeHandler(event:Event):void {
	bg.x = (stage.stageWidth-bg.width)/2;
	bg.y = (stage.stageHeight-bg.height)/2;
}

 

assim como posso fazer assim:

 

import stageResize;
var sResize:stageResize = new stageResize(bg);

package {
	import flash.display.Stage;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;

	public class stageResize extends Sprite {
		private var _mc:Sprite;
		private var mcStage:Stage;

		public function stageResize(_mc:Sprite){
			this._mc = _mc;
			mcStage = _mc.stage;
			addStageListener();
		}

		public function addStageListener() {
			mcStage.scaleMode = StageScaleMode.NO_SCALE;
			mcStage.align = StageAlign.TOP_LEFT;
			mcStage.addEventListener(Event.RESIZE, resizeHandler);
		}

		private function resizeHandler(event:Event):void {
			_mc.x = (mcStage.stageWidth-_mc.width)/2;
			_mc.y = (mcStage.stageHeight-_mc.height)/2;
		}
	}
}

 

na pratica, qual seria melhor, qual seria mais correta, qual seria o ideal?

 

como no exemplo, eu fiz o stageResize do stage, no caso acho que nao precisaria repetir o resize, mas por acaso vamos supor, que mais para frente vai ter um objeto no palco e quando der o stage do palco quero que este objeto se mova tambem (sem ser o movieclip bg) eu faria outra classe para mover este objeto eu poderiar por ele dentro deste stageBG? (passando amis aprametros para a funcao)..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim eu havia visto o restante do tópico no flashmasters...

E continuo a dizer que compensaria a classe, igual ao que você mesmo disse a respeito de necessitar da mesma ação la na frente...

 

Trabalhar com classe no flash é trabalhar com Orientação a Objeto, estruturada da mais trabalho dependendo do serviço e as vezes é mais complicado..

 

Exemplo..

Voce tem 50 bolinhas pulando no seu stage..

Se o cliente pedir que algumas bolinhas façam uma ação diferente, seria só alterar uma propriedade do seu objeto, agora imagina se você tivesse trabalhado isso de forma estruturada, achar as 50 funções, editar dakele jeito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim eu havia visto o restante do tópico no flashmasters...

E continuo a dizer que compensaria a classe, igual ao que você mesmo disse a respeito de necessitar da mesma ação la na frente...

 

Trabalhar com classe no flash é trabalhar com Orientação a Objeto, estruturada da mais trabalho dependendo do serviço e as vezes é mais complicado..

 

Exemplo..

Voce tem 50 bolinhas pulando no seu stage..

Se o cliente pedir que algumas bolinhas façam uma ação diferente, seria só alterar uma propriedade do seu objeto, agora imagina se você tivesse trabalhado isso de forma estruturada, achar as 50 funções, editar dakele jeito...

 

 

eu faria a ação dentro de um for, e la poderia ate jogar uns random nas bolinhas :P

 

tipo assim, eu gosto (ou me acostumei) a programar estruturalmente... é até mais facil quando por exemplo, quero dar um addChild naquele movieclip da libary, não faço ideia de como fazer isso em um .as, seria algum pecado eu continuar com minha programação estrutural no as3?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria a ação dentro de um for, e la poderia ate jogar uns random nas bolinhas :P

BOua..

Mais e se tivessemos que adicionar quadrados e triangulos.. e alguns blurs?

rs...

 

Eu ainda sou desses que trabalha estruturalmente...

Mas aos poucos vejo que nao compensa..

Acabei de fazer 6 menus aki.. penso que se eu tivesse criado uma classe pra eles eu tinha me saindo bem melhor.. ahuahuahuahua

 

quero dar um addChild naquele movieclip da libary

Para xamá-los pode xamar via (export from actionscript)..

Vai nas propriedades dele e coloca um Linkage/Class, por exemplo bolinhas.

var bolinhas:bolinhas = new bolinhas();
addChils(bolinhas);

Acredito que com o tempo você vai larga esse negocio de programação estrutural..

Vai depender do que for precisando..

=D

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai que ta, eu tenho um movieclip e o meu carrossel, fica em baixo do background (movieclip) não sei como por ele em cima.

 

outra dúvida é o seguinte, fiz uma classe do meu stageResize, funciona beleza, quando eu passo a instancia quadrado1, mas no caso la dentro eu faço algo tipo banners.y = menu.y; e não funciona, no caso eu teria que passar todos os movieclips que eu vou trabalahr pela funcao?

 

import stageResize;

var sResize:stageResize = new stageResize(bg);

 

tipo

var sResize:stageResize = new stageResize(bg,banners,menu); etc...?

 

porque no as2, eu usava uma função generica e quando ia precisando ia só alterando dentro dela..

 

 

 

oq eu digo sobre o addChild é exatamenet isso, ele ta na libary do meu .fla, quando eu quiser dar o add nele pelo meu .as, vai dar tudo certo?

 

porque um dos meus maiores problemas é da comunicação do .fla com o .as

 

por exemplo, no meu palco tenho um movieclip chamado "abc" dentro deste movieclip, existe um outro movieclip com nome de "123".

no meu .as passo para ele minha instancia (abc), mas não consigo controlar o abc.123, ele da erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos lá,

 

AS 3.0 trabalha com itens posicionados em sua tela através de classes, se esses itens não existem dentro da classe você não tem como acessar ele. Por isso colocamos classe em todos os botões e itens quando vamos trabalhar com packages, pq ai você pode simplesmente colocar var menu:Menu = new Menu() por exemplo se a classe do seu menu for Menu...

E por ai vai.

 

Assim você evita de ter de passar 300 movieclips para dentro de uma classe se eles já existirem dentro dela... ou você vai ter que passar como você disse.

Você tbm pode fazer uma função que reconheça todos os clips em seu palco... assim deixando acessivel dentro da class.

 

E para mudar a posição de alguma coisa você pode usar o addChildAt... e pode alterar com swapChildrenAt().

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.