HTML控件的事件不会触发?

时间:2011-09-14 16:50:20

标签: flex actionscript-3 air

我无法解雇或捕获事件发生的结果。

这是当前的代码......

<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上,那么他们将会看到一条消息。如果他们落在URL B上,他们将被显示为另一个。

然而,该事件未被解雇。

我也尝试过COMPLETE和HTML_DOM_INITIALIZE。

关于为什么这样做不正常的任何想法?

1 个答案:

答案 0 :(得分: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>