Wow,um, that brings up a lot of questions for me. Oh well I'll have to keep playing. Glad that it at least LOOKED like I helped ya, cause really, i didn't!
ben

Bieniasz, Myles wrote:
Thanks Ben, good to know about getChildByName.  I've gotta lot of
digging through the docs to do.

I think what ended up being the problem was not removing the
eventListener on the Sprite. When I added this it worked fine.
event.target.removeEventListener(Event.ENTER_FRAME, fade_out);
this.removeChild(DisplayObject(event.target));

Thanks for your help and hopefully I'll be contributing a little bit
once I get up to speed.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of ben
gomez farrell
Sent: Thursday, April 26, 2007 1:55 PM
To: [email protected]
Subject: Re: [Flashcoders] removeChild error

Ugh that's too bad. It looks like in the Event class the target is typed as an object, so you can use it as an object, but not as an InteractiveObject or more specifically a DisplayObject.

But the fact you can use it as an object means that you can grab its name (there's an example of this in the Flex docs, so I know I'm not making this up). Anyway, I can do event.target.name to get the name of the object. To get the associated sprite, I can do
getChildByName(event.target.name)

Also, when the Event class loses its usefulness in practical situations,

you can always extend the event class and make a custom event of your own. This custom event listener can have additional parameters that you

could specify to be a sprite, and you could refer to it as event.mysprite when receiving the event. There's plenty of online resources to explain this more fully, and you'll need to know it eventually, but in your situation right now it might not be necessary, and you can just get its reference by name,

ben

Bieniasz, Myles wrote:
I originally tried removeChild(event.target) and got this error

1118: Implicit coercion of a value with static type Object to a
possibly
unrelated type flash.display:DisplayObject.

I got the DisplayObject(param) from the help docs in Flash but like I
said, that throws me an error too.

I tried your suggestion of casting it as a sprite or displayobject and
it gives me the same error as DisplayObject(param).

I also tried created a baseContainer sprite and adding and removing
everything from that but it gave me the same errors.

Thanks for your help Ben, I'll keep looking and if you think of
anything
else please let me know.

Thanks!

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of ben
gomez farrell
Sent: Thursday, April 26, 2007 11:34 AM
To: [email protected]
Subject: Re: [Flashcoders] removeChild error

Maybe I'm wrong, but I don't think DisplayObject works like that.  You

could create a new DisplayObject, but I don't think
DisplayObject(param)
does anything. I think you're either creating a new DisplayObject or creating a null object, and either way, it's not going to be a child
of
your mySpectrum Sprite.

removeChild(event.target)

should be adequate, but if target needs a little help to know what to
be
you can do this:

removeChild(event.target as DisplayObject) or removeChild(event.target

as Sprite)

Again, maybe I'm wrong, but that's my understanding

Bieniasz, Myles wrote:
I'm just starting to fool around with as3 and having a little fun
with
computeSpectrum.  I keep getting an error when I try to removeChild.
I'm using the Flash CS3 trial and setting the document class to
mySpectrum.  Any help/explanation would be greatly appreciated.
Thanks
in advance

Here's my script:

package{

            import flash.display.*;

            import flash.media.*;

            import flash.net.*;

            import flash.utils.*;

            import flash.events.*;

            import flash.display.Stage;

            public class mySpectrum extends Sprite{

                        private var _s:Sound;

                        private var _sc:SoundChannel;

                        private var _ba:ByteArray = new ByteArray();

                        public function mySpectrum(){

                                    stage.frameRate = 31;

                                    _s = new Sound();

                                    _s.load(new
URLRequest("bad_plus.mp3"));

                                    _sc = _s.play(0,1000);


addEventListener(Event.ENTER_FRAME,
get_spectrum);

                        }

                        private function
get_spectrum(event:Event):void{
SoundMixer.computeSpectrum(_ba,true,0);

                                    graphics.clear();


graphics.lineStyle(1,0xffffcc,100);
                                    var amp:Number = 0;

                                    for(var i:uint = 0; i<512; i++){

                                                var level:Number =
_ba.readFloat();

                                                amp += level;

                                    }

graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,amp);

                                    if(amp > 50){

                                                drawBurst(amp);

                                    }

                        }

                        private function
drawBurst(burst:Number):void{
                                    var burst_sprite:Sprite = new
Sprite();

burst_sprite.graphics.lineStyle(1,0xffffcc,(burst*.01));

burst_sprite.graphics.beginFill(0xffffcc,(burst*.01));

burst_sprite.graphics.drawCircle(Math.random() * stage.stageWidth,
Math.random() * stage.stageHeight, burst);

                                    addChild(burst_sprite);

burst_sprite.addEventListener(Event.ENTER_FRAME, fade_out);

                        }

                        private function fade_out(event:Event):void{

                                    event.target.alpha -=.05;

                                    if(event.target.alpha <.1){

removeChild(DisplayObject(event.target));

                                    }

                        }

            }

}

And here's the error:

ArgumentError: Error #2025: The supplied DisplayObject must be a
child
of the caller.

            at flash.display::DisplayObjectContainer/removeChild()

            at mySpectrum/::fade_out()

Myles Bieniasz

MLB Advanced Media

212.485.6129

[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>

************************
MLB.com: Where Baseball is Always On

_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


************************
MLB.com: Where Baseball is Always On


_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


************************
MLB.com: Where Baseball is Always On


_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to