TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at EfectoProfundidad2_fla::MainTimeline/frame1()
Estoy intentando hace un efecto de profundidad de la web http://www.sargentoweb.com/as3/?doc=16
Lo he puesto tal y como me pone, total que ahora despues de unas modificaciones lo tengo asi:
Código ActionScript :
import fl.transitions.Tween; import fl.transitions.easing.*; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.MouseEvent; import flash.display.StageDisplayState; var Flor:MovieClip; var M1:MovieClip; var M2:MovieClip; var M3:MovieClip; var M4:MovieClip; var M5:MovieClip; var profundidad:Number; Flor.origenX=Flor.x; Flor.origenY=Flor.y; M1.origenX=M1.x; M1.origenY=M1.y; M2.origenX=M2.x; M2.origenY=M2.y; M3.origenX=M3.x; M3.origenY=M3.y; M4.origenX=M4.x; M4.origenY=M4.y; M5.origenX=M5.x; M5.origenY=M5.y; //VALORES DE PROFUNDIDAD Flor.profundidad=10; M1.profundidad=24; M2.profundidad=54; M3.profundidad=145; M4.profundidad=90; M5.profundidad=35; var arrObjetos:Array = new Array(); arrObjetos.push({name:"Flor", profundidad:"10"}); arrObjetos.push({name:"M1", profundidad:"24"}); arrObjetos.push({name:"M2", profundidad:"54"}); arrObjetos.sortOn("profundidad", Array.NUMERIC); for (var i:int = 0; i < arrObjetos.length; ++i) { arrObjetos[i].addEventListener(Event.ENTER_FRAME.fmover); addChild(arrObjetos [ i ] ); //trace(poets[i].name, poets[i].born); } /* output: Wang 701 Dante 1265 Blake 1757 cummings 1894 Angelou 1928 */ //CREAMOS UN ARRAY CON LOS OBJETOS QUE VAMOS A ORDENAR //var arrObjetos:Array=new Array(Flor,M1,M2,M3,M4,M5); //REORDENAMOS EL ARRAY, TOMANDO "PROFUNDIDAD" COMO PARAMETRO DEL ORDEN //arrObjetos.sortOn( "profundidad", Array.NUMERIC ); //ITERAMOS ENTRE EL ARRAY REORDENADO //for (var i:int = 0; i < arrObjetos.length; i++) { //arrObjetos[i].addEventListener(Event.ENTER_FRAME.fmover); //AGREGAMOS LOS OBJETOS POR SU ORDEN DE PROFUNIDAD //addChild(arrObjetos [ i ] ); //} var ratonX:Number; var ratonY:Number; var destX:Number; var destY:Number; function fmover(event:Event):void { //OBTENEMOS LA POSICION EN X ( -1 <= x <= 1 ) ratonX = ((stage.stageWidth / 2) - stage.mouseX) / (stage.stageWidth / 2); ratonY = ((stage.stageHeight / 2) - stage.mouseY) / (stage.stageHeight / 2); //OBTENEMOS EL DESTINO X FINAL DEL OBJETO destX = event.target.origenX + (ratonX * event.target.profundidad); //EVALUAMOS LA DIFERENCIA ACTUAL Y AUMENTAMOS UNA FRACCION event.target.x += (destX - event.target.x)/8; //OBTENEMOS EL DESTINO Y FINAL DEL OBJETO destY = event.target.origenY + (ratonY * event.target.profundidad); //EVALUAMOS LA DIFERENCIA ACTUAL Y AUMENTAMOS UNA FRACCION event.target.y += (destY - event.target.y)/8; //AJUSTAMOS LA POSICION DEL OBJETO event.target.x = event.target.origenX + (ratonX + event.target.profundidad); event.target.y = event.target.origenY + (ratonY + event.target.profundidad); }
A ver si alguien me puede echar un cable y si es de Barna le invito a unas Birras...
Saludos