Problema al ver la película desde HTML
Hola.... Tengo un código que al probarlo en Flash funciona perfectamente, pero que al montarlo en un html me empieza a hacer cosas raras. He usado Charles para ver si detectaba algún problema pero todo parece estar bien...
Muchas gracias....
package {
import gs.*;
import gs.easing.*;
import flash.display.*;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class Prototipo2 extends MovieClip {
private var inFocus:MovieClip;
private var loader:URLLoader;
private var ancho:int;
private var alto:int;
public function Prototipo2():void {
alto = stage.stageHeight;
ancho = stage.stageWidth;
loader=new URLLoader(new URLRequest("images.xml"));
loader.addEventListener(Event.COMPLETE, setupClips);
}
private function setupClips(e:Event):void {
var xml:XML=new XML(e.target.data);
var list:XMLList=xml.image;
for (var i:int=0; i<list.length(); i++) {
var mc:MovieClip=MovieClip(con.getChildAt(i));//Convierte a MC, lo que se va encontrando en cada nivel...
mc.buttonMode=true;
mc.loc=[mc.x,mc.y];//Esta propiedad del MC guarda la localización original del MC, para así saber a dónde debe regresar cuando la mandamos atrás.
var l:Loader = new Loader();
l.x=-156 //Mitad de ancho y mitad de largo respectivamente
l.y=-192
l.load(new URLRequest(list[i].@src));
mc.addChildAt(l,0)
var flip:Flip= new Flip ();
mc.addChild (flip);
flip.x=100;
flip.y=140;
flip.addEventListener(MouseEvent.CLICK,flipClick);
mc.addEventListener(MouseEvent.CLICK,onClick);
}
}
private function flipClick(e:MouseEvent):void {
e.stopPropagation();//Esto es clave para que no se propague el evento al mc
var flip:Flip= new Flip ();
var mc:MovieClip=MovieClip(e.currentTarget.parent);//Así se accede al contenedor de flip
flip.removeEventListener(MouseEvent.CLICK,flipClick);
mc.removeChildAt (2);
if (mc!=inFocus) {//Siempre que el mc no este agrandado....
TweenLite.to(mc,0.2,{rotationY:180,ease:Linear.easeNone,onComplete:regresar})
function regresar (){
mc.addEventListener(MouseEvent.ROLL_OUT,onOut);
}
TweenLite.to(mc.detras,0.2,{alpha:1});//Esto es para que aparezca la etiqueta, MC enlarge dentro de cada foto
}
}
private function onOut(e:MouseEvent):void {
var mc:MovieClip=MovieClip(e.currentTarget);
var flip:Flip= new Flip ();
mc.removeEventListener(MouseEvent.ROLL_OUT,onOut);
if (mc!=inFocus) {//Siempre que el mc no este agrandado....
TweenLite.to(mc,0.2,{rotationY:0,ease:Linear.easeNone,onComplete:regresar2})
function regresar2 (){
flip.addEventListener(MouseEvent.CLICK,flipClick);
mc.addChild(flip);
}
TweenLite.to(mc.detras,0.2,{alpha:0});//Esto es para que desaparezca la etiqueta.
}
}
private function onClick(e:MouseEvent):void {
var mc:MovieClip=MovieClip(e.currentTarget);
var flip:Flip= new Flip ();
if (inFocus==null) {//Cuando no hay nada grande, inFocus es igual a null.
scaleUp(mc);//Como no hay nada grande, hacemos grande el actual mc
//Si ya hay algo en grande, lo hacemos pequeño y lo devolvemos a su posición inicial, guardada en forma de Array.
// Cuando se haya completado la animación, devolvemos a inFocus el valor null
} else if (inFocus==mc) {
removeChild (inFocus);
mc.x=0;
mc.y=0;
con.addChild (mc);
TweenLite.to(mc, 0.5, {scaleX:1,scaleY:1,x:mc.loc[0],y:mc.loc[1],ease:Strong.easeOut,onComplete:volver});
function volver(){
inFocus=null;
if (mc.rotationY==0){
mc.addChild(flip);
}
//ESTA FUNCIÓN ES LA QUE NO FUNCIONA EN EL HTML
if (mc.rotationY==180){
mc.addEventListener(MouseEvent.ROLL_OUT,onOut);
}
/////////
flip.addEventListener(MouseEvent.CLICK,flipClick);
}
}
}
private function scaleUp(mc:MovieClip):void {
inFocus=mc;//Como estamos haciendo grande este mc, inFocus deja de ser null
if (inFocus.rotationY==180){
inFocus.detras.alpha=1;
}else{
inFocus.detras.alpha=0;//Alfa de la etiqueta
inFocus.removeChildAt (2);
}
inFocus.x= ancho/2;//(inFocus.loc[0])
inFocus.y= alto/2;//(inFocus.loc[1])
addChild(inFocus);//De esta manera ponemos el mc sobre todo lo demás
TweenLite.to(inFocus,0.5,{width:ancho,height:alto,ease:Strong.easeOut});
}
}
}