[英]AS3/Java/HTML: Get flash to respond to external html/java events
[英]External HTML file into Dynamic Text Field in Flash/AS3
我瀏覽了各個論壇,但無法完全找到我的問題的答案,所以我想問一下就可以了。 如果已經提出這個問題,我們深表歉意。
我正在嘗試將外部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;
我可能與此相去甚遠。 有什么幫助嗎?
提前致謝!
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);
}
}
}
嗯,我嘗試了何塞的方法,但似乎沒有用!
出現錯誤,提示:“無法加載類或接口“ Event”。無法加載類或接口“ URLLoader”。
函數displayHTML(e:Event):void {var xmlData = new XML(e.target.data);
這兩個代碼語句有一些問題。
抱歉,我是菜鳥,您的建議會很好!
您實際上無法將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;
}
這應該可行,如果您需要更多幫助,請與我聯系,我是即時寫的,所以這里或那里可能有錯字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.