![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 8
|
Господа.. вот уже который день борюсь и никак не могу победить... весь инет облазил, везде по разному и везде не получается перекинуть решения на мою задачу...
Прошу Вашей помощи... Ситуация (взял задачку для упрощения): Есть SWF2 в ней есть функцию swf2_function():string (которая возвращает некое значение) Есть SWF1, в которую я загружаю SWF2 с помощью SWFLoader: <mx:SWFLoader id="load1" loaderContext="{lc}" source="dataload_test.swf" complete="loadcompl(event)" /> loaderContext="{lc}" это у меня : и иницилизуруюсь в функции: <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="0xFFFFFF" creationComplete="f_start_2();"> /*пропущено всякая фигня*/ private function f_start_2():void { lc = new LoaderContext(); lc.checkPolicyFile = false; lc.applicationDomain = ApplicationDomain.currentDomain; lc.securityDomain = null; } Как всё-таки правильно обртатиться к параметрам и функциям загруженной SWF2?? что-то вроде swf2.application.swf2_function(); ну в данном случае наверно что-то вроде: Flex + AS3 ![]() Добавлено через 19 минут на сколько я понимаю для вызова функций мне так же нужно использовать в функцию иницилизации SWF1 я вставляю: и дальше по-идее могу обращаться через loadedSM к функциям SWF2 ... но нифига не получается![]() при попытке запустить с : (как написанно в примере: http://wiki.flash-ripper.com/?title=SWFLoader) он ругается: 1180: Call to a possibly undefined method Local. Как правильно, чтобы он видел мои функции? |
|
|||||
|
Modus ponens
|
Ну так а кто ж знает где вы ее там во второй SWF объявили... И еще не понятно стремление пользоваться SWFLoader'ом - назначение и работа этого класса покрыта пеленой мрака и мракобесия - оно вам нужно?
![]() А вообще - trace() и describeType() на что существуют? Потрейсте, что у вас в loader.content - я думаю, натолкнет на какие-то мысли.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 8
|
Спасибо, что заглянули сюда
у меня теперь появляется надежда ![]() по поводу трасировки: (как раз его и трасировал и натолкнул на SystemManager): trace(load1.content); выдал: "[object _SWF2_mx_managers_SystemManager]" во второй флешке функцию, которую хочу вызвать, я определил как public. или есть ещё какая-та специфика объявления в случае обращения извне к ней? Просто с флексом и АС3 я только-только начинаю работать ![]() мне он нужен для некоторых целей и смысл задач я сильно упростил для себя чтобы опробывать методы, которые мне потребуются... ну т.е. в текущий момент я хочу реализовать такой механизм: есть SWF1 она там что-то делает своё и каждые 10 секунд ей нужно обновить данные из XML и обработать эти данные (запустить функцию с распарсенными значениями). Чтобы не рефрешить SWF а просто обращаться к данным на другой ресурс, подумал что лучшего всего сделать вторую SWF которая будет собирать данные (HTTPService) и формировать XML. _____ вот как раз и осталось мне организовать обращение из SWF1 в SWF2 за вызовом функции, которая вернёт XML. в данном лсучае всё упростил ![]() Добавлено через 6 минут вот код SWF2: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="0xFFFFFF"> <mx:Script> <![CDATA[ import mx.controls.Alert; public function f_start():void { Alert.show(f_ret_val()); } public function f_ret_val():String { var v_res:String = "Preved krasavcheg!" return v_res; } ]]> </mx:Script> </mx:Application> а вот если я здесь укажу то при загрузке SWF1 вылезет Alert. т.е. вроде как загрузилась SWF2 успешно... |
|
|||||
|
Modus ponens
|
object _SWF2_mx_managers_SystemManager - ну вот подумайте сами, вы создавали этот класс? Я так думаю, что нет, потому что это клон SystemManager'a а вы наверное свою функцию создали где-то в другом месте. Предположим, что вы ее создали в классе наследующемся от Application - вам нужно будет дождаться пока он загрузится (потому, что он во втором кадре), потом как-нибудь через, например, детей загруженного SystemManager'a найти ваш класс, или еще каким-нибудь способом - благо во фреймворке есть туча статических ссылок на разные его части. И только потом уже у него вызывать ваш метод.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 30
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|