使用 jquery 的 AS3 ExternalInterface 调用
Posted
技术标签:
【中文标题】使用 jquery 的 AS3 ExternalInterface 调用【英文标题】:AS3 ExternalInterface call using jquery 【发布时间】:2010-12-24 00:46:00 【问题描述】:我正在使用 ExternalInterface 调用嵌入在 html 页面中的 Flash 应用程序。 以下代码可以正常工作(我正在使用按钮进行测试):
$(document).ready(function()
$("#button").click(function()
var app = document.getElementById('ApplicationID')
console.debug(app)
app.pageUnloading()
)
)
所以这可以很好地调用 Flash 应用程序并打印:
<embed id="ApplicationID" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" allowscriptaccess="sameDomain" name="FlexMoeders" bgcolor="#cccccc" quality="high" src="ApplicationID.swf">
但是当我使用 jquery $# 方法通过 id 获取元素时,我收到了一个不同的对象:
$(document).ready(function()
$("#button").click(function()
var app = $("#ApplicationID")
console.debug(app)
app.pageUnloading()
)
)
当我使用这个时,我被告知:
app.pageUnloaded is not a function
并打印以下内容:
[embed#ApplicationID]
我也试过了:
var app = $("#ApplicationID").val()
var app = $("#ApplicationID").get(0)
但仍然没有成功。有人在这里有什么想法吗?
【问题讨论】:
你有展示这个的示例页面吗?.get(0)
为我工作
【参考方案1】:
var app = $('#ApplicationID')[0]
或
var app = $('#ApplicationID').get(0)
应该和
做同样的事情var app = document.getElementById('ApplicationID')
【讨论】:
我的 .get(0) 不好,它确实有效,但我调用了错误的函数【参考方案2】:当你使用$("#ApplicationID")
时,你会得到一个 jQuery 对象。
这就是它不起作用的原因。但是$("#ApplicationID").get(0)
实际上应该可以工作。
【讨论】:
以上是关于使用 jquery 的 AS3 ExternalInterface 调用的主要内容,如果未能解决你的问题,请参考以下文章
ActionScript 3 AS3:使用SWFObject2和AS3传递变量