我已经浏览了论坛,并且无法直接找到我的问题的答案,所以我想我只是问它。如果已经提出这个问题,请道歉。
我正在尝试将外部html文件加载到动态文本字段中。动态文本字段已启用html显示。 html文件包含标签中的链接列表,仅此而已。动态文本字段称为“dynamictext”,我尝试过:
var externaltextload:URLLoader = new URLLoader( );
externaltextload.load(new URLRequest("text/Links.html"));
externaltext.text=externaltextload.data;
和
var externaltextload:URLLoader = new URLLoader( );
externaltextload.load(new URLRequest("text/Links.html"));
externaltext.htmlText=externaltextload.data;
我可能已经离开这个了。有任何帮助吗?
提前致谢!
答案 0 :(得分:1)
URLLoader以异步方式运行,这意味着您无法立即获得远程端的答案。您需要侦听已下载数据的事件信号。
以下是docs的示例。我认为你不会找到一个更好的例子。注意在加载操作之前,如何在URLLoader中注册一个监听器负载,在成功或失败的情况下将调用相应的函数,特别是行:
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
挂钩COMPLETE事件,该事件在数据就绪时发出信号。
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
public class URLLoaderExample extends Sprite {
public function URLLoaderExample() {
var loader:URLLoader = new URLLoader();
configureListeners(loader);
var request:URLRequest = new URLRequest("urlLoaderExample.txt");
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);
var vars:URLVariables = new URLVariables(loader.data);
trace("The answer is " + vars.answer);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
}
}
答案 1 :(得分:0)
您无法将HTML页面加载到文本字段中。您需要做的是加载一个包含HTML节点的XML文件,然后将该字符串显示在文本字段中,因为它将呈现。
示例XML(myfile.xml):
<?xml version="1.0"?>
<myhtml>
<![CDATA[
<a href="http://www.google.com">google</a><br />
<a href="http://www.yahoo.com">yahoo</a><br />
<a href="http://www.bing.com">bing</a><br />
]]>
</myhtml>
样本AS3:
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("myfile.xml"));
xmlLoader.addEventListener(Event.COMPLETE, displayHTML);
function displayHTML (e:Event):void
{
var xmlData = new XML(e.target.data);
//this is your text-field
mytextfield.htmlText = xmlData.myhtml;
}
这应该有用,如果你需要更多的帮助,请回复我,我会动态写这个,所以这里或那里可能会有拼写错误。
答案 2 :(得分:0)
错误地说:“无法加载类或接口”Event“。无法加载类或接口”URLLoader“。
function displayHTML(e:Event):void { var xmlData = new XML(e.target.data);
这两句代码有一些问题。
对不起我是个菜鸟,你的建议会很好!