سؤال

لا يمكنني الحصول على مكالمة من jsfl إلى swfpanel للعمل عبر واجهة برمجة التطبيقات الخارجية. أنا متابعة التعليمات هنا كالآتي:

في لوحة SWF، في المشهد 1 عمل 1، قمت بتسجيل وظيفة رد الاتصال مع InternetInterface:

ExternalInterface.addCallback("appendTrace", this, appendTrace);

function appendTrace(traceString:String):Void {
    trace("appendTrace");
    traceBox.text = traceBox.text + traceString;
}

ثم في بلدي JSFL، أقوم بتكرار من خلال لوحات SWF لتحديد موقع لوحة SWF ثم استدعاء طريقة التصفية على النحو التالي:

appendTrace("Received trace");
fl.trace("got here");
function appendTrace(traceString) {
var panels = fl.swfPanels;
var myPanel;
for (var i = 0; i < panels.length; i++) {
    if (panels[i].name == 'MyPanel') {
        myPanel = panels[i];
        break;
    }
}
if (myPanel) {
    myPanel.call("appendTrace", traceString);
} else {
    fl.trace("Can't find Panel.  Is it installed?");
}
}

الخط myPanel.call("appendTrace", traceString); يطلق عليه ولكن لا شيء يتم تتبعه، إلحاقه ويتم إلقاء أي خطأ بحيث يبدو أن InternedInterface لا يدعو إلى طريقة التصفية. يبدو أن كل شيء هو الإعداد بشكل صحيح ولكن حاول عدة أشياء ولا يعمل. ما هي بعض المشتركة Gotchas مع هذا النهج؟

هل كانت مفيدة؟

المحلول

كانت القضية أنني كنت أستخدم AS2 بدلا من AS3. يتطلب Swfpanel أعلاه <-> JSFL الاتصالات AS3 SWF لوحات. بمجرد أن تتحول إلى AS3 عملت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top