thanks for the input, Cor...

hmmm didn't work for me



On 27 Feb 2008, at 15:25, Cor wrote:

I made a minor adjustment because you have to typecast these to a Sprite:

<CODE COR>
package
{
        import flash.display.*;
        import flash.text.TextField;
        import flash.events.MouseEvent;
        
        public class GreetingApp extends Sprite
        {
                public function GreetingApp()
                {
                        //var rectAndCircle:Shape = new Shape(); shape
changed to sprite to support mouse event
                        var rectAndCircle:Sprite = new Sprite();
                        //adding multiple shapes to a single Shape()
instance is akin to creating a graphic instance
                        rectAndCircle.graphics.lineStyle(10,0x999999,1); //
draw lines around all rectAndCircle objects
                        rectAndCircle.graphics.beginFill(0x0000FF,1); // set
colour on object
                        rectAndCircle.graphics.drawRect(125,0,150,75); //
rectangle
                        rectAndCircle.graphics.beginFill(0xFF0000, 0.8); //
change colour on object
                        rectAndCircle.graphics.drawCircle(150,100,50); //
circle
                        rectAndCircle.x = 125;
                        rectAndCircle.y = 100;
                        //without this, rectAndCircle will not display
                        addChild(rectAndCircle);
                        //just for fun
        
rectAndCircle.addEventListener(MouseEvent.MOUSE_OVER,m) as Sprite;

                        var triangle:Sprite = new Sprite()
                        triangle.graphics.beginFill(0xFF5500,0.8);
                        triangle.graphics.moveTo(50,0);
                        triangle.graphics.lineTo(100,100);
                        triangle.graphics.lineTo(0,100);
                        triangle.graphics.lineTo(50,0);
                        triangle.graphics.endFill();
                        triangle.x = 175;
                        triangle.y = 75;
                        addChildAt(triangle, getChildIndex(rectAndCircle));
// puts triangle BELOW rectAndCircle
                        triangle.addEventListener(MouseEvent.MOUSE_OVER,m)
as Sprite;
                        
                        function m(e:MouseEvent):void
                        {
                                trace(this);
                                //setChildIndex(this, numChildren-1);
//doesn't work - 'this' is scoped to the holding object
                                trace(e);
                        }
                        
                        var greeting_txt:TextField = new TextField();
                        greeting_txt.text = "hello world";
                        greeting_txt.x = 200;
                        greeting_txt.y = 300;
                        addChild(greeting_txt);
                }
        }
}
</CODE COR>

-----Oorspronkelijk bericht-----
Van: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Namens Allandt
Bik-Elliott (Receptacle)
Verzonden: woensdag 27 februari 2008 15:58
Aan: flashcoders
Onderwerp: [Flashcoders] quick scoping question

hi guys

i'm playing with some as3 to get my head around it and i've come across a little wierdness in the drawing api that i hope you can shed some light on

here is my script - it's an amended version of one from Essential
Actionscript:

<CODE>

package com.receptacle.drawingtest
{
        import flash.display.*;
        import flash.text.TextField;
        import flash.events.MouseEvent;
        
        public class GreetingApp extends Sprite
        {
                public function GreetingApp()
                {
                        //var rectAndCircle:Shape = new Shape(); shape
changed to sprite to support mouse event
                        var rectAndCircle:Sprite = new Sprite();
                        //adding multiple shapes to a single Shape()
instance is akin to creating a graphic instance
                        rectAndCircle.graphics.lineStyle(10,0x999999,1); //
draw lines around all rectAndCircle objects
                        rectAndCircle.graphics.beginFill(0x0000FF,1); // set
colour on object
                        rectAndCircle.graphics.drawRect(125,0,150,75); //
rectangle
                        rectAndCircle.graphics.beginFill(0xFF0000, 0.8); //
change colour on object
                        rectAndCircle.graphics.drawCircle(150,100,50); //
circle
                        rectAndCircle.x = 125;
                        rectAndCircle.y = 100;
                        //without this, rectAndCircle will not display
                        addChild(rectAndCircle);
                        //just for fun
        
rectAndCircle.addEventListener(MouseEvent.MOUSE_OVER,m);

                        var triangle:Sprite = new Sprite()
                        triangle.graphics.beginFill(0xFF5500,0.8);
                        triangle.graphics.moveTo(50,0);
                        triangle.graphics.lineTo(100,100);
                        triangle.graphics.lineTo(0,100);
                        triangle.graphics.lineTo(50,0);
                        triangle.graphics.endFill();
                        triangle.x = 175;
                        triangle.y = 75;
                        addChildAt(triangle, getChildIndex(rectAndCircle));
// puts triangle BELOW rectAndCircle
                        triangle.addEventListener(MouseEvent.MOUSE_OVER,m);
                        
                        function m(event:MouseEvent):void
                        {
                                setChildIndex(this, numChildren-1);
//doesn't work - 'this' is scoped to the holding object
                        }
                        
                        var greeting_txt:TextField = new TextField();
                        greeting_txt.text = "hello world";
                        greeting_txt.x = 200;
                        greeting_txt.y = 300;
                        addChild(greeting_txt);
                }
        }
}

</CODE>

is what i've done possible? ie can i set a single mouseListener method (m in my example) to be used by any of the sprites to move themselves to the front of the display stack or would i have to write an explicit statement for each
one?

thanks for your time
a



_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.1/1300 - Release Date: 26-2-2008
19:50


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.1/1300 - Release Date: 26-2-2008
19:50


No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.1/1300 - Release Date: 26-2-2008
19:50


_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to