我正在尝试从我的AS3程序中的网站加载数据。但是,urlLoader.load()永远不会完成,但程序运行没有任何错误。
这是我的代码:
Main.as:
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import ttTextField;
public class Main extends Sprite
{
private var textField:ttTextField = new ttTextField("", false);
public function Main():void
{
var urlRequest:URLRequest = new URLRequest("http://itch.io/api/1/API_KEY_REMOVED_FOR_SECURITY/my-games");
urlRequest.method = URLRequestMethod.GET;
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.load(urlRequest);
stage.addChild(textField);
}
private function completeHandler(event:Event):void
{
textField.text = event.target.data;
}
}
ttTextField.as:
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormatAlign;
import flash.text.TextFormat;
public class ttTextField extends TextField
{
[Embed(source = "../files/Fixedsys500c.ttf", embedAsCFF = "false", fontName = "fixedSys")] private var fontClass:Class;
private var textFormat:TextFormat = new TextFormat("fixedSys", 24);
public function ttTextField(string:String, centered:Boolean)
{
if (centered)
{
textFormat.align = TextFormatAlign.CENTER;
}
else
{
textFormat.align = TextFormatAlign.LEFT;
}
string = string;
this.autoSize = TextFieldAutoSize.LEFT;
this.mouseEnabled = false;
this.embedFonts = true;
this.textColor = 0xFFFFFF;
this.defaultTextFormat = textFormat;
this.text = string;
}
}
ttTextField可以显示常规字符串,因此看起来这个类似乎不是问题。我只是为了完成而把它包括在内。
我也在使用Sublime Text 2构建和运行。我的sublime-build文件如下:
{
"cmd": ["C:\\Users\\Dan\\Documents\\flex_sdk_4.6\\bin\\mxmlc.exe", "-output=C:\\Users\\Dan\\TTTT\\TTTT.swf", "-default-background-color=#00FF00", "-default-size=800,600", "C:\\Users\\Dan\\TTTT\\src\\Main.as", "-static-link-runtime-shared-libraries=true"],
"file_regex": "(.*)[(](\\d+)[)]:(?: col: (?:\\d+))? *Error: (.*)",
"selector": "source.actionscript",
"variants":
[
{
"name": "Run",
"shell": true,
"cmd": ["C:\\Users\\Dan\\TTTT\\TTTT.swf"]
}
]
}
我已尝试在Flash Player和Google Chrome中运行该程序。每次输出只是blank screen。
如何让我的URLLoader实际加载URL?如果需要,我可以提供更多信息。谢谢你的阅读。
答案 0 :(得分:0)
我认为只有Main
课程应该从MovieClip
延伸而不是Sprite
:
public class Main extends MovieClip
{
// ...
}
要在浏览器中调试项目,您可以使用可以从here下载的Flash播放器调试版本。
希望可以提供帮助。