[英]AS3 - Loading Image Coordinates from URL
我正在使用Flash Pro CC在Air中開發用於Android的Android應用程序,並且我厭倦了一直推送更新以更改需要每隔幾天移動到特定位置的圖像的生成位置。 我要等到需要推送更新的幾分鍾后才能知道位置,而讓應用程序從我的網站啟動時以.txt文件形式加載圖像的生成坐標會更快得多。 我需要在文件中鍵入X和Y坐標的地方,然后加載信息,AS3在這些坐標處生成圖像。 如果文本文件中沒有可用的坐標(因為一周中的5天將沒有坐標),則無論放置在哪里,都需要顯示其他圖像。 我可能只是為此准備了一個單獨的框架。
如果能在補間動畫中使用該圖像,我們將不勝感激,並且我更喜歡它,但如果不能,那么我會解決一些問題。
注意:我是AS3編碼的新手,但我想出了Flash本身可以對時間軸進行動畫處理。
看一下URLRequest
和URLLoader
來檢索數據。 要在特定位置生成圖像,請考慮移動圖像。 舞台上的任何對象都是DisplayObject
,並且DisplayObjects具有屬性x
和y
。 要換出圖像,請查看DisplayObjectContainer
,特別是函數DisplayObjectContainer.addChild(child:DisplayObject)
和DisplayObjectContainer.removeChild(child:DisplayObject)
。 我提供了每個相關功能的文檔鏈接。
如果是每天更新,則也可以查看Date
類-這將使您找出日期,以及是否需要發出url請求來加載文本文件以顯示圖像。
如果您對使用這些類有任何特定的問題,我認為最好是提出一個新問題,並提供一個指向該上下文的鏈接。 您會英語很好,而對AS3不太好(如您所說),因此我可以在需要的地方解釋相關的知識,但是如果我一次性解釋所有功能,那將是一個漫長而復雜的故事。 ...我想您會發現這些類名也將使谷歌搜索更加容易。
我希望您必須使用帶有URLRequest
的URLLoader
來加載文本文件,然后根據結果,通過圖像添加圖像(如果尚不存在)通過addChild
將其添加到舞台上,然后設置其x
和y
值。 您必須使用Date
類檢查每次用戶啟動應用程序或執行某些特定操作時是否需要發出新請求。
我在這里有完成的代碼。 loadURL是Flash加載的文檔類。 一切正常!
package {
// IMPORTS EVENTS USED
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.UncaughtErrorEvent;
import flash.events.ErrorEvent;
import flash.events.Event;
// DECLARES VARIABLES
public class loadURL extends MovieClip {
public var Xurl:String = "URL GOES HERE";
public var Yurl:String = "URL GOES HERE";
public var URLloaderX:URLLoader = new URLLoader();
public var URLloaderY:URLLoader = new URLLoader();
public var marker:Marker = new Marker();
public var gone:Gone = new Gone();
public var connectionerr:ConnectionErr = new ConnectionErr();
// CODE EXECUTED UPON LAUNCH
public function loadURL() {
// constructor code
trace("Loaded");
URLloaderX.addEventListener(Event.COMPLETE, completeHandlerX);
URLloaderX.load(new URLRequest(Xurl));
URLloaderY.addEventListener(Event.COMPLETE, completeHandlerY);
URLloaderY.load(new URLRequest(Yurl));
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
}
function completeHandlerX(event:Event):void
{
if(URLloaderX.data == null||URLloaderX.data==(""))
{addChild(gone)}
else{addChild(marker);marker.x = (URLloaderX.data)}
}
function completeHandlerY(event:Event):void
{
if(URLloaderY.data == null||URLloaderY.data==("")){}
marker.y = (URLloaderY.data)
}
private function onUncaughtError(e:UncaughtErrorEvent):void //Checks for no internet connection
{
e.preventDefault(); //leave this
// RESULT OF NO INTERNET HERE
addChild(connectionerr);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.