i've amended my function to be
function m(evt:MouseEvent):void
{
setChildIndex(DisplayObject(evt.target),
numChildren-1);
}
which works but forcing the object type seems a bit hacky to me and
doesn't really teach me anything
On 27 Feb 2008, at 14:58, Allandt Bik-Elliott (Receptacle) wrote:
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
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders