gpt4 book ai didi

javascript - 外部接口(interface)

转载 作者:行者123 更新时间:2023-11-30 23:47:00 26 4
gpt4 key购买 nike

嘿,所以我在让ExternalInterface工作时遇到了很多麻烦,这很奇怪,因为我经常使用它。

我希望这是我错过的东西,因为我已经看它太久了。

flash_ready 函数正确返回了 objectID,据我所知,其他一切都正常。

不幸的是,当我运行它时,我收到一个错误(因浏览器而异),告诉我基本上 document.getElementById( <movename> ).test() 不是一个有效的方法。

代码如下:

JavaScript:

function flash_ready(i){
document.getElementById(i).test('success!');
}

嵌入 Html(生成):

<script type="text/javascript">
swfobject.embedSWF("/chainmaille/includes/media/flash/upload_image.swf", "/chainmaille/includes/media/flash/upload_image", "500", "50", "9.0.0","expressInstall.swf", {}, {allowScriptAccess:'always', wmode:'transparent'},{id:'uploader_flash',name:'uploader_flash'});
</script>
<object type="application/x-shockwave-flash" id="uploader_flash" name="uploader_flash" data="/chainmaille/includes/media/flash/upload_image.swf" width="500" height="50"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>

AS3:

package com.jesseditson.uploader {

import flash.display.MovieClip;
import flash.external.ExternalInterface;
import flash.system.Security;

public class UI extends MovieClip {

// Initialization:
public function UI() {
Security.allowDomain('*');
ExternalInterface.addCallback("test", test);

var jscommand:String = "flash_ready('"+ExternalInterface.objectID+"');";
var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
navigateToURL(url, "_self");
}

public function test(t){
trace(t);
}
}
}

Swfobject 是通过 Google 代码包含的,并且 Flash 嵌入得很好,所以这不是问题。

我在另一台服务器上有一个非常相似的设置,但似乎无法在这台服务器上运行。这是一个 Hostgator 共享服务器。会不会是服务器的错?有人发现任何明显的语法问题吗?

提前致谢!

最佳答案

Flash实际上还没有完成构建。您正在从构造函数调用 flash_ready 回调,因此 JS 会尝试在对象出现在舞台上之前进行调用。将您的 flash_ready 调用移至 Event.ADDED_TO_STAGE 监听器,它应该开始工作。

关于javascript - 外部接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com