Comunidad de diseño web y desarrollo en internet online

Copiar imagen con AS3

Citar            
MensajeEscrito el 14 Jun 2009 11:12 am
Hola queridos flashmachines! Es q despues de buscar por todas partes ya no puedo mas y recurro a preguntar... y el problema que tengo (parece muy simple, pero es k soy muy novato) es que si por ejemplo creo un movieclip un cuadrado verde en pekeño situado en una eskina del marco, me gustaria conseguir hacer que al pasar por encima se cree una copia del mismo y se situe por ejemplo en el centro de la pantalla o marco con un mallor tamaño, y q al salir o situar fuera del cuadrado el cursor, se borrre esa copia... ahi lo dejo... si alguien me quiere ayudar le estare muyyyy agradecido, de verdad... por q me siento tan impotente al no saber q hacer.......

Gracias!

Por BMXer

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2009 11:02 am
En la clase MovieClip existe un método llamado duplicateMovieClip que permite hacer una copia de un movieClip. Si en tu escena hay un MovieClip con nombre de instancia "cuadro", pega este código en el frame donde se encuentre, hará algo como lo que buscas:

Código ActionScript :

cuadro.onRollOver = function():Void{
   
   var posX:Number = (Stage.width - this._width) / 2;
   var posY:Number = (Stage.height - this._height) / 2;
   
   this.duplicateMovieClip("copia", this._parent.getNextHighestDepth(), {_x:posX, _y:posY});
   
}

cuadro.onRollOut = function():Void{
   
   this._parent.copia.removeMovieClip();
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 15 Jun 2009 01:05 pm
gracias por la ayuda pero me parece k el codigo k me has dado es en actionscript 2.0 y lo k necesito es en 3.0 q es mas complejo ya que me parece que no existe el duplicatemovieclip.... ese es mi gran problema.... pero gracias igualmente!

Por BMXer

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2009 01:46 pm
Disculpa, no me fije que era en AS3, estás en un foro de Flash en general, hay otro para AS1 y AS2 y hay otro para AS3 especificamente. En AS3 como bien has dicho no hay duplicateMovieClip, aunque han hecho algunas cosas para tratar de emularlo, lo mejor será crear una nueva instancia de la clase. Para eso debes exportar tu MovieClip para actionscript y en la acción de MOUSE_OVER creas una nueva instancia de esa clase.

Otra opción es que hagas una copia en forma de bitmap de tu clip, algo como esto:

Código ActionScript :

cuadro.addEventListener(MouseEvent.MOUSE_OVER, copyMovie);
cuadro.addEventListener(MouseEvent.MOUSE_OUT, deleteMovie);

//---Función de copiar el movie
function copyMovie(evt:MouseEvent):void{
   
   var copia:Bitmap = duplicateMovie(DisplayObject(evt.currentTarget));
   copia.x = (stage.stageWidth - copia.width) / 2;
   copia.y = (stage.stageHeight - copia.height) / 2;
   addChild(copia).name = "copia";
   
}

//---Función de borrar la copia
function deleteMovie(evt:MouseEvent):void{
   
   var copia:DisplayObject = getChildByName("copia");
   removeChild(copia);
   
}

//---Función para hacer una copia del displayObject
function duplicateMovie(obj:DisplayObject):Bitmap{
   
   var bData:BitmapData = new BitmapData(obj.width, obj.height, true, 0x00000000);
   bData.draw(obj);
   
   var bitmap:Bitmap = new Bitmap(bData, "auto", true);
   
   return bitmap;
   
   bData.dispose();
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.