Actionscript 3 - чтение строки из эхо PHP - PullRequest
1 голос
/ 16 июня 2011

У меня есть php-скрипт, который печатает с echo this: '& string = "tom, dick, harry"'

и мне нужно поместить "tom, dick, harry" в строку ActionScriptЯ должен разделить на массив.У меня проблемы с чтением вывода php, я использую классы URLLoader и TheURLVariables таким образом

        var myRequest:URLRequest = new URLRequest("ip/directory/script.php");
        var myLoader:URLLoader = new URLLoader();           

        function onLoaded(event:Event):void {
            var variables:URLVariables = new URLVariables( event.target.data );
            modelli = variables.string.split(",");
            caricaColori(modelli[0]);
        }

        myLoader.addEventListener(Event.COMPLETE, onLoaded);
        myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
        myLoader.load(myRequest);

Что я делаю не так?

Ответы [ 4 ]

0 голосов
/ 17 июня 2011
   function onLoaded(event:Event):void {
        var variables:URLVariables = new URLVariables( event.target.data );
        modelli = variables.string.split(",");
        caricaColori(modelli[0]);
    }

Ваша проблема в том, что вы загружаете переменные в контейнер URLVariables, а затем пытаетесь вызвать для него строковую функцию. Я бы сделал это так:

function onLoaded(event:Event):void {
    //load data as a string
    var variables:String = event.target.data;

    //make a new array
    var modelli:Array = new Array();
    modelli = variables.split(",");

    //possibly pop the array
    modelli.pop(); //pop off the last empty element of array

    caricaColori(modelli[0]);
 }

Существует также хороший шанс, что когда вы загрузите эти данные PHP, вам нужно вытолкнуть () последний элемент из массива, потому что это будет пустая строка.

0 голосов
/ 16 июня 2011

Думаю, что у вас проблема с URLVariables, я до сих пор не до конца понимаю это

function onLoaded(event:Event):void {
        var variables:URLVariables = new URLVariables( event.target.data );
        modelli = variables.string.split(",");
        caricaColori(modelli[0]);
    }

зачем вам нужно хранить его в экземпляре URLVariables? Почему бы не разобрать это напрямую. Если вы боитесь «& string =», вам не нужно отображать его на стороне PHP или вырезать его на стороне Actionscript.

modelli = event.target.data.split(",");
0 голосов
/ 16 июня 2011
// in php change
echo '&string="tom,dick,harry"'
// to 
echo "tom,dick,harry"

// in actionscript change
function onLoaded(event:Event):void {
  var str:String = event.target.data;
  modelli = str.split(",");
  caricaColori(modelli[0]);
}

Если вы хотите добавить больше переменных и так далее, я бы предложил превратить ответ php в файл xml.Переменные URL следует использовать для ОТПРАВКИ данных на сервер, а не для анализа ответа сервера. СМОТРИТЕ ЗДЕСЬ

0 голосов
/ 16 июня 2011

Возможно, может помочь использование имени переменной, которое не зарезервировано.string кажется плохим выбором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...