我正在尝试从旧的AS2教程中锻炼如何修改名片的AS3/PHP Ecard System的脚本,但我找不到任何地方的参考文献D执行以下操作:
AS2 :
loadVariablesNum ("http://www.theSite.com/Cards/bCard/"+BcardText+".txt", 0);
AS3 :
// setup URLLoader
var loader:URLLoader = new URLLoader;
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
// event listener for function when loaded
loader.addEventListener(Event.COMPLETE, varsLoaded);
// file URLRequest
loader.load(new URLRequest("http://www.theSite.com/Cards/bCard/"+BcardText+".txt"));
// set the variables from the data.txt file
function varsLoaded (event:Event):void {
//Load Data
cName.text = loader.data.cName;
cDescription.text = loader.data.cDescription;
}
随之而来的是启动以下错误消息:
- 错误打开URL'http://www.thesite.com/cards/bcard/undefined.txt'错误:错误#2101:将传递给urlvariables.decode()的字符串必须是包含名称/值对的URL编码的查询字符串。在错误$/throwerror()在flash.net:: urlvariables/decode()在flash.net:: urlvariables()在flash.net:: urlloader/oncomplete()
我无法弄清楚您在何处或如何定义 +BcardText+
将其拉入。
任何帮助都会非常感激。
我不确定我是否什至是从AS2开始的,这似乎是加载它的逻辑方法,但我以前没有处理具有参数的外部文件。
预先感谢您是否可以提供帮助!
新加载程序 - 修复!!!
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://www.theSite.com/Cards/bCard/"+BcardText+".txt");
loader.load(request);
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
function loaderIOErrorHandler(event:IOErrorEvent):void{
trace("ioErrorHandler: " + event);
}
// set the variables from the .txt file
function completeHandler (event:Event):void {
//trace("Content: " + loader.data);
this.Variable1.text = loader.data.Variable1; //Whatever dataField1 you saved as
this.Variable2.text = loader.data.Variable2; //Whatever dataField2 you saved as
}
然后,您只需设置flashvars即可区分 bcardtext 在加载程序中的变量之前!
bcardText是AS2项目中定义的变量。环顾四周(也许是在以前的框架上?),您应该找到声明的位置。它看起来像是代表卡的ID。因此,每张卡都有一个唯一的文件12345.txt,09876.txt等。
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://www.theSite.com/Cards/bCard/"+BcardText+".txt");
loader.load(request);
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
function loaderIOErrorHandler(event:IOErrorEvent):void{
trace("ioErrorHandler: " + event);
}
// set the variables from the .txt file
function completeHandler (event:Event):void {
//trace("Content: " + loader.data);
this.Variable1.text = loader.data.Variable1; //Whatever dataField1 you saved as
this.Variable2.text = loader.data.Variable2; //Whatever dataField2 you saved as
}
然后,您只需设置flashvars即可在加载程序中区分 bcardtext变量!
已经搜寻了互联网,一半疯了,但终于说了我摔断了……!
非常感谢您帮助我朝正确的方向指向。@Jason @eugen
θ)