2011-09-14 68 views
0

我無法啓動或捕獲事件觸發的結果。HTML控件的事件不會觸發?

下面是當前的代碼...

<s:Panel id="instructionsPanel" left="0" right="0" top="0" bottom="0" title="Register"> 
    <mx:HTML id="htmlViewer" left="10" right="10" top="0" bottom="10" 
      location="http://ramzsoft.com/software-optins/easyspinner.html"/> 
    <s:TextInput id="urlOutput" x="10" y="285" width="628" text="Not a test"/> 
</s:Panel> 

import flash.events.Event; 
import flash.filesystem.File; 
import flash.net.URLLoader; 
import flash.net.URLLoaderDataFormat; 
import flash.net.URLRequest; 

import mx.controls.Alert; 
import mx.managers.PopUpManager; 

import org.osmf.utils.URL; 

private var file:File = new File(); 
private const FIRST_RUN_TOKEN_FILE:File = 
    File.applicationStorageDirectory.resolvePath("firstrun"); 

init(); 

private function init():void { 
    htmlViewer.addEventListener(Event.LOCATION_CHANGE, onClosePanel); 
} 

private function onClosePanel(e:Event) { 
    urlOutput.text = "test"; 
    instructionsPanel.visible = false; 
} 

發生了什麼事是,用戶在HTML瀏覽器填寫表單,然後當他們點擊提交按鈕,我想通知頁改變的。

如果它們着陸在URL A上,那麼它們將顯示一條消息。如果他們着陸在網址B上,他們將被顯示另一個。

但是,事件並未解僱。

我也試過COMPLETE和HTML_DOM_INITIALIZE。

任何想法,爲什麼這是行不通的?

+0

您使用的是哪個版本的Flex SDK? – Exort

+0

我正在使用2.6 SDK –

+0

好的,必須是AIR SDK版本,但實際上這正是我想知道的。我知道在AIR 2.7中爲HmlLoader(特別是LOCATION_CHANGING)引入了一些事件,但我認爲LOCATION_CHANGE應該可以工作。什麼樣的對象是htmlViewer? – Exort

回答

1

我不確定把init();在任何地方都沒有任何影響。無論如何,你不需要那個init,你可以直接通過MXML來設置它。順便說一句,我認爲只有在點擊鏈接(或重定向)時手動將位置設置爲HTML組件,纔會調度位置更改。

<s:Panel id="instructionsPanel" left="0" right="0" top="0" bottom="0" title="Register"> 
    <mx:HTML id="htmlViewer" left="10" right="10" top="0" bottom="10" 
      location="http://ramzsoft.com/software-optins/easyspinner.html" 
      locationChange="onClosePanel(event)"/> 
    <s:TextInput id="urlOutput" x="10" y="285" width="628" text="Not a test"/> 
</s:Panel> 
+0

謝謝。這現在完美了! –