调用flex-AS函数时出现Javascript错误
|
我正在尝试从JS调用调用操作脚本函数,但出现以下错误
Error: getFlashMovie(swfobjectID).sayWhat is not a function
任何人都可以让我知道我在做什么错
<html>
<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"myMovieName\" WIDTH=\"225\" HEIGHT=\"200\">
<PARAM NAME=\"movie\" VALUE=\"ax.swf\" /> <PARAM NAME=\"quality\" VALUE=\"high\" /> <PARAM NAME=\"bgcolor\" VALUE=\"#FFFFFF\" /> <EMBED href=\"ax.swf\" src=\"ax.swf\" quality=high bgcolor=#FFFFFF NAME=\"myMovieName\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\"> </EMBED> </OBJECT>
<script>
function getFlashMovie(movieName) {
alert(\"In get Flash Movie\");
document.getElementById(movieName).setAttribute(\"name\", movieName);
var isIE = navigator.appName.indexOf(\"Microsoft\") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
function sayWhat()
{
alert(\"In call as\");
var swfobjectID = \'myMovieName\';
alert(swfobjectID);
//call flex function
getFlashMovie(swfobjectID).sayWhat();
}
</script>
<input type=\"button\" onclick=\"javascript:sayWhat();\" value=\"Click Me\" />
</html>
MXML
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<mx:Application xmlns:mx=\"http://www.adobe.com/2006/mxml\" layout=\"absolute\" creationComplete=\"initCamera()\">
<mx:Script>
<![CDATA[
import mx.controls.Button;
import mx.controls.Alert;
import flash.display.InteractiveObject;
import flash.display.Sprite;
import flash.media.*;
import flash.net.*;
import flash.external.*;
import flash.external.ExternalInterface;
public function sayWhat():void {
Alert.show(\"Hi\");
}
public function initCamera():void {
//stop();
ExternalInterface.addCallback(\"sayWhat\", sayWhat);
}
]]>
</mx:Script>
</mx:Application>
没有找到相关结果
已邀请:
3 个回复
闯舱酮
,
,
和
。 您应该将最后三个文件和生成的ax.swf文件放在Web服务器上的同一文件夹中(或修改其引用路径),然后它将起作用。 ax.mxml:您的主要flex应用程序的结构
call_flfunc.html:ax.swf嵌入到的html内容
ax.js:包含所有必需的javascript类和函数
ax.css:应用于“ 5”页面的样式表
我希望它是可以理解的,并且您可以从中工作。
壬驴拿歪竞
您将需要一种初始化方法(或扩展现有方法):
并用于调用所需的方法:
播匣扦阔食