URLLoader 不从 URLRequest 加载数据。没有错误信息
URLLoader doesn't load data from URLRequest. No error messages
我正在尝试从我的 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 可以显示常规字符串,因此 class 似乎不是问题所在。我只是为了完成而包含它。
我也在构建 运行 使用 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?如果需要,我可以提供更多信息。感谢阅读。
我认为您的 Main
class 应该从 MovieClip
而不是 Sprite
延伸:
public class Main extends MovieClip
{
// ...
}
要在浏览器中调试您的项目,您可以使用可以从 here 下载的 Flash Player 调试版本。
希望能帮到你。
我正在尝试从我的 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 可以显示常规字符串,因此 class 似乎不是问题所在。我只是为了完成而包含它。
我也在构建 运行 使用 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?如果需要,我可以提供更多信息。感谢阅读。
我认为您的 Main
class 应该从 MovieClip
而不是 Sprite
延伸:
public class Main extends MovieClip
{
// ...
}
要在浏览器中调试您的项目,您可以使用可以从 here 下载的 Flash Player 调试版本。
希望能帮到你。