![]() |
|
||||||||||
|
|||||
|
А с каких пор FlashIDE начал понимать теги Ebmed ?
__________________
adobe AS3 manual |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
C CS4.
|
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
Извините, я немного не сдержанный наверное. Просто реально на эту кнопку у меня ушёл весь день и хорошо когда хоть что-то начало проясняться и получаться. А по поводу ника, он и так не случайный, было бы больше знаний по as не было таких глупых топиков. Знаний мало - вот и рождаются подобные топики, единственное чем себя тешу, тем что он еще кому-нибудь поможет. 4 страницы....
|
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
про Embed оно мне конечно очень помогло бы, но для использования требует Flex SDK. есть смысл устанавливать ? Или всё не так просто ?
|
|
|||||
|
__________________
adobe AS3 manual |
|
|||||
|
Цитата:
ИМХО смысл есть хотя бы для того чтоб выбрать для себя наиболее удобную среду разработки. Да и пашет ФД в разы шустрее по сравнению с Flash CS 5.5 Добавлено через 46 минут Вот пример для размышления: package { import flash.display.Sprite; import flash.events.MouseEvent; /** * ... * @author Ookami */ public class Button extends Sprite { private var stateNorm:Sprite; private var stateOver:Sprite; private var stateDown:Sprite; /* * Конструктор класса */ public function Button(spriteNorm:Sprite, spriteOver:Sprite, spriteDown:Sprite) { /** * Формирование тела кнопки */ stateNorm = spriteNorm; stateOver = spriteOver; stateOver.visible = false; stateDown = spriteDown; stateDown.visible = false; addChild(stateNorm); addChild(stateOver); addChild(stateDown); /** * Прослушка событий */ addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); addEventListener(MouseEvent.MOUSE_UP, onMouseUp); } /* * Фокус мыши на кнопке */ private function onMouseOver(event:MouseEvent):void { stateNorm.visible = false; stateOver.visible = true; stateDown.visible = false; } /* * Потеря фокуса */ private function onMouseOut(event:MouseEvent):void { stateNorm.visible = true; stateOver.visible = false; stateDown.visible = false; } /* * Нажатие кнопки (начало) */ private function onMouseDown(event:MouseEvent):void { stateNorm.visible = false; stateOver.visible = false; stateDown.visible = true; } /* * Нажатие кнопки (завершение) */ private function onMouseDown(event:MouseEvent):void { stateNorm.visible = true; stateOver.visible = false; stateDown.visible = false; } } } |
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
хм.. ну я за себя рад, я сделал абсолютно тоже самое, за исключением того, что спрайты кнопок загружаются в конструкторе, а не передаются в качестве параметра. ОЧЕНЬ громоздко получилось если учесть что с SimpleButton кода вообще нет )
Добавлено через 3 минуты небольшое уточнение, из за того что у меня есть еще и textField поверх всех этих спрайтов, то возникал небольшой касячок при обработке фокуса и нажатия мыши. А именно нажатие срабатывало только на текстовом поле. Я так понял это из за того что спрайты скрываются. Я сделал еще один спрайт который содержит прозрачный png размером ровно с мою кнопку и поместил этот спрайт поверх всех остальных. Так обработка нажатия мыши срабатывает корректно. |
|
|||||
|
менее громоздко:
package ui.buttons { import flash.display.Sprite; import flash.events.MouseEvent; /** * ... * @author Ookami */ public class Button extends Sprite { private var stateNorm:Sprite; private var stateOver:Sprite; private var stateDown:Sprite; /* * Конструктор класса */ public function Button(spriteNorm:Sprite, spriteOver:Sprite, spriteDown:Sprite) { /** * Формирование тела кнопки */ stateNorm = spriteNorm; stateOver = spriteOver; stateDown = spriteDown; addChild(stateNorm); addChild(stateOver); addChild(stateDown); stateOver.visible = false; stateDown.visible = false; /** * Прослушка событий */ addEventListener(MouseEvent.MOUSE_OVER, onMouseEvent); addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent); addEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent); addEventListener(MouseEvent.MOUSE_UP, onMouseEvent); } /* * Фокус мыши на кнопке */ private function onMouseEvent(event:MouseEvent):void { stateNorm.visible = false; stateOver.visible = false; stateDown.visible = false; switch (event.type) { case MouseEvent.MOUSE_OVER: { stateOver.visible = true; break; } case MouseEvent.MOUSE_OUT: { stateNorm.visible = true; break; } case MouseEvent.MOUSE_DOWN: { stateDown.visible = true; break; } case MouseEvent.MOUSE_UP: { stateNorm.visible = true; break; } } } } } Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|