سؤال

هذا هو الرمز الذي أستخدمه لاستدعاء دالة calc في جافا سكريبت:

import flash.external.ExternalInterface;

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

function asFunc(str:String):Void {
    out.text = "JS > Hello " + str;
}

send_btn.addEventListener(MouseEvent.CLICK, clickListener);

function clickListener(eventObj:Object):Void {
    trace("click > " + mean.text);
    ExternalInterface.call("calc", mean.text);
}

لكني أحصل على الخطأ التالي:

1046:لم يتم العثور على النوع أو أنه لم يكن ثابتًا لوقت الترجمة:فارغ.

ما الخطأ الذي أفعله هنا؟(لقد قمت بتعديل المثال في المستندات المباشرة.)

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

المحلول

وينبغي أن يكون الفراغ أقل حدة.

ومثل هذا:

void

نصائح أخرى

يبدو (بخطأك) أن لديك مشكلتين هنا:

  1. تأخذ ExternalInterface وسيطتين في AS3، وليس ثلاثة
  2. يجب أن يكون "باطل" "باطلا" في AS3

لذا بافتراض أن كود JavaScript الخاص بك كان كالتالي:

function myJSFunction()
{
    myFlashObject.asFunc("Hello!");
}

function calc(s)
{
    // ...
}

...يجب أن يبدو رمز ActionScript 3 المطابق لديك كما يلي:

import flash.external.ExternalInterface; 

function myInitializationHandler():void
{   
    ExternalInterface.addCallback("asFunc", asFunc); 
    myFlexButton.addEventListener(MouseEvent.CLICK, clickListener); 
}

function asFunc(str:String):void 
{ 
    //... 
}

function clickListener(event:MouseEvent):void 
{ 
    // ...
    ExternalInterface.call("calc", myFlexTextInput.text); 
}

منطقي؟

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