使用Javascript时未定义->;动作脚本
一定很晚了,但我没有看到我的错误。我只是想从JS调用一个AS3FX。代码:使用Javascript时未定义->;动作脚本,javascript,actionscript-3,Javascript,Actionscript 3,一定很晚了,但我没有看到我的错误。我只是想从JS调用一个AS3FX。代码: <script language="javascript"> function getFlashMovie(movieName) { var isIE = navigator.appName.indexOf("Microsoft") != -1; return (isIE) ? window[movieName] : document[movieName];
<script language="javascript">
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
getFlashMovie('myswf').playASound();
</script>
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="1" height="1" id="myswf" align="middle">
<param name="movie" value="myswf.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="myswf.swf" width="1" height="1">
<param name="movie" value="myswf.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
谢谢
编辑:进度
这就是我现在所处的位置,仍然存在空对象问题:
<head>
<script type="text/javascript">
var flashvars = false;
var attributes = {
id: "sounds",
name: "sounds"
};
var params = {
wmode: "transparent",
menu: "false",
allowScriptAccess: "always",
play: "true"
};
swfobject.embedSWF("file.swf", "flash-sound", "10", "10", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
</script>
</head>
<body>
<div id="flash-sound"><!--<p>Alternative content</p>--></div>
<script>
$(document).ready(function(){
document.getElementById('sounds').playSound();
});
</script>
</body>
var flashvars=false;
变量属性={
id:“声音”,
名称:“声音”
};
变量参数={
wmode:“透明”,
菜单:“假”,
allowScriptAccess:“始终”,
剧本:“真的”
};
嵌入swf(“file.swf”、“flash-sound”、“10”、“10”、“9.0.0”、“expressInstall.swf”、flashvars、params、attributes);
$(文档).ready(函数(){
document.getElementById('sounds').playSound();
});
错误是无法调用null的方法“playSound”您得到的是未定义的,因为它在DOM中找不到您的swf 试着用这个代替那个“getFlashMovie”的东西 不要忘记将swf的id属性设置为“flashObj” 此外,我建议使用将swf嵌入html:
swfobject.embedSWF("boot.swf", "flash", "100%", "100%", "10.0.0", "assets/swf/expressInstall.swf", flashvars, params, attributes);
var flashvars = {lang: "<?php echo $lang ?>"};
var params = {allowFullScreen : false, allowScriptAccess: "always", bgcolor: "#FFFFFF", wmode: "transparent"};
var attributes = {id:"flashObj"};
swfobject.embeddeswf(“boot.swf”、“flash”、“100%”、“100%””、“10.0.0”、“assets/swf/expressInstall.swf”、flashvars、params、attributes);
var-flashvars={lang::};
var params={allowFullScreen:false,allowScriptAccess:“始终”,bgcolor:#FFFFFF,wmode:“透明”};
var属性={id:“flashObj”};
考虑使用document.getElementById
:该getFlashMovie
将仅在某些浏览器(IE和Opera?)中工作AFAIK——问题是它(getFlashMovie
)返回未定义的(因为它已绑定或DOM尚未加载;也就是说,尝试将脚本置于“加载”状态事件,或者至少在标记之后创建对象)。我已经编辑了注释,并取得了一些进展。还是不行!你加载jquery了吗?另外,不要让你的wmode透明,除非你真的必须这样做。
document.getElementById('flashObj').playASound();
swfobject.embedSWF("boot.swf", "flash", "100%", "100%", "10.0.0", "assets/swf/expressInstall.swf", flashvars, params, attributes);
var flashvars = {lang: "<?php echo $lang ?>"};
var params = {allowFullScreen : false, allowScriptAccess: "always", bgcolor: "#FFFFFF", wmode: "transparent"};
var attributes = {id:"flashObj"};