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

AS3 – Classe para controlar posição relativa

Escrito por Silva Developer em 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 @ 06 16th, 2009 | via http://silvadeveloper.wordpress.com | Sem comentários
Silva Developer
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

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.

|

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 2756 entradas vindas de 53 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


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com