AlDev
07.12.2005, 07:43
Господа, вот такая вот проблемка. Пишу код:
package
{
import flash.display.Sprite;
import flash.display.SimpleButton;
import flash.display.Shape;
import flash.events.MouseEvent;
import flash.events.MouseEventType;
import flash.util.trace;
public class myApp extends Sprite
{
protected var b:Array;
public function myApp()
{
this.b = new Array();
for (var i:uint = 0;i<10;i++)
{
this.b[i] = new myButton();
this.b[i].x = 60*i;
this.b[i].y = 10;
this.b[i].addEventListener(MouseEventType.CLICK,this.onButtonClick);
this.addChild(this.b[i]);
}
}
protected function onButtonClick(evnt:MouseEvent):Void
{
trace ('onRelease called');
}
}
private class myButton extends SimpleButton
{
protected var downSprite:Shape;
protected var upSprite:Shape;
public function myButton()
{
this.downSprite = new Shape();
this.downSprite.graphics.lineStyle(2, 0x202020);
this.downSprite.graphics.beginFill(0x00FF00);
this.downSprite.graphics.drawRect(10, 10, 50, 50);
this.upSprite = new Shape();
this.upSprite.graphics.lineStyle(2, 0x202020);
this.upSprite.graphics.beginFill(0xFFFF00);
this.upSprite.graphics.drawRect(10, 10, 50, 50);
this.upState = upSprite;
this.overState = upSprite;
this.downState = downSprite;
this.useHandCursor = true;
this.hitTestState = this;
}
}
}
а проблемка в том, что событие срабатывает только для первого элемента в массиве.
Объясните, pls, почему? :confused:
package
{
import flash.display.Sprite;
import flash.display.SimpleButton;
import flash.display.Shape;
import flash.events.MouseEvent;
import flash.events.MouseEventType;
import flash.util.trace;
public class myApp extends Sprite
{
protected var b:Array;
public function myApp()
{
this.b = new Array();
for (var i:uint = 0;i<10;i++)
{
this.b[i] = new myButton();
this.b[i].x = 60*i;
this.b[i].y = 10;
this.b[i].addEventListener(MouseEventType.CLICK,this.onButtonClick);
this.addChild(this.b[i]);
}
}
protected function onButtonClick(evnt:MouseEvent):Void
{
trace ('onRelease called');
}
}
private class myButton extends SimpleButton
{
protected var downSprite:Shape;
protected var upSprite:Shape;
public function myButton()
{
this.downSprite = new Shape();
this.downSprite.graphics.lineStyle(2, 0x202020);
this.downSprite.graphics.beginFill(0x00FF00);
this.downSprite.graphics.drawRect(10, 10, 50, 50);
this.upSprite = new Shape();
this.upSprite.graphics.lineStyle(2, 0x202020);
this.upSprite.graphics.beginFill(0xFFFF00);
this.upSprite.graphics.drawRect(10, 10, 50, 50);
this.upState = upSprite;
this.overState = upSprite;
this.downState = downSprite;
this.useHandCursor = true;
this.hitTestState = this;
}
}
}
а проблемка в том, что событие срабатывает только для первого элемента в массиве.
Объясните, pls, почему? :confused: