سؤال

وأنا أحاول أن تحرير بعض فلاش لجعل خارجي جافا سكريبت استدعاء دالة، ولكن من دون نجاح. وهنا قال لي رمز أكشن 2.0:

//testing external .js calls

import flash.external.ExternalInterface;

//attempting to make external js call

ExternalInterface.call("createPlaylist","It's my Life!");

وهنا بلدي جافا سكريبت؛

function createPlaylist(mess){
  alert("called createPlaylist: " + mess);
}

ولقد رأيت الكثير من الأمثلة وأنا مرتبكة بشكل رئيسي حول استخدام ExternalInterface.addCallback. ولست بحاجة جافا سكريبت للعودة أي شيء لفلاش، لذلك هل هذا ضروري؟

لسبب ما، لم أكن أرى التنبيه. هل ترى أي شخص أي مشاكل في قانون بلدي؟ هناك بعض المكتبات ExternalInterface ليس لدي؟ أيضا، ما هي أفضل طريقة لاستخدام ExternalInterface (أي؛ التحقق من الخطأ، وغيرها) شكرا مقدما ...

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

المحلول

وExternalInterface.addCallback هو جافا سكريبت لتتمكن من يدعو إلى تطبيق فلاش الخاص بك. على سبيل المثال إذا كنت تريد زر HTML الذي يبدأ / توقف شريط فيديو كنت مجرد إضافة رد لأسلوب المسمى ويمكن شبيبة الخاص دعوة من [FlashObject] .callback اسم الأسلوب.

وأود أن أقول أن أفضل طريقة لإضافة أساليب ExternalInterface في التطبيق الخاص بك هو انشاء فئة المسؤولة عن الاتصالات JS لكل حالة التفاعل في التطبيق. على سبيل المثال:

public class ExternalVideoControl {

    private var video:MediaDisplay;

    public function ExternalVideoControl(video:MediaDisplay) {
        //ExternalInterface.addCallback  - one callback for each method you want to expose, pointing to a method within this class;
        //add listeners on the video player and point them to methods in this class, for example onProgress
    }
    public function playVideo():void {
        //play the video on the mediaDisplay
    }
    private function onProgress(event:ProgressEvent):void {
        //ExternalInterface.call - report progress back to javascript
    }
}

لاختبار ExternalInterface أكثر مباشرة، حاول يدعو

ExternalInterface.call("alert", "Hello World!");

نصائح أخرى

وكما قال آخرون في التعليقات على منصب يوهان، يجب عليك أولا التحقق، إذا كان واجهة خارجية غير متوفرة عن طريق فحص ExternalInterface.available.

وبخلاف ذلك ... كيف يمكن إطلاق تطبيق فليكس؟ أولا لا بد من إدراجها في المجمع الذي يحتوي على هذا جافا سكريبت بطبيعة الحال. هذا تافهة. ولكن في حال كنت إطلاقه في ملف من الملفات المحلية (يبدأ URL المتصفح مع ملف: //) ثم يجب عليك أيضا التأكد من أن الملف SWF لديه الأذونات المطلوبة لتشغيل وظيفة جافا سكريبت.

ويجب أن تثق في ملف SWF لجعله قادرا على الوصول إلى الموارد المحلية مثل الملفات، أو JS على الملفات المحلية. للقيام بذلك إنشاء ملف مثل myapp.cfg وإضافة المسار إلى الملف كملف خط واحد لهذا الخط. وضع هذا الملف في المجلد FlashPLayerTrust. على أنظمة لينكس وهذا هو ~ / .macromedia / Flash_Player / # الأمن / FlashPlayerTrust /.

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