|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
обработка событий измененного объекта
Вобщем есть вот такой скрип, для примера:
Класс 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') } } } Вопрос: Откуда взялось событие OnOut ??? |
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Вопрос в том, почему Вы считали что оно не должно взятся?
Добавлено через 2 минуты что не так?
__________________
Могу ошибаться... =) Последний раз редактировалось mickfallout; 27.04.2010 в 14:41. |
|
|||||
эээ. уточняю вопрос.
вот код: package { import flash.display.* import flash.events.* import MyButton; public class Test extends Sprite { private var newButton1:MyButton; private var newButton2:MyButton; private var newContainer:Sprite = new Sprite(); public function Test() { newButton1 = new MyButton(); newButton2 = new MyButton(); newButton2.alpha = 0.5; newButton2.x = 100; newContainer.addChild(newButton1);//добавить 1 кнопку в контейнер newContainer.addChild(newButton2);//добавить 2 кнопку в контейнер addChild(newContainer);//добавляем контейнер на страницу newContainer.addEventListener(MouseEvent.MOUSE_OVER, onOver);//мыш над контейнером newContainer.addEventListener(MouseEvent.MOUSE_OUT, onOut);//мыш в стороне } private function onOver(e:Event):void { trace('over'); } private function onOut(e:Event):void { trace('out') } } } Как сделать так чтоб слушать событие контейнера. ну т.е. мыш сверху (не важно над какой кнопкой) - одно событие, мыш в стороне - другое событие? |
|
|||||
стервочка (я мужик)
|
ROLL_OVER
|
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Цитата:
Добавлено через 1 минуту package { import flash.display.* import flash.events.* import MyButton; public class Main extends Sprite { private var newButton1:MyButton; private var newButton2:MyButton; private var newContainer:Sprite = new Sprite(); private var mouseOnButton1:Boolean; private var mouseOnButton2:Boolean; public function Main() { super(); newButton1 = new MyButton(); newButton2 = new MyButton(); newButton2.alpha = 0.5; newButton2.x = 100; newContainer.addChild(newButton1);//добавить 1 кнопку в контейнер newContainer.addChild(newButton2);//добавить 2 кнопку в контейнер addChild(newContainer);//добавляем контейнер на страницу newContainer.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);//мыш над контейнером newContainer.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);//мыш в стороне } private function rollOverHandler(e:Event):void { trace('over'); } private function rollOutHandler(e:Event):void { trace('out') } } }
__________________
Могу ошибаться... =) |
|
|||||
ООО...
это уже называется старческий маразм )) (у меня всмысле) я за ROLL_OVER и ROLL_OUT совсем и забыл то Спасибо!!! |
Часовой пояс GMT +4, время: 02:37. |
|
« Предыдущая тема | Следующая тема » |
Теги |
AS 3.0 , обработка , события |
|
|