ActionScript извлекает из PHP и возвращает нулевое значение - PullRequest
0 голосов
/ 08 января 2012

Я пытаюсь получить данные из базы данных с помощью сценариев php и отобразить их во флэш-памяти с помощью Actionscript 3.

Для ActionScript 3 у меня есть две функции:

private var postArrayTxt:Array;

        public function stampTwo() {
            // constructor code

            var stampNumber1:MovieClip = new stamp1();
            var stampNumber2:MovieClip = new stamp2();
            var stampNumber3:MovieClip = new stamp3();

            postArrayTxt = new Array();
            postArrayTxt[0] = stampNumber1;
            postArrayTxt[1] = stampNumber2;
            postArrayTxt[2] = stampNumber3;
            trace("All stamps works");

            retrieveDetailsFromDB();

        }

Данные, полученные избаза данных будет отображаться в различных мувиклипах, где она будет вызывать retrieveDetailsFromDB ().

public function retrieveDetailsFromDB():void {

            var myLoader:URLLoader = new URLLoader();
            myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
            myLoader.load(new URLRequest("http://localhost/Converse/stampGalore/tryout.php"));
            myLoader.addEventListener(Event.COMPLETE, onDataLoad);

            // Error Handling
            myLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
            myLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);

            // Could be an error or just a message
            myLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);

            function onDataLoad(evt:Event): void {
                //var loader:Loader = new Loader();
                //stamp221.addChild(loader);
                //loader.load(new URLRequest(evt.target.data.facebookRemarks));
                var delimiter:String = "|^_^|";
                var stamp:String = evt.target.data.databaseRemarks;
                trace(stamp);

                var stampRemarkArr:Array = new Array();
                stampRemarkArr = stamp.split(delimiter);


                for (var i:Number=0; i<stampRemarkArr.length; i++) {
                    postArrayTxt[i].text = String(stampRemarkArr[i]);
                    trace("ended");
                } 
            }

            // error callbacks

            function onIOError(evt:IOErrorEvent) {
                trace("IOError: " + evt.text);
            }

            function onHTTPStatus(evt:HTTPStatusEvent) {
                trace("HTTPStatus: " + evt.status);
            }

            function onSecurityError(evt:SecurityErrorEvent) {
                trace("SecurityError: " + evt.text);
            }
        }

И последнее, но не менее важное, это мой php-скрипт.

<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
include_once "mysqli.connect.php";


$sql = "SELECT remarks FROM stamp";
$result = $mysqli->query($sql);
if ($mysqli->errno)
{
    error_log($mysqli->error);
    return;
}


$facebook = "";
$counter = 0;

while ($row = $result->fetch_array())
{
    $database = $row["remarks"];
    $delimiter = "|^_^|";

    if ($counter == 0) {
        $facebook .=$database;
    } else {
        //Use a delimiter "|^_^|" to seperate the records
        $facebook .= $delimiter . $database;
    }

    $counter++;
}
$mysqli->close();

    echo "databaseRemarks=" . $facebook;
?>

если бы язапустить сам скрипт php, данные могут быть получены из базы данных.Однако, если я запускаю во Flash, он возвращает нулевое значение.Пожалуйста, помогите мне, так как я потратил много времени на эту функцию извлечения.Спасибо

1 Ответ

0 голосов
/ 08 января 2012

Это не сработает:

var stamp:String = evt.target.data.databaseRemarks;

Flash не знает, в каком формате находятся ваши данные, поэтому вам нужно сначала проанализировать их. Итак, сначала прочитайте данные:

var rawData:String = evt.currentTarget.data;

Тогда разбери его:

var parsedData:* = someFunctionToParseYourData(rawData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...