从POST发送带有扩展数据的文件 - php as3

时间:2012-11-03 21:04:11

标签: php actionscript-3 variables urlloader

我正在尝试从旧的as2教程中解决如何为名片修改as3 / php eCard系统的脚本,但我无法在任何地方找到你如何执行以下操作的参考:

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;
}

通过此操作,它会输出以下错误消息:

  • 打开网址'http://www.theSite.com/Cards/bCard/undefined.txt'时出错 错误:错误#2101:传递给URLVariables.decode()的String必须是包含名称/值对的URL编码查询字符串。 at Error $ / throwError() 在flash.net::URLVariables/decode() 在flash.net::URLVariables() 在flash.net::URLLoader/onComplete()

我无法确定您在何处或如何定义+BcardText+以便将其拉入。

感谢任何帮助。

我不确定如果我从as2那里接近它,它似乎是加载它的逻辑方法,但我之前没有处理过具有参数的外部文件。

如果有人可以提供任何帮助,请提前致谢!

NEW LOADER - 固定!!!

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 变量!

2 个答案:

答案 0 :(得分:0)

BcardText是as2项目中定义的变量。环顾四周(可能在之前的帧上?)你应该找到声明的地方。它看起来像是代表卡片的ID。所以每张卡都有一个唯一的文件12345.txt,09876.txt等。

答案 1 :(得分:0)

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

Θ)