![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2009
Сообщений: 81
|
Перейду сразу к сути:
Создаю Loader, в него гружу внешнюю SWF с 3 кадрами. Дальше мне нужно создать три loadera. Чтобы отоброзить содержание 3 кадров. Теперь дабы исключить повторного запроса SWF мне нужно сделать копию основного Loadera и перейти на нужный кадр. С переходом на кадр теперь проблем нет. А вот сделать дубликат оказалось не просто, как я думал. Пробовал создать новый loader и c помощью loadBytes загрузить байты spTelo.loaderInfo.bytes Но почему то создалась копия всей флешки и буквально через секунды 3-4 флеш плеер рухнул. ![]() Буду благодарен если знающие такую проблему, подскажут, что делать нужно! |
|
|||||
|
- грузим ассет
- через getDefinitionByName() "достаем" класс необходимого клипа(для данной задачи) - создаем сколько угодно экземпляров, работаем с ними UPD: под ассетом подразмувается swf "библиотека"(файл), содержащая ресурсы, т.е. в данном случае, у вас в ней будет лежать, как нимимум, someClip, с соответствующим instance name.
__________________
местонахождение |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 81
|
Не совсем понял про какой ассет идет речь. Можно хотя бы на вскидку код? Если Вас не затруднит конечно
легче понять просто будет ![]() P.S. Флешка подгружаемая без кода, исключительно графика. Добавлено: Мне дубликат Loadera нужен, а не клипа. И что то все не догоню причем тут библиотека... Объект создан динамически и загружен из вне. Теперь нужна его копия. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 81
|
Ну я думал понятно что копия Loader с содержанием его, а то какая же это копия
![]() А по поводу классов я не очень силен пока, так что спасибо, что объяснили ![]() Буду очень благодарен за подсказку в виде кода примера ![]() |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Есть много способов.
Способ 1: Редактируем загружаемый мувик. У тебя, помню, он telo.fla назывался. Теперь назначаем всему ролику класс, скажем Telo, но файл класса создавать не надо, только имя дать. Теперь ролик-загрузчкик может его легко клонировать: function onLoaded(e:Event){ addChild(spTelo); //spTelo:Loader spTelo.x=275; spTelo.y=274; MovieClip(spTelo.content).gotoAndStop(1); var c:Class = Object(spTelo.content).constructor; var copy:MovieClip = new c (); addChild (copy); copy.x = copy.y = 100; copy.gotoAndStop (2); } function onLoaded(e:Event){ addChild(spTelo); //spTelo::Loader spTelo.x=275; spTelo.y=274; MovieClip(spTelo.content).gotoAndStop(1); var ba:ByteArray = ByteArray(spTelo.contentLoaderInfo.bytes); var copyLoader:Loader = new Loader(); copyLoader.loadBytes(ba); addChild (copyLoader); copyLoader.x = 100; copyLoader.y = 100; //MovieClip(copyLoader.content).gotoAndStop(2); //так не сработает, мувик грузится в loader не мгновенно, его там еще нет copyLoader.contentLoaderInfo.addEventListener (Event.COMPLETE, copyLoadedHr); } function copyLoadedHr (e:Event):void { var info:LoaderInfo = e.target as LoaderInfo; var copyLoader:Loader = info.loader; info.removeEventListener (Event.COMPLETE, copyLoadedHr); MovieClip(copyLoader.content).gotoAndStop(2); }
__________________
мой пустой блог Последний раз редактировалось iflamberg; 12.01.2013 в 14:58. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 81
|
Спасибо большое!!!! Второй раз выручаешь
Первый способ, как раз то, что я и искал ![]() |
|
|||||
|
Накидал примерчик TestLoadAsset.rar
В архиве FlashDevelop проект, в папке fla лежит исходник ассета(cs6), в котором хранятся ресурсы, в папке assets скомпилированный swf. Тестовая флешка загружает этот ассет, "получает" инстанс необходимого клипа, создает определенное кол-во необходимых ресурсов и добавляет их на сцену(код я откомментировал). В чем плюсы такого подхода?
данный код неидеальный вариант, но я надеюсь вам пригодится данный подход оффтоп: я бы не советовал, Вам, использовать подходы iflamberg.
__________________
местонахождение |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 81
|
Большое спасибо!
![]() |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 81
|
По поводу первого способа подниму опять тему. Почему то на copy (var copy:MovieClip = new c (); )
Не вешаются слушатели, подскажите в чем дело? Что я упустил? ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|