rain_heart
27.04.2010, 13:44
Вобщем есть вот такой скрип, для примера:
Класс MyButton просто создает статичный квадрат
package {
import flash.display.*
import flash.events.*
public class MyButton extends Sprite {
private var container:Sprite = new Sprite();
private var button:Shape = new Shape();
public function MyButton() {
Build();
addChild(container);
container.addChild(button);
}
private function Build() {
button.graphics.beginFill(0xFF0000, 1);
button.graphics.drawRect(0, 0, 100, 100);
button.graphics.endFill();
}//end function menuBox
}
}
А вот в этом классе загвоздка.
package {
import flash.display.*
import flash.events.*
import MyButton;
public class Test extends Sprite {
private var newButton:MyButton;
public function Test() {
newButton = new MyButton();
addChild(newButton);
newButton.addEventListener(MouseEvent.MOUSE_OVER, onOver);
newButton.addEventListener(MouseEvent.MOUSE_OUT, onOut);
}
private function onOver(e:Event):void {
var but:MyButton = new MyButton();
but.y = 100;
newButton.addChild(but);
trace('over');
}
private function onOut(e:Event):void {
trace('out')
}
}
}
Когда мышка наводится на квадрат, внизу создается 2 квадрат, добавляем его в переменную newButton, но если мышку опустить вниз (ниже первого исходного квадрата), то цыклично вызываются события OnOver и OnOut
Вопрос: Откуда взялось событие OnOut ???
Класс MyButton просто создает статичный квадрат
package {
import flash.display.*
import flash.events.*
public class MyButton extends Sprite {
private var container:Sprite = new Sprite();
private var button:Shape = new Shape();
public function MyButton() {
Build();
addChild(container);
container.addChild(button);
}
private function Build() {
button.graphics.beginFill(0xFF0000, 1);
button.graphics.drawRect(0, 0, 100, 100);
button.graphics.endFill();
}//end function menuBox
}
}
А вот в этом классе загвоздка.
package {
import flash.display.*
import flash.events.*
import MyButton;
public class Test extends Sprite {
private var newButton:MyButton;
public function Test() {
newButton = new MyButton();
addChild(newButton);
newButton.addEventListener(MouseEvent.MOUSE_OVER, onOver);
newButton.addEventListener(MouseEvent.MOUSE_OUT, onOut);
}
private function onOver(e:Event):void {
var but:MyButton = new MyButton();
but.y = 100;
newButton.addChild(but);
trace('over');
}
private function onOut(e:Event):void {
trace('out')
}
}
}
Когда мышка наводится на квадрат, внизу создается 2 квадрат, добавляем его в переменную newButton, но если мышку опустить вниз (ниже первого исходного квадрата), то цыклично вызываются события OnOver и OnOut
Вопрос: Откуда взялось событие OnOut ???