![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Не знаю с чего начать.
На главной временной шкале в одном слое сделал: мувик, текстовое поле, кнопку, проименовал их(my_mc, my_txt и my_btn), затем выделил их, нажал F8, создал из них один мувиклип mc и и одновременно с созданием mc создал для него класс MyClass. Открыл этот класс и заступорился. Подскажите плиз хотя бы на одном примере как можно в этом классе (если конечно можно) обращаться к вложенными в mc объектам my_mc, my_txt и my_btn. У меня есть опыт написания классов "с чистого листа" но с такой ситуацией столкнулся впервые, объекты созданы не программно а в режиме дизайна, пробую, но что-то никак пока не получается. Если писать долго то плиз, скиньте ссылочку. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
getChildByName()?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
Ну вот, откройте ваш мувик и пропишите объектам внутри него instance_name'ы. После, внутри класса вашего мувика сможете управлять этими объектами по этим именам.
|
|
|||||
|
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Instance_name'ы были прописаны при создании и именно их я имел ввиду когда говорил о них. Тут закавыка в том что этот подход для меня новый и я не могу пока за что-то ухватиться, я не знаю что стоит за - getChildByName(). Ну хоть какой-то пример в коде или ссылочку на материал по этому вопросу.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
У Вас нет справки в редакторе? Безобразие. Воспользуйтесь онлайн-справкой.
http://help.adobe.com/ru_RU/FlashPla...ldByName%28%29 Добавлено через 4 минуты Попробуйте написать в конструкторе своего класса Добавлено через 8 минут Но вообще, если у Вас уже есть опыт работы с классами, лучше бы развивать его, а не дизайнерский подход "навалить, а там разберемся". Укажите классы вашим символам в библиотеке и добавляйте их в свой мувиклип (а лучше спрайт) кодом, а не ручками.
__________________
Reality.getBounds(this); |
|
|||||
|
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Полностью соглашусь с тем что лучше кодом чем руками но фишка в том что вложенными объектами могут оказаться компоненты а это пока для меня достаточно новое направление. Пока разбираюсь со вставленными вручную, потом буду пробовать программно, так для меня более понятно.
|
|
|||||
|
Если мне память не изменяет, можно создать публичные переменные с тем же именем, что и instance name. При создании экземпляра класса эти переменные будут инициализированы.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
Цитата:
Достаточно присвоить класс одному "клипу-контейнеру", а к детям обращаться по инстансам. package { import flash.display.MovieClip; import flash.text.TextField; import flash.display.SimpleButton; import flash.events.MouseEvent; public class MyClass extends MovieClip{ public var my_mc:MovieClip; public var my_btn:SimpleButton; public var my_txt:TextField; public function MyClass() { my_mc.addEventListener(MouseEvent.CLICK, myMCHandler); } private function myMCHandler(e:MouseEvent):void { trace("меня нажали"); } } } package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; public class Main extends Sprite { private var _myClass:MyClass; public function Main():void { if (stage) { this.init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); } } private function init(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); _myClass = new MyClass(); addChild(_myClass); _myClass.my_btn.addEventListener(MouseEvent.CLICK, myButtonHandler); } private function myButtonHandler(e:MouseEvent):void { trace("и меня нажали"); } } } |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 77
|
Здравствуйте!
Наткнулся на этот топик и думал решилась моя проблема по созданию стиля (формы) приложения, но не разобрался с пояснениями форумчан (опыта маловато). В общем, допер я как создать форму с помощью Adobe Flash Pro CS5.5 и создавать для нее события с помощью FB 4.6. Пишу все это с целью окончательного допонимания, может сделал что-то не правильно, направите, да и для некоторых новичков тема окажется актуальна (например для тех кто привык в делфинарии с компонентами работать) Мои действия по созданию формы: 1. В Flash Pro CS5 создал "проект ActionScript 3.0". 2. Создал новый символ (ctrl+F8). Назвал Form_1. 3. Создал квадрат в кадре символа. На него набросал стандартные компоненты из меню компонентов (кнопки, текстовые поля и т.п.)(вызов -> ctrl+F7). 4. Важно указать "Instance Name" каждому компоненту в свойствах компонента (там же другие свойства редактируются), через это имя происходит обращение к компоненту. 5. Вышел с редактора символов на главную сцену. 6. Перетащил всю группу символов на сцену (в кадр). Указал "Instance Name" - _Form_Par 7. Конвертанул их в так скажем общий символ (правой кнопкой по вытащеному символу - Convert to Symbol), Назвал его MyForm с галочкой экспорта в ActionScript 3. 8. Сохранил. Важно в свойствах публикации поставить галочку "SWC". Опубликовал (alt+shift+F12). 9.В FB 4.6 создал "проект ActionScript 3.0". 10. В свойствах проекта, во вкладке "Путь сборки.." добавил сохраненный SWC из Flash Pro CS5. 11. Написал следующий код: package { import flash.display.Sprite; import flash.events.MouseEvent; public class Test_interface extends Sprite { public var _Form:MyForm; public function Test_interface() { _Form = new MyForm(); addChild(_Form); _Form._Form_Par.btn_1.addEventListener(MouseEvent.CLICK, onMc); } private function onMc(e:MouseEvent):void { _Form._Form_Par.btn_1.removeEventListener(MouseEvent.CLICK, onMc); _Form._Form_Par.lbl_1.text = "Hello Word!!"; } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:08. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|