Comunidad de diseño web y desarrollo en internet online

Problema con AS en mc cargado usando LOADMOVIE

Citar            
MensajeEscrito el 02 Nov 2007 06:44 pm
Muy buenas tardes,
tengo este problema con LOADMOVIE ya hace tiempo y bueno decidi suscribirme al foro y consultar a ver si alguien puede ayudarme con esta inquitud...

por ejemplo cuando utilizo loadMovie("web.swf",_root.ventana) en el swf principal (supongamos carga.swf) para cargar la segunda pelicula, la carga es perfecta con peliculas q no poseen un actionscript complicados, pero que pasa cuando dentro del "web.swf" a cargar tengo por ejemplo un codigo action como el siguiente..

Actionscript en web.swf..

var estrellaCount:Number;
var initestrella:Object = new Object();
var estrellaSpeed:Number = 6;

initestrella.onEnterFrame = function() {
this._y += estrellaSpeed;

//para borrar las pepas cuando no le pegan asi no sigen hasta el infitnito
if (this._y>Stage.height) {
removeMovieClip(this);
}
};

function newestrella() {
estrellaName = "mcestrella"+String(estrellaCount);
estrellaDepth = this.getNextHighestDepth();
this.attachMovie("estrella",estrellaName,estrellaD epth,initestrella);
this[estrellaName]._xscale = 30;
this[estrellaName]._yscale = 30;
//Posicionandolo
this[estrellaName]._x = Math.random()*(Stage.width+this[estrellaName]._width)+this[estrellaName]._width/2;
this[estrellaName]._y = Math.random()*(Stage.width+this[estrellaName]._width);
estrellaCount++;
}

setInterval(_root, "newestrella", 2500);

//---------------//

en este caso es una funcion intervalo q cae cosas aleatorias con un orden aleatorio tambien..., tampoco funciona en peliculas como un scroll movil con drag de mouse.. etc.

Queria saber como solucionar este tipo de problemas ya q lo tuve en varias ocaciones y bueno lo solucione de otras maneras.

Espero algun capo de actionscript me pueda ayudar, aguardo respuestas.
Desde ya muchas gracias por su tiempo.
Saludos
Leonardo Amaya.
[email protected][/b]

Por leosmdp

2 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 02 Nov 2007 07:57 pm

  1. Recuerda usar las etiquetas [*code] [*/code] (sin los asteriscos) para postear código.
  2. El problema está en esta línea:

    Código :

    setInterval(_root, "newestrella", 2500);
    

    Sólo quítale el "_root"

    Código :

    setInterval(newestrella, 2500); 
    

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 05 Nov 2007 06:25 am
el problema está en que se te mezclan los niveles de las películas, por la razón que las referencias que haces a las mismas son absolutas, para solucionar eso lo que tenes que hacer es tratar de usar todo con referencias relativas (this, _parent) y no vas a tener dichos problemas. Pero la solución mas rápida y concreta es que las películas que traes por medio de loadMovie le coloques la siguiente línea al principio de su action: this._lockroot = true;
De esta manera el action que tiene el swf cargado trabajara sobre esa misma película y no sobre tu root principal. Es una solución rápida :) por si no quieres modificar el AS

Por leobaraldi

351 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 05 Nov 2007 12:49 pm
Leo muchas gracias por ese gran tip!! me soluciono mucho la vida!! jaja.. pequeños detalles que hacen a los grandes cambios!!.. Gracias, seguramente a muchos le servira.
saludos
leo.

Por leosmdp

2 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 05 Nov 2007 02:05 pm
Recuerden "_root" es malo, "_root" no se usa, "_root" es malo. Es preferible usar métodos alternativos con variables o usando "_parent" (no es por casualidad que "_root" ya no exista en AS3)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox

 

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