Comunidad de diseño web y desarrollo en internet online

Cargar .swf varias veces y cambiar el nombre, loader addeventlistener

Citar            
MensajeEscrito el 07 Mar 2011 01:54 pm
Bueno, esta duda es la continuación a otra anterior.
Lo que intento conseguir es que al pulsar un botón, se cargue un .swf, al volver a pulsar el mismo botón se vuelva a cargar ese .swf pero que automáticamente se cambie el nombre, así ir añadiendo más veces ese .swf a la película pero con nombres distintos para poder interactuar.
Ejemplo: se pulsa un botón y aparece un planeta en la película.
Se pulsa otra vez ese botón y se carga el mismo planeta, con lo que ya habría dos.
El planeta al cargarlo por segunda vez ya no tiene el mismo nombre, por ejemplo sería planeta2.
Todo esto para después poder cambiar color, tamaño, etc.. arrastrar y soltar cada planeta independientemente, porque aunque sean el mismo en realidad son independientes.
Espero haberme explicado bien y aquí dejo un código a ver si alguien puede ayudarme.
Problemas que me da por un lado me dice que no encuentra startDrag en import.flash.display y por otro algo de display null.
Gracias, un saludo.

var objetoSeleccionado:DisplayObject=null;
function seleccionarObjeto(e:MouseEvent){

objetoSeleccionado=e.target as DisplayObject;

e.target.startDrag();
}
boton_sim.addEventListener(MouseEvent.MOUSE_DOWN,cargarsim)



var carga: Loader
var num:Number = 0
function cargarsim (e: MouseEvent) :void {
var ruta_sim : URLRequest = new URLRequest ("graficos/planeta.swf");

carga = new Loader();
carga.load (ruta_sim);
carga.contentLoaderInfo.addEventListener (Event.COMPLETE, mostrarsim);
function mostrarsim( e:Event):void
{
addChild (carga);
carga.name = "planeta"+num//cambia el nombre con cada carga del objeto

num++
carga.addEventListener(MouseEvent.MOUSE_DOWN,seleccionarObjeto)
}

}

Por honsuales

23 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2011 04:37 am
Tal cual lo tienes se podría arreglar pero la solución es compleja.

Lo mejor es que tengas un archivo "assets.swf" y dentro tener en la librería los clip de pelicula que quieras usar enlazados a una clase.


Digamos que le pusiste de nombre "PlanetaAsset" como nombre clase.

Te dejo el tutorial que se hizo sobre este tema: Cómo usar MovieClips en ActionScript 3.

Una vez vinculada NO la agregas al escenario de tu archivo assets.swf, dejalo limpio.

El código para usarlo luego sería:

Código ActionScript :

import flash.utils.getDefinitionByName;

carga = new Loader(); 
carga.load (ruta_sim); 
carga.contentLoaderInfo.addEventListener (Event.COMPLETE, mostrarsim); 
function mostrarsim( e:Event):void 
{ 
var PlanetaClass:Class = getDefinitionByName("PlanetaAsset");
var planet:Sprite = new PlanetaClass() as Sprite;

addChild (planet); 
planet.name = "planeta"+num//cambia el nombre con cada carga del objeto 

num++ 
planet.addEventListener(MouseEvent.MOUSE_DOWN,seleccionarObjeto) 
} 


Si en caso llegas a tener problemas con la función getDefinitionByName, puedes usar otra función que cree hace un tiempo: Cargar cualquier elemento de la Librería en AS3.

Espero que se haya entendido la idea.

Por Otaku RzO

BOFH

1890 de clabLevel

12 tutoriales
1 articulo

Genero:Masculino   Desarrollador de GAIA Bastard Operators From Hell

Lima - Perú

chrome
Citar            
MensajeEscrito el 08 Mar 2011 10:45 am
Muchas gracias voy a probarlo.
Un saludo.

Por honsuales

23 de clabLevel



 

firefox

 

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