错误#2044:未处理的ioError: text =错误#2032:流错误。 URL:file:/// C | /xampp/htdocs/flash/apm01.php at as__fla :: MainTimeline / checkComplete()

时间:2012-08-21 11:04:07

标签: actionscript

我的AS3中有一个经常调用PHP文件的函数。它失败并抛出我在标题中使用的错误。我总是收到此错误消息。但是当我在浏览器中运行它时工作正常。我不知道这是什么问题。这是我的代码:

    $function checkComplete(evt:MouseEvent):void {

    // Create A new URLVariables instance to store the variable
    var myVariables:URLVariables = new URLVariables();

    // Create a variable (e.g. username) to send
    myVariables.username = candidate_txt.text;

// Create a new URLRequest instance sending data to "ascom01.php"
var myRequest:URLRequest = new URLRequest("apm01.php");

// Send data using the POST method
myRequest.method = URLRequestMethod.POST;

// The data property of the request is set to the
// URLVariables instance (myVariables) to send to the PHP file.
// Note: myVariables stored the variable (e.g. candidate)
myRequest.data = myVariables;

// Create a new instance of the URLLoader class to work with.
// URLLoader.load( ) method should be used when we need the 
// sent variables returned back to Flash ActionScript.
var myLoader:URLLoader = new URLLoader;

//specify dataFormat property of the URLLoader to be "VARIABLES"
//This ensure that the variables loaded into Flash with the same variable names
myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

//Load the PHP file by using URLRequest
myLoader.load(myRequest);

//Listen when the loading of data COMPLETE
//Call the loadComplete function when the loading COMPLETE
myLoader.addEventListener(Event.COMPLETE, loadComplete);

}

// Hook up the button with the function checkComplete
enter_btn.addEventListener(MouseEvent.CLICK, checkComplete);

// This is the function that display the data returned back from PHP file
function loadComplete(evt:Event):void {

//Display the value with variable name "totalItem"
total_txt.text = evt.target.data.totalItem

//Get the value (string) with variable name "phpConfirm"
var myResult:String = evt.target.data.phpConfirm;

//Split the string into an Array
var myArray:Array = myResult.split("|");
//output_txt.text = "The number of items are: " + myArray.length;

var finalString = "";
var i:int;
for (i = 0; i < myArray.length; i++) {

finalString = finalString + myArray[i] + "<br>";
    }

    output_txt.htmlText = finalString;


    }`

2 个答案:

答案 0 :(得分:0)

出现此异常是因为您必须将php文件部署到php-server中。 Flash无法运行php代码。您尝试从磁盘C启动它。

所以

var myRequest:URLRequest = new URLRequest("apm01.php");

应该是

var myRequest:URLRequest = new URLRequest("http://myhost:80/example/apm01.php");

其他方式,您可以将Flash文件上传到服务器上的同一文件夹,然后从那里启动它。

答案 1 :(得分:0)

我的解决方案对于这个董事会的其他人来说可能是显而易见的......但我对此毫无头绪:

我从Flash文件链接到的PHP文件是我在服务器上创建的新文件。它具有标准666权限。一旦我将权限设置为644,一切都运行得很好。