logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

AS3 – Classe para controlar posição relativa

Colocado por Silva Developer na(s) categoria(s): Actionscript, actionscript posicao relativa, actionscript posicion relativa, actionscript position relative, as3 posicao relativa, as3 posicion relativa, as3 position relative, flex posicao relativa, flex posicion relativa, flex position relative em 06 16th, 2009 | Sem comentários

Pra quem tem que trabalhar com aplicacoes multimidia, vira e mexe se debate com alguns desafios pra fazer em actionscript (as3).

Ha cerca de 3 meses, tenho dividido minha rotina diaria de trabalho entre aplicacoes multimidia e e-business.Com isso, tenho aprendido muita coisa… muita coisa mesmo.Sendo assim vou a partir de agora compartilhar com voces algumas de minhas pequenas, medias e grandes descobertas desta minha nova jornada profissional, e espero que com isso possa ajudar algum desenvolvedor de alguma forma.

Aqui vai uma pequena, essa classe em questao é pra controlar o posicionamento relativo de objetos em relacao a um objeto principal.Muito utilizado quando se tem que fazer zoom em uma imagem por exemplo, e esta imagem possui pontos que devem acompanhar e seguir na mesma posicao de acordo com o zoom ou movimento aplicado sobre a imagem (objeto principal).

Segue abaixo o código da classe controladora:

package com.confidential.components.utilities
{

import flash.events.Event;
import flash.events.MouseEvent;

import mx.core.UIComponent;

public class PositionRelative
{
private var _target:UIComponent;
private var _scaleXIni:Number;
private var _scaleYIni:Number;
private var _items:Array;

//Start position relative control
public function PositionRelative(target:UIComponent)
{
_target = target;
_scaleXIni = _target.scaleX;
_scaleYIni = _target.scaleY;

_target.addEventListener(Event.ENTER_FRAME, update);
_target.addEventListener(MouseEvent.MOUSE_DOWN, blockenterFrame);
_target.addEventListener(MouseEvent.MOUSE_UP, freeenterFrame);

_items = new Array();
}

//Add objects that will be controled
public function addItem(item:UIComponent):void
{
var reg:Object = new Object();
reg.item = item;
reg.x = item.x – _target.x;
reg.y = item.y – _target.y;
_items.push(reg);
}

//Update object position
public function update(e:*=null):void
{
var _scaleX:Number=1 + _target.scaleX – _scaleXIni;
var _scaleY:Number=1 + _target.scaleY – _scaleYIni;

var total:uint=_items.length;
var i:uint;
for (i=0; i < total; i++)
{
_items[i].item.x=Math.round(_target.x + (_items[i].x * _scaleX));
_items[i].item.y=Math.round(_target.y + (_items[i].y * _scaleY));
}
}

//Remove event enter_frame for user can moved objects mobiles
public function blockenterFrame(e:*=null):void
{
_target.removeEventListener(Event.ENTER_FRAME, update);

}

//Add event enter_frame back after move objects mobiles
public function freeenterFrame(e:*=null):void
{
_target.addEventListener(Event.ENTER_FRAME, update);
}

}

}

Feito isso depois para utiliza-la é só utilizar o seguinte código:

public var _positionRelative:PositionRelative;
_positionRelative = new PositionRelative(foto);
_positionRelative.addItem(_obj1);
_positionRelative.addItem(_obj2);
_positionRelative.addItem(_obj3);

Pronto, desta forma seus objetos vao ter sempre a mesma posicao do seu objeto principal, independente do zoom aplicado ou do movimento aplicado no objeto principal.

No próximo post vou mostrar a voces uma forma de aplicar a um objeto principal um zoom/movimento relativo, ou seja, voce tem uma imagem em tamanho normal e a mesma imagem em tamanho miniatura, e deseja que de acordo com o movimento do mouse sobre a miniatura, seja reproduzido o movimento/zoom relativo na imagem principal.

Abraco a todos!

P.S:A falta de acentos é por causa do layout do teclado.



Veja o post original no blog do autor aqui!  

Silva Developer

Escrito por Silva Developer @ http://silvadeveloper.wordpress.com
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Teclas de atalho do Flex 3 Builder
» AS3 – Classe para controlar posição relativa
» Instalando e configurando o adaptador oracle no rails

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 1861 entradas vindas de 47 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Está o rederia mias rápido??
Ver Resultados

AUTORES


Eduardo KrausAlexandreBindableDaniel LopesDaniel SchmitzDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com