Jal*_*lal 6 html air loader actionscript-3
假设我有一个包含表单的html文件:
<form method="post" action="url">
<input type="text" id="fullname" />
<input type="text" id="bodyText" />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我们HTMLLoader在swf文件中加载了这个html 文件.
_htmlLoader = new HTMLLoader();
_htmlLoader.paintsDefaultBackground = false;
var req:URLRequest = new URLRequest(urlValue);
_htmlLoader.load(req);
_stage.addChild(_htmlLoader);
Run Code Online (Sandbox Code Playgroud)
在Loader主应用程序内部加载此Swf文件后,文本框是只读的,无法输入.但我们可以使用鼠标改变它们的焦点.
var loader1:Loader = new Loader();
loader1.load(new URLRequest("path to file.swf"));
// ...
this.addChild(loader1);
// ...
Run Code Online (Sandbox Code Playgroud)
问题是什么?
Event.COMPLETE事件触发后 HTMLLoader 是否被附加?甚至可能值得等待 HTMLLoader 的文档在将其附加到舞台之前触发 DOMReady 事件。
尝试这样的事情:
_htmlLoader = new HTMLLoader();
_htmlLoader.paintsDefaultBackground = false;
var urlRequest:URLRequest = new URLRequest(urlRequest);
_htmlLoader.addEventListener(Event.COMPLETE, completeHandler);
_htmlLoader.load(urlRequest);
function completeHandler(event:Event):void { _htmlLoader.window.document.addEventListener("DOMContentLoaded", readyHandler); }
function readyHandler(event:Event):void { _stage.addChild(_htmlLoader); }
Run Code Online (Sandbox Code Playgroud)
关于处理 HTML 事件的 Flex 文档提到了这一点:
当侦听器引用特定 DOM 元素时,最好等待父 HTMLLoader 分派完成事件,然后再添加事件侦听器。HTML 页面通常会加载多个文件,并且在加载并解析所有文件之前,HTML DOM 尚未完全构建。创建所有元素后,HTMLLoader 会调度complete 事件。
HTMLLoader 可能是在文档实际准备好之前附加到阶段的,这可能解释了一些奇怪的情况。
如果您有更多信息,那将是一个很棒的帮助......