Показать сообщение отдельно
Старый 27.04.2010, 13:44
rain_heart вне форума Посмотреть профиль Отправить личное сообщение для rain_heart Посетить домашнюю страницу rain_heart Найти все сообщения от rain_heart
  № 1  
Ответить с цитированием
rain_heart
 
Аватар для rain_heart

Регистрация: Jun 2007
Адрес: Ukraine/Dnepropetrovsk
Сообщений: 15
Отправить сообщение для rain_heart с помощью ICQ
Post обработка событий измененного объекта

Вобщем есть вот такой скрип, для примера:

Класс MyButton просто создает статичный квадрат
Код AS3:
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
	}
}

А вот в этом классе загвоздка.
Код AS3:
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 ???