0

好的。我正在使用这种方法从 PHP 获取信息。

AS3:

function login_check (e:MouseEvent):void {

                    /*
                    check fields before sending request to php
                    */

                    if (login_username.text == "" || login_password.text == "") {

                        /*
                        if username or password fields are empty set error messages
                        */

                        if (login_username.text == "") {

                        login_username.text = "Enter your username";

                        } 

                        if (login_password.text == "") {

                        login_password.text = "Enter your password";

                        }

                    } else {

                        /*
                        init function to process login
                        */

                        login_process();

                    }

                }

                /*
                function to process our login
                */

                function login_process ():void {

                    /*
                    variables that we send to the php file
                    */

                    var phpVars:URLVariables = new URLVariables();

                    /*
                    we create a URLRequest  variable. This gets the php file path.
                    */

                    var phpFileRequest:URLRequest = new URLRequest("php/controlpanel.php");

                    /*
                    this allows us to use the post function in php
                    */

                    phpFileRequest.method = URLRequestMethod.POST;

                    /*
                    attach the php variables to the URLRequest
                    */

                    phpFileRequest.data = phpVars;

                    /*
                    create a new loader to load and send our urlrequest
                    */

                    var phpLoader:URLLoader = new URLLoader();
                    phpLoader.dataFormat = URLLoaderDataFormat.VARIABLES;           
                    phpLoader.addEventListener(Event.COMPLETE, login_result);

                    /*
                    now lets create the variables to send to the php file
                    */

                    phpVars.systemCall = "login_check";
                    phpVars.login_username = login_username.text;
                    phpVars.login_password = login_password.text;

                    /*
                    this will start the communication between flash and php
                    */

                    phpLoader.load(phpFileRequest);

                }

                /*
                function to show the result of the login
                */

                function login_result (event:Event):void {

                    /*

                    this autosizes the text field

                    ***** You will need to import flash's text classes. You can do this by: 

                    import flash.text.*;

                    */

                    login_result_text.autoSize = TextFieldAutoSize.LEFT;

                    /*
                    this gets the output and displays it in the result text field
                    */

                    if (event.target.data.login_result == "1") {
                        login_result_text.text = "Login In...";
                        this.gotoAndStop("login_loggedin");
                    }else{
                        login_result_text.text = "Username and password doesn't match.";
                    }

                }

PHP:

print "login_registration_status=1";

并发送多个信息,例如var1=1&var2=2

但是,如何将数组从 PHP 发送到 AS3?以及如何使用 PHP 之类的 while(array) 来处理它。

希望可以有人帮帮我..

4

3 回答 3

1

尝试类似:

<?php print 'arr=1,2,3&var1=123&var2=456'; ?>

请注意,要使用 PHP 的http_build_query.

然后,在 AS3 中,split用逗号表示值:

var data:Array = arr.split(',');

否则,您可以尝试使用 JSON 或 XML 来传输数据(而不是以 URI 格式序列化)。

于 2012-10-06T11:27:58.267 回答
0

您可能想使用http_build_query. 例子:

echo http_build_query(array(
                'key1' => 'value1',
                'key2' => 'value2',
                'key3' => 'value3'));

将输出: key1=value1&key2=value2&key3=value3

于 2012-10-06T11:14:04.950 回答
0

在敏感数据(身份验证:登录名、密码)的情况下,您可以并且应该使用 JSON。在 Flash Player 11 中,您可以像这样使用 JSON:

var arrayToSend:Array = [ 'abc', 'def', [1, 2, 3] ];

var JSONArrayToSend:String = JSON.stringify ( arrayToSend );
var arrayReceived:Array = JSON.parse ( JSONArrayReceived );

在 PHP 中:

$JSONArrayToSend = json_encode( $arrayToSend );
$arrayReceived = json_decode( $JSONArrayReceived );

在 Flash Player 10 及更早版本中,您将需要此库:http ://code.google.com/p/as3corelib/

于 2012-10-06T14:42:05.573 回答