使用jquery调用AS3 ExternalInterface

Bef*_*rem 7 flash jquery actionscript-3 externalinterface

我正在使用ExternalInterface调用嵌入在html页面中的flash应用程序.以下代码工作正常(我正在使用按钮进行测试):

$(document).ready(function(){
    $("#button").click(function(){
        var app = document.getElementById('ApplicationID')
        console.debug(app)
        app.pageUnloading()
    })
})
Run Code Online (Sandbox Code Playgroud)

所以这调用flash应用程序并打印:

<embed id="ApplicationID" width="600" height="400" 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">
Run Code Online (Sandbox Code Playgroud)

但是当我使用jquery $#方法获取id的元素时,我会收到一个不同的对象:

$(document).ready(function(){
    $("#button").click(function(){
        var app = $("#ApplicationID")
        console.debug(app)
        app.pageUnloading()
    })
})
Run Code Online (Sandbox Code Playgroud)

当我使用它时,我被告知:

app.pageUnloaded is not a function
Run Code Online (Sandbox Code Playgroud)

并打印以下内容:

[embed#ApplicationID] 
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var app = $("#ApplicationID").val()

var app = $("#ApplicationID").get(0)
Run Code Online (Sandbox Code Playgroud)

但仍然没有成功.有人有任何想法吗?

Pet*_*dIt 10

var app = $('#ApplicationID')[0] 
Run Code Online (Sandbox Code Playgroud)

要么

var app = $('#ApplicationID').get(0)
Run Code Online (Sandbox Code Playgroud)

应该做同样的事情

var app = document.getElementById('ApplicationID')
Run Code Online (Sandbox Code Playgroud)


jit*_*ter 5

当你使用时,$("#ApplicationID")你将获得一个jQuery对象.

这就是为什么它不起作用.但$("#ApplicationID").get(0)实际上应该工作.