Foros del Web » Creando para Internet » Flash y Actionscript »

Error al utilizar clases Tween (AS3)

Estas en el tema de Error al utilizar clases Tween (AS3) en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/08/2012, 11:40
Avatar de yonic  
Fecha de Ingreso: abril-2010
Mensajes: 21
Antigüedad: 14 años
Puntos: 3
Exclamación Error al utilizar clases Tween (AS3)

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 original
  1. import fl.transitions.Tween;
  2. import fl.transitions.TweenEvent;
  3. import fl.transitions.easing.*;
  4. import flash.events.MouseEvent;
  5. import flash.display.Graphics;
  6. import flash.display.MovieClip;
  7. import flash.display.Sprite;
  8.  
  9. var fundido:Sprite = new Sprite();
  10. fundido.graphics.lineStyle(0);
  11. fundido.graphics.beginFill(0x000000);
  12. fundido.graphics.drawRect(0,0,1000,700);
  13. fundido.alpha=0;
  14. var active:Boolean=false;
  15.  
  16. exitBut.visible = false;
  17.  
  18. function setup(itemActive:MovieClip) {
  19.     itemActive.stop();
  20.     itemActive.addEventListener(MouseEvent.MOUSE_UP,activate);
  21.     exitBut.addEventListener(MouseEvent.MOUSE_UP,deactivate);
  22.     var originalX:Number=itemActive.x;
  23.     var originalY:Number=itemActive.y;
  24.     var moveInX:Tween=new Tween(itemActive,"x",Strong.easeOut,originalX,90,1,true);
  25.     var moveInY:Tween=new Tween(itemActive,"y",Strong.easeOut,originalY,60,1,true);
  26.  
  27.     moveInX.stop();
  28.     moveInY.stop();
  29.  
  30.     function activate(e:MouseEvent) {
  31.         var fadeIn:Tween=new Tween(fundido,"alpha",Regular.easeOut,0,0.5,1,true);
  32.         moveInX.start();
  33.         moveInY.start();
  34.         addChild(fundido);
  35.         addChild(itemActive);
  36.         addChild(borders);
  37.         moveInX.addEventListener(TweenEvent.MOTION_FINISH,selectTown);
  38.         function selectTown(e:TweenEvent):void {
  39.             addChild(exitBut);
  40.             itemActive.removeEventListener(MouseEvent.MOUSE_UP,activate);
  41.             itemActive.gotoAndStop("province");
  42.             exitBut.visible = true;
  43.         }
  44.     }
  45.     function deactivate(e:MouseEvent) {
  46.         itemActive.prevFrame();
  47.         var fadeOut:Tween=new Tween(fundido,"alpha",Regular.easeOut,0.5,0,1,true);
  48.         fadeOut.addEventListener(TweenEvent.MOTION_FINISH,repeatAgain);
  49.         var moveOutX:Tween=new Tween(itemActive,"x",Strong.easeOut,140,originalX,1,true);
  50.         var moveOutY:Tween=new Tween(itemActive,"y",Strong.easeOut,60,originalY,1,true);
  51.         exitBut.visible = false;
  52.         function repeatAgain(e:TweenEvent) {
  53.             removeChild(fundido);
  54.         }
  55.     }
  56. }
  57. setup(CLM);
  58. setup(MUR);
  59. setup(MAD);
  60. setup(EXT);
  61. setup(CLN);
  62. setup(VAL);
  63. setup(AND);
  64. setup(ARG);
  65. setup(RJA);
  66. setup(GAL);
  67. setup(AST);
  68. setup(ESK);
  69. setup(NVR);
  70. setup(CNT);
  71. setup(CAT);
  72. setup(BAL);
  73. setup(CAN);
  74. setup(CEU);
  75. 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.

Última edición por yonic; 31/08/2012 a las 12:21
  #2 (permalink)  
Antiguo 01/09/2012, 17:25
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al utilizar clases Tween (AS3)

<saludos>
Pues en este equipo que estoy ahora no tengo el cs, pero leyendo el
inconveniente pareciera que es cuando se hace el removeChild al objeto
fusionado, y por ende pregunto fusionado es lo que contiene a los demás,
o es algo aparte, un fondo o algo así??
Podría ser también usando un this.removeChild, sin embargo, intenta
por ahora hacer por ahora el visible false al fusionado en vez del remove
child, para ver si logra llegar a él, o si también da inconveniente, y de ser
así, entonces es porque no está contenido en otro, o porque si está
contenido en otro pero ese otro no está siendo invocado en el
removeChild, en cuyo casó debería ir en vez del this que he mencionado
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: as3, flash, movieclip, tween
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:42.