![]() |
SCOPE и загрузка ролика swf
Всем привет! :)
Столкнулся с такой проблемой: загружаю с помощью Loader ролик swf. он начинает проигрываться, нормально, но проблема в том, что он не видит переменных и SCOPE PARENT ролика в который я его добавил. Как быть может есть другие способы загрузки ролика? в AS2 это можно было сделать . |
А подгружаемый ролик какой версии?
|
Ролик версии 9.0, Flash CS3
|
1. Возможно переменные protected.
2. Возможно надо дождаться события INIT (parent доступен только после этого события, а не сразу после загрузки). 3. Может быть parent - это не тот объект, что Вы думаете (этот parent: loaderInfo.loader.parent?) 4. Возможно это cross domain проблемы. Другого способа загрузки нет, надо искать в этом... |
событие инит, это идея. Посмотрю... пасиб
|
узнал что root в загружаемом ролике это его собственный root, а вот stage вроде один у всего проекта.
Удалось передать загружаемому ролику переменную MovieClip, например mc, которая является parent загружаемого ролика, тобишь внего вставляется. допустим у этого parent было объявлена переменная var1. Внутри загружаемого ролика после события ADDED_TO_STAGE обращаюсь к mc.var1 и flash меня посылает, не работает. Что делать, хз :((((( Может попробовать описать класс, с теми данными, которые мне нужны, туда их забить, загрузить ролик и передать ему экземпляр этого класса. А в загружаемом ролике сделать import описания этого класса, чтоб сука флэш знал что к чему, и захавать этот экземпляр, который передаст перент. Как думаете? бред.... или нет? Можно ли к объектам сцены обращаться не через точку, а как нить по другому? как нить ["object_name"] или еще как? |
antonimo, ещё раз я увижу более двух постов подряд — буду ставить плюсы.
Посты нужно редактировать, если надо что-то добавить. |
Цитата:
main.swf(Main.as) грузит child.swf (Child.as) "init" MovieClip что-то не генерит (и не должен по документации), "added" тоже не при делах оказалось.. повесил на "enterFarme" Код:
package {Код:
package { |
У меня примерно так работало:
Код:
loaderInfo.addEventListener(Event.INIT, initHandler);Код:
loaderInfo.loader.parent["var"+1]Код:
loaderInfo.loader.parent.hasOwnProperty("var1") |
А я бы интерфейс бы прикрутил ко всему этому…
|
все верно, если смотреть из подгружающего, loaderInfo его ("init") и генерит, но из подгружаемого ты же на него никак не подпишешься.., речь об этом вроде шла..
|
Разобрался - если через точку то он посылает, так ошибка, насколько я смыслю в программировании, возникает на стадии компиляции ролика, который нужно подгрузить. Т.к. в нем используются левые свойства, переменные и другая необъявленная байда.
А если к переменным стучаться через ['variable'], то работает. Если такая переменная действительно есть. Возник вопрос: А как перебрать все переменные доступные в ролике? чтоб знать какой variable есть а какого нет? Заинтересовал ответ __etc про интерфейс, интересно, это что такое, во Флеше? |
Я имел ввиду написать интерфейс, со всеми свойствами, методами и работать через него, без квадратных скобок.
|
Цитата:
А интерфейс заимплементить в таких случаях - дело, безусловно, хорошее, позволяет структурировать обращения и компилять без варнингов. ;) Только, если автор дошёл уже до такой степени отчаяния, что собирается перебирать все переменные в клипе, то интерфейс ему уже не поможет. И, главное, непонятно пока почему... :) |
все равно не въезжаю о чем ты: если речь о возможности обратится из подгружаемого мувика к методам/свойствам хостера, причем здесь onProgress /onComplete/init и видимость объектов загруженного клипа из загружающего?
как ты предлагаешь определить из загружаемого момент, когда ему уже виден родитель? |
Насколько мне известно порядок событий такой:
1. PROGRESS 100% в loader основного клипа. 2. INIT в loaderInfo загруженного клипа. 3. COMPLETE в loader основного клипа. Поэтому я и говорю, что: a. Доступ к объектам загруженного клипа есть сразу после COMPLETE. б. Доступ к объектам хостера есть сразу после INIT (кроме случаев, когда требуется доступ к структуре DisplayObjects, а addChild() вызывается в COMPLETE хендлере; поэтому я предпочитаю вызывать addChild() либо сразу в начале загрузки, либо на событие PROGRESS 100%). |
ты такое писал уже? вот например у меня есть myloader который юзает клип из основного swf, если я пытаюсь этот myloader юзать, в плане создать экземпляр, в другом фйлве swf, то флэш меня посылает т.к. этого клипа в нем нет.
Можешь пример такого интерфейса, интересно, но я недогоняю идею универсальности, о которой ты говоришь. |
antonimo, к кому вопрос-то? Я вижу в топике две проблемы — с обращением объектов друг к другу и использованием интерфейса.
|
Dendroid, порядок событий понятен, как отловить стадии загрузки из загружающего тоже..
интересовало как эти события можно отловить в подгружаемом..и все.. |
| Часовой пояс GMT +4, время: 02:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.