خطأ في الواجهة الخارجية
-
22-07-2019 - |
سؤال
هذا هو الرمز الذي أستخدمه لاستدعاء دالة 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
نصائح أخرى
يبدو (بخطأك) أن لديك مشكلتين هنا:
- تأخذ ExternalInterface وسيطتين في AS3، وليس ثلاثة
- يجب أن يكون "باطل" "باطلا" في 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);
}
منطقي؟
لا تنتمي إلى StackOverflow