Как передать значение из flash в php - PullRequest
0 голосов
/ 30 мая 2011

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

var myVars:LoadVars = new LoadVars(); 
myVars.playerName = "Some Body";
myVars.playerTime = Timer;

myVars.send("index.html", "_parent", "POST");`

показать ошибку ->

Предупреждение: 1060: Проблема при миграции: метод LoadVars больше не поддерживается. Для получения дополнительной информации см. Класс URLVariables, свойства URLRequest.urlVariables и URLRequest.postData и свойство URLLoader.dataFormat.

, пожалуйста, сообщите мне, как мне решить эту ошибку. Я использую CS4 для флэш-памяти и AS3.0

1 Ответ

1 голос
/ 30 мая 2011

LoadVars() только для AS2.Вам нужно использовать URLLoader.Попробуйте этот класс:

package
{
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.net.URLVariables;
    import flash.net.URLRequestMethod;
    import flash.events.Event;

    /**
     * @author Marty Wallace
     * @version 1.00
     */
    public class PHPData extends Object
    {
        /**
         * Sends data to a PHP script
         * @param script A URL to the PHP script
         */
        public function send(script:String, vars:URLVariables):void
        {
            var req:URLRequest = new URLRequest(script);

            req.data = vars;
            req.method = URLRequestMethod.POST;

            var loader:URLLoader = new URLLoader();
            loader.load(req);

            // listeners
            loader.addEventListener(Event.COMPLETE, _complete);
        }

        /**
         * Called when a response has been received from a PHP script
         * @param e Event.COMPLETE
         */
        private function _complete(e:Event):void
        {
            var vars:URLVariables = new URLVariables(e.target.data);

            var i:String;
            for(i in vars)
            {
                trace(i + ": " + vars[i]);
            }

            e.target.removeEventListener(Event.COMPLETE, _complete);
        }
    }
}

Тогда вы можете делать то, что делаете, вот так:

var php:PHPData = new PHPData();
var vars:URLVariables = new URLVariables();

vars.playerName = "Some Body";
vars.playerTime = Timer;

php.send("index.php", vars);

Еще одна вещь, которую я заметил, это то, что вы используете send для отправки данных в .html документ, а не .php документ ..


Небольшое руководство по созданию этого класса для использования (на основе комментариев):

  1. Нажмите Файл -> Создать -> Файл ActionScript.
  2. Вставьте вышеуказанный пакет (первый фрагмент кода) в новый файл.
  3. Сохраните файл в тот же каталог , что и ваш .fla файл.
  4. Вставьте мой второй фрагмент кода в временную шкалу вашего .fla файла.

Все должно работатьотсюда.


Вот ZIP-файл, содержащий пример, который вы можете использовать.

http://junk.projectavian.com? f = phpdata.zip

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