|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2010
Сообщений: 3
|
Непонятки с работой addChild в package
Всем доброго времени суток.
Проблема следующая. Для корректной работы проекта требуется отдельный класс, который будет выполнять повторяющиеся операции, которые вызывать нужно из разных мувиклипов. Идея состоит в использовании лишь функций класса, так как неизбежно возникает проблема с обращением в экземплярам, созданных в других мувиках. Код пакета. package main{ import fl.transitions.Tween; import fl.transitions.easing.*; import flash.display.Sprite; public class Service extends Sprite { public var myLabels:labels = new labels(); public var myshow:slideshow = new slideshow(); public var newlogo:logo = new logo; public var myMenu:menu = new menu(); public function slide_show():void { addChild(myshow); } public function panels_load():void { addChild(myMenu); var TweenX:Tween = new Tween(myMenu, "x", None.easeNone, 1280, 0, 1, true); var TweenY:Tween = new Tween(myMenu, "y", None.easeNone, 0, 0, 1, true); } public function menu_load():void { addChild(myLabels); var TweenX:Tween = new Tween(myLabels, "x", None.easeNone, -1280, 0, 1, true); var TweenY:Tween = new Tween(myLabels, "y", None.easeNone, 0, 0, 1, true); } public function menu_unload():void { addChild(myLabels); var TweenX:Tween = new Tween(myLabels, "x", None.easeNone, 0, -1280, 1, true); var TweenY:Tween = new Tween(myLabels, "y", None.easeNone, 0, 0, 1, true); } public function panels_unload():void { addChild(myshow); var TweenX:Tween = new Tween(myMenu, "x", None.easeNone, 0, 1280, 1, true); var TweenY:Tween = new Tween(myMenu, "y", None.easeNone, 0, 0, 1, true); } } } В теле первого кадра: stop(); import main.Service; var myService:Service = new Service(); myService.slide_show(); myService.panels_load(); myService.menu_load(); myService.newlogo.x=30; myService.newlogo.y=600; stop(); import main.Service; var myService:Service = new Service(); addChild(myService.myshow); addChild(myService.myLogo); addChild(myService.myMenu); addChild(myService.newlogo); myService.slide_show(); myService.panels_load(); myService.menu_load(); myService.newlogo.x=30; myService.newlogo.y=600; Прошу подсказать, где же ошибка или мое непонимание концепций AS3, из-за которых не работает данный вариант. Если я изобретаю велосипед, то прошу подсказать более рациональный способ. Заранее спасибо. |
|
|||||
Регистрация: Feb 2010
Сообщений: 95
|
Наверное, нужно добавить myService с помощью addChild? Он же Sprite.
Если я все правильно понял. Ты добавляешь четыре мувика в myService, а его самого никуда не добавляешь - вот и trace работают, но мувиков не видно. Так: Последний раз редактировалось vinch; 13.08.2010 в 13:50. |
|
|||||
Регистрация: Aug 2010
Сообщений: 3
|
Голова моя садовая. Точно.
Спасибо Вам большое ----------------------------- Добавлено через 7 часов 29 минут ДРУЗЬЯ! Промучался весь день, но так и не постиг AS3 через путь обращения к классам. Плюнул и решил сделать с помощью инстансов. Но вот какая беда. Программно создаю мувик myMain от созданного в библиотеке main. В этом мувике находится labels (instance:myLabels, всякие кнопки) и panels (instance:myPanels, панельки для красоты). При нажатии на любую кнопку в labels должна происходить анимация labels и panels по уходу с экрана с помощью твинов. import fl.transitions.Tween; import fl.transitions.easing.*; import flash.display.Sprite; coll_button.addEventListener(MouseEvent.CLICK,goCollection); function goCollection(e:MouseEvent){ var TweenX:Tween = new Tween((getChildByName("???") as MovieClip);, "x", None.easeNone, 0, 1280, 1, true); var TweenY:Tween = new Tween((getChildByName("???") as MovieClip);, "y", None.easeNone, 0, 0, 1, true); } Добавлено через 9 часов 14 минут Все, разобрался сам просто перенес Прослушиватели Событий в мувик постарше и оттуда спускался по иерархии. Последний раз редактировалось umnikus; 13.08.2010 в 21:41. |
Часовой пояс GMT +4, время: 21:27. |
|
« Предыдущая тема | Следующая тема » |
Теги |
addChild , package |
|
|