|
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
Вопрос по Классам в AS 3.0
Здравствуйте! У меня небольшая проблема. Недавно начал изучать AS 3.0, почитал везде пишут что необходимо все делать в классах. Вот решил сделать. Первая проблема в кнопке , создал во Флеше кнопку нарисовал и т д. а через класс обратиться к ней не могу. Вот код. Это главный класс. Никак не хочет обращаться. Как быть?
package zoo { import flash.display.MovieClip; import flash.events.*; import flash.display.SimpleButton; public class VirtualZoo extends MovieClip { var B1:SimpleButton = new SimpleButton(); public function VirtualZoo() { B1.addEventListener(MouseEvent.CLICK, onClickB1); addChild(B1); } function onClickB1 (e:MouseEvent):void { trace("MMMM"); } } } |
|
|||||
Регистрация: May 2013
Сообщений: 26
|
если это единственный класс твоего приложения, то тут даже кнопка не рисуется, а просто создается переменная типа SimpleButton. Тут и обращаться то не к чему.
это как так? |
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
Не не я не хочу что бы она рисовалась, я нарисовал ее во Флеше мне надо только обратиться к ней ну как это было в AS 2.0 - OnRollOver OnRollOut OnRelease. Вот как к ней грамотно обратиться, как создать другой класс, и как связать их?
2) Ну как бы вот допустим у нас есть Монтажный кадр далее на нем на первом слое создаем символ, заходим в символ и тут уже рисуем (создаем) кнопку. Вот как то так... |
|
|||||
Цитата:
( public - Доступно всем, у кого есть ссылка на экземпляр private только самому экземпляру internal - доступно как public для всех кто в том же пакете protected - доступно самому экземпляру и наследникам ) Добавлено через 4 минуты а в родителском классе это будет выглядеть примерно так main.as private var virtualzoo:VirtualZoo = new VirtualZoo(); trace(virtualzoo.B1); // [SimpleButton] public var B1:SimpleButton = new SimpleButton(); public function VirtualZoo() { B1.addEventListener(MouseEvent.CLICK, onClickB1); addChild(B1); } private function onClickB1 (e:MouseEvent):void { trace("MMMM"); // что-то выполняем и если нужно передать в мейн событие как один из вариантов диспатчить событие dispatchEvent(new Event('UserEvent')); }
__________________
return this... Последний раз редактировалось AlexCooper; 31.05.2013 в 03:26. |
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
package zoo { import flash.display.MovieClip; import flash.events.*; import flash.display.SimpleButton; public class VirtualZoo extends MovieClip { private var B1:SimpleButton ; public function VirtualZoo() { B1 = new SimpleButton(); B1.addEventListener(MouseEvent.CLICK, onClickB1); addChild(B1); } public function onClickB1 (e:MouseEvent):void { trace("MMMM"); } } } |
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
Вот как то так вроде
|
|
|||||
Все просто
Вы уже разместили на сцене объект с идентификатором B1. Потому его нельзя пересоздать.
__________________
return this... |
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
Спасибо большое) И еще пара вопросов если можно
1) Что такое AddChild()? 2) Что такое stage.EVENT.ADDED_TO_STAGE? Что такое и для чего это нужно? 3) и как обращаться к кнопке в символе? (как я писал в сообщении - Ну как бы вот допустим у нас есть Монтажный кадр далее на нем на первом слое создаем символ, заходим в символ и тут уже рисуем (создаем) кнопку. Вот как то так...) Буду очень благодарен! |
|
|||||
package { import flash.display.Sprite; public class test extends Sprite { private var myBtn:MyBTN = new MyBTN(); // конструктор выполняется сразу public function test() { // подписываемся на событие ADDED_TO_STAGE - которое произойдет когда экземпляр класса test добавиться на сцену то-есть где-то выше выполниться addChild(new test()); addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event):void { // получили стейдж отписались, теперь доступно stage.stageWidth и т.д. removeEventListener(Event.ADDED_TO_STAGE, init); // добавлем на "внутрению" сцену кнопку myBtn addChild(myBtn); } } }
__________________
return this... Последний раз редактировалось AlexCooper; 31.05.2013 в 03:25. |
Часовой пояс GMT +4, время: 20:22. |
|
« Предыдущая тема | Следующая тема » |
|
|