Comunidad de diseño web y desarrollo en internet online

remover Child con for la segunda vez no anda?¿?¿

Citar            
MensajeEscrito el 21 May 2011 10:05 pm
Bien tengo 2 bucles uno que crea x cantidad de clips y otro que lo remueve
creo que esta todo bien pero la segunda ves que lo utilizo me salta

ArgumentError: Error #2025: El objeto DisplayObject proporcionado debe ser un elemento secundario del llamador.
at flash.display::DisplayObjectContainer/removeChild()
at Blood_fla::MainTimeline/conter()

aca les dejo el codigo ojala puedan ayudarme gracias.
Saludos

Código ActionScript :


var par
var con:Number=0;
var partArray:Array= new Array();
var miBucle:Object;

stage.addEventListener(MouseEvent.CLICK,CreaBlood)

function CreaBlood(MouseEvent:Event):void
{
for (var i:int=0;i<250;i++)
{
   par = new Blood();
      partArray.push(par)
   //par.name="par"+i
   //partArray[i]=   par.name   
   par.x=mouseX + Math.round(Math.random()*25);
   par.y=mouseY + Math.round(Math.random()*25);
   par.rotation = Math.random()*360
   addChild(par)



}

addEventListener(Event.ENTER_FRAME,conter,false,0,true)


}

function conter(evento:Event)
{
con++
trace(con)
if (con==20)
{      
      con=0

removeEventListener(Event.ENTER_FRAME,conter);

for (var h:int;h<partArray.length;h++)
{
   removeChild(partArray[h])
}

trace(partArray)

for(var z:int;z<partArray.length;z++)
{partArray.pop()}

trace(partArray+"  z")


}//if
//<End>
}//function









Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 22 May 2011 04:34 am

Código ActionScript :

function CreaBlood(MouseEvent:Event):void 
{ 
partArray = [];
for (var i:int=0;i<250;i++) 
{ 

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 23 May 2011 11:18 am
Esto no lo veo bien:

Código ActionScript :

var h:int;h<partArray.length;h++...

var z:int;z<partArray.length;z++...

Estas forzando al int a comenzar desde 0, a mi parecer es mejor usar uint (porque no tendra valores negativos) e igualarlo a 0.
Por cierto, no necesitas dos bucles, con uno basta. Y quiza despues del bucle para removerlos, en vez del partArray.pop() puedes hacer lo que dice nasho, inicializar (o limpiar) tu array.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 23 May 2011 04:36 pm
Ok gracias por los consejos, pero les cuento que al final decidí reescribir mi código que quedo algo asi creo que funciona mejor.
Quedo asi

Código ActionScript :

 package com{
   
   
   import flash.display.MovieClip
   import flash.events.MouseEvent
   import flash.events.Event
   import flash.utils.Timer
   import flash.events.TimerEvent

   
   
   
   
   public class BloodEngine extends MovieClip{
      
var par:MovieClip
var con:Number=0;
var partArray:Array= new Array();
var miBucle:Object;
var NumOfPart:Number;
var init:int= 100
var _ref
var Tiempo:Timer= new Timer(50,0)
var _obj_tar= null
      
      
      public function BloodEngine():void
   {
         
      
   }

public function CreaBlood(xinit:int,ynit:int,ref,obj_tar):void
{
   _ref    = ref
   _obj_tar = obj_tar
for (var i:int=0;i<100;i++)
{
   par = new Blood();
   partArray.push(par)
   par.x=xinit + Math.round(Math.random()*5);
   par.y=ynit + Math.round(Math.random()*5);
   par.rotation = 21 + Math.random()*200
   ref.addChild(par)
   NumOfPart= partArray.length
Tiempo.start();
   Tiempo.addEventListener(TimerEvent.TIMER,removeParticles,false,1,true)
   
   }}



function removeParticles(evento:Event)
{
   NumOfPart--   
   _ref.removeChild(partArray[NumOfPart])
   trace(":"+NumOfPart)
   partArray.pop()
   if (NumOfPart== 0)Tiempo.stop(), removeEventListener(TimerEvent.TIMER,removeParticles)
   

   }


}//
   //END PACK AND CLASS
}//


Gracias de nuevo saluda Maxx

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox

 

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