Показать сообщение отдельно
Старый 07.03.2010, 21:58
Xa13gi вне форума Посмотреть профиль Отправить личное сообщение для Xa13gi Найти все сообщения от Xa13gi
  № 1  
Ответить с цитированием
Xa13gi

Регистрация: Feb 2010
Сообщений: 8
По умолчанию Вызвать функцию из вложенной SWF. (я в отчаянии)

Господа.. вот уже который день борюсь и никак не могу победить... весь инет облазил, везде по разному и везде не получается перекинуть решения на мою задачу...

Прошу Вашей помощи...

Ситуация (взял задачку для упрощения):

Есть SWF2

в ней есть функцию swf2_function():string
(которая возвращает некое значение)

Есть SWF1, в которую я загружаю SWF2 с помощью SWFLoader:
Код AS3:
<mx:SWFLoader id="load1" loaderContext="{lc}"
         source="dataload_test.swf" complete="loadcompl(event)" />
ну и соответственно в loadcompl(e:Event):void я хочу обращаться к функциям, переменным (разумеется они все public) загруженной SWF2.

loaderContext="{lc}"

это у меня :
Код AS3:
[Bindable]
            private var lc:LoaderContext;
и иницилизуруюсь в функции:
Код AS3:
<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 укажу запускать какую-либо функцию (c alert-ом к примеру), то при запуске SWF1 высветится Alert второй флешки. (но мне этого не надо).

Как всё-таки правильно обртатиться к параметрам и функциям загруженной SWF2??

что-то вроде swf2.application.swf2_function();

ну в данном случае наверно что-то вроде:

Код AS3:
load1.content.swf2_function()


Flex + AS3

Добавлено через 19 минут
на сколько я понимаю для вызова функций мне так же нужно использовать
Код AS3:
public var loadedSM:SystemManager;
в функцию иницилизации SWF1 я вставляю:
Код AS3:
loadedSM = SystemManager(load1.content);
и дальше по-идее могу обращаться через loadedSM к функциям SWF2 ... но нифига не получается

при попытке запустить с :
Код AS3:
Local(loadedSM.application).f_start();
(как написанно в примере: http://wiki.flash-ripper.com/?title=SWFLoader)
он ругается: 1180: Call to a possibly undefined method Local.

Как правильно, чтобы он видел мои функции?