Esta vez estoy creando una especie de mapa interactivo con AS3, y estoy intentando optimizar el código para que tenga menos líneas. El problema es que cuando compilo la película, me sale un error.
Se tendría que hacer clic sobre una comunidad autónoma para que ésta se moviera a un lado, y luego darle clic al botón salir para que reprodujera la animación en la que tendría que volver a su posición original, pero al parecer, es como si se reprodujeran todas las animaciones para que las comunidades autónomas volvieran a su posición original.
El error es el siguiente:
Código:
ArgumentError: Error #2025: El objeto DisplayObject proporcionado debe ser un elemento secundario del llamador.
at flash.display::DisplayObjectContainer/removeChild()
at MethodInfo-54()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.transitions::Tween/set time()
at fl.transitions::Tween/nextFrame()
at fl.transitions::Tween/onEnterFrame()
No uso paquetes ni clases nuevas esta vez, solo tengo el siguiente código en AS3 en el fotograma 1:
Código actionscript:
Ver originalimport fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
import flash.events.MouseEvent;
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.display.Sprite;
var fundido:Sprite = new Sprite();
fundido.graphics.lineStyle(0);
fundido.graphics.beginFill(0x000000);
fundido.graphics.drawRect(0,0,1000,700);
fundido.alpha=0;
var active:Boolean=false;
exitBut.visible = false;
function setup(itemActive:MovieClip) {
itemActive.stop();
itemActive.addEventListener(MouseEvent.MOUSE_UP,activate);
exitBut.addEventListener(MouseEvent.MOUSE_UP,deactivate);
var originalX:Number=itemActive.x;
var originalY:Number=itemActive.y;
var moveInX:Tween=new Tween(itemActive,"x",Strong.easeOut,originalX,90,1,true);
var moveInY:Tween=new Tween(itemActive,"y",Strong.easeOut,originalY,60,1,true);
moveInX.stop();
moveInY.stop();
function activate(e:MouseEvent) {
var fadeIn:Tween=new Tween(fundido,"alpha",Regular.easeOut,0,0.5,1,true);
moveInX.start();
moveInY.start();
addChild(fundido);
addChild(itemActive);
addChild(borders);
moveInX.addEventListener(TweenEvent.MOTION_FINISH,selectTown);
function selectTown(e:TweenEvent):void {
addChild(exitBut);
itemActive.removeEventListener(MouseEvent.MOUSE_UP,activate);
itemActive.gotoAndStop("province");
exitBut.visible = true;
}
}
function deactivate(e:MouseEvent) {
itemActive.prevFrame();
var fadeOut:Tween=new Tween(fundido,"alpha",Regular.easeOut,0.5,0,1,true);
fadeOut.addEventListener(TweenEvent.MOTION_FINISH,repeatAgain);
var moveOutX:Tween=new Tween(itemActive,"x",Strong.easeOut,140,originalX,1,true);
var moveOutY:Tween=new Tween(itemActive,"y",Strong.easeOut,60,originalY,1,true);
exitBut.visible = false;
function repeatAgain(e:TweenEvent) {
removeChild(fundido);
}
}
}
setup(CLM);
setup(MUR);
setup(MAD);
setup(EXT);
setup(CLN);
setup(VAL);
setup(AND);
setup(ARG);
setup(RJA);
setup(GAL);
setup(AST);
setup(ESK);
setup(NVR);
setup(CNT);
setup(CAT);
setup(BAL);
setup(CAN);
setup(CEU);
setup(MEL);
Si es necesario, también he subido el archivo .fla: http://www.mediafire.com/?5qv9qsl4bdabgat
La versión es de Adobe Flash CS4.