Я пытаюсь создать swfPanel для Flash CS5.5, используя JSFL.
Я создал свой интерфейс во флэш-памяти и пытаюсь связаться с командой JSFL.
Итак, в моем .fla файле я использую ExternalInterface с callBack для вызова определенной функции в JSFL, а затем swfPanel.call () для возврата.
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу передать Array в качестве аргумента для функции вызова (после имени функции AS3). Вот код:
В AS3:
function init():void{
ExternalInterface.addCallback("callBackPanel", JsflCallback);
MMExecute("fl.runScript( fl.configURI + \"AirMobileFramework/AirMobileFrameworkPanel.jsfl\", \"checkSettings\" );");
}
function JsflCallback(... args):void{
jsTrace("callback");
}
function jsTrace(str:String):void{
MMExecute("fl.trace(\"" + str + "\");");
}
В JSFL:
function checkSettings(){
var fileSettingsUrl = fl.configURI + "AirMobileFramework/settings.fwk";
var exist = FLfile.exists(fileSettingsUrl);
var result = new Array("settings", exist);
if(!exist){
FLfile.write(fileSettingsUrl, "");
} else {
result.push(FLfile.read(fileSettingsUrl));
}
callPanelBack(result);
}
function callPanelBack(result){
fl.trace("result: " + result.length + " > " + typeof result + " >> " + result[0]);
var panel;
if(fl.swfPanels.length > 0){
for(x = 0; x < fl.swfPanels.length; x++){
if(fl.swfPanels[x].name == "AirMobileFramework"){
panel = fl.swfPanels[x];
panel.call("callBackPanel", result);
break;
}
}
} else {
fl.trace("No existing panel");
}
}
При вызове panel.call ("callBackPanel", result [0], result [1]); проблем нет, мой обратный вызов хорошо вызывается, но при использовании panel.call ("callBackPanel", результат); У меня ошибка:
La ou les erreurs JavaScript suivantes se sont productions lors de l'exécution AirMobileFramework:
La ou les erreur (s) Продукты JavaScript suivantes se sont:
Есть идеи ??