想,我需要有我的Flex/AIR應用程序內HTML控件。選擇DOM元素並轉發其DOM路徑爲ActionScript方法
用戶應該能夠點擊進入某處的目前呈現的HTML頁面和Flex應用程序應該知道,這DOM元素,用戶點擊。
理想情況下,應用程序將能夠檢索所選元素的DOM路徑。回發最內DIV-元件周圍一定的Flex/AIR的方法將是沒關係。
問:是否彎曲提供此任務的框架的東西嗎?或者你知道示例代碼?
想,我需要有我的Flex/AIR應用程序內HTML控件。選擇DOM元素並轉發其DOM路徑爲ActionScript方法
用戶應該能夠點擊進入某處的目前呈現的HTML頁面和Flex應用程序應該知道,這DOM元素,用戶點擊。
理想情況下,應用程序將能夠檢索所選元素的DOM路徑。回發最內DIV-元件周圍一定的Flex/AIR的方法將是沒關係。
問:是否彎曲提供此任務的框架的東西嗎?或者你知道示例代碼?
您在HTML
元素內添加了對HTMLLoader
的window
屬性的回調。一個簡單的例子(使用jQuery的權宜之計):
HTML頁面在這裏:http://fiddle.jshell.net/w23Xx/1/show/(來源here)
Flex代碼:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function html1_creationCompleteHandler(event:FlexEvent):void
{
// Add the click callback
html.htmlLoader.window.flexClickCallback = function(element:Object):void
{
trace("Element ID:", element.id);
};
}
]]>
</fx:Script>
<mx:HTML id="html" location="http://fiddle.jshell.net/w23Xx/1/show/" left="10" right="10" top="10" bottom="10" creationComplete="html1_creationCompleteHandler(event)" />
</s:WindowedApplication>
我相信你可以直接添加監聽器,但是這顯示瞭如何訪問頁面的window
。
編輯:
邁克·錢伯斯內發佈AIR應用程序的直接做DOM操作的example。
爲什麼不使用ExternalInterface的? –
@The_asMan請多說10個字! – SteAp
ExternalInterface的是一個AS3類,允許您直接從您的Flash應用程序調用JavaScript函數。它還可以添加回調函數,以便JavaScript可以在您的應用程序中調用AS3函數。 –