Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   php -> actionscript 3.0 -> php (http://www.flasher.ru/forum/showthread.php?t=165517)

EvgenZi 24.08.2011 00:14

php -> actionscript 3.0 -> php
 
Всем здравствуйте) Помогите пожалуйста! НУжно сделать такой скрипт : скрипт actionscript получает переменные a и b из php, потом с ними делает операции сложения (a +1 = c, b + 1 = d) и отправляет обратно в php! ЕСли не трудно, с коментами пожалуйста! Флеш только начал изучать!

t4arty 24.08.2011 01:21

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

EvgenZi 24.08.2011 01:28

спасибо! уже посмотрел! только вот не понимаю, как в флешке по отдельности получить переменные php

Добавлено через 2 минуты
Код:

var variables:URLVariables = new URLVariables("do=returnAll");
                        var request:URLRequest = new URLRequest();
                        request.url = ("http://test2.ru/src/1.php");
                        request.method = URLRequestMethod.POST;
                        request.data = variables;       
                        var loader:URLLoader = new URLLoader();
                        loader.dataFormat = URLLoaderDataFormat.VARIABLES;
                        loader.addEventListener(Event.COMPLETE, printResponse);
                        loader.load(request);
                       
                }
               
                public function printResponse(e:Event):void
                {
                        trace(e.target.data.response);
                }

вот что дальше делать не понимаю((((

Silicium 24.08.2011 13:59

Как ответ формируется на сервере? Что скрипт отсылает флэшу?

EvgenZi 27.08.2011 01:37

PHP код:

<?php

@mysql_connect("*****""*****", *****);
@
mysql_select_db("forvk");

if (
$_POST['do'] == "returnAll")
{
    
$result mysql_query("SELECT * FROM names");
    
    
$response="";
    
    while (
$row mysql_fetch_array($result))
    {
        
$response .= $row['id'] . ". " $row['first_name'] . " " $row['last_name'] . " " $row['text'] . ".\n";
    }
    
    
$response iconv("cp1251""utf-8"$response);
    
    print 
"response= " $response;
    
}
?>

Добавлено через 29 минут
Вместо first_name и т д. могут быть числа. Вот и вопрос: как дальше во флеш с этими значениями совершать действия! Для начала, как их вытащить по-отдельности! А после совершеня операций над ними. отправить обратно в базу!(php-скрипт)

Silicium 27.08.2011 14:48

Я бы просто так сделал:
PHP код:

print json_encode(mysql_fetch_array($result)) ; 

В AS соответственно JSON.deserialize(response) (это в JSONLite)

Gage 28.08.2011 23:21

Код AS3:

public function printResponse(e:Event):void {
        var myRows: Array = String(e.target.data).split('\n');
        for (var i=0; i<myRows.length; i++) {
                var thisRow: Array = myRows[i].split(' ');
                var id: String = String(thisRow[0]);
                var firstName: int = parseInt(thisRow[1]);
                var lastName: int = parseInt(thisRow[2]);
                var justText: String = String(thisRow[3]);
                trace(id + ',' + firstName + ',' + lastName + ',' + justText);
        }
 
}


EvgenZi 29.08.2011 01:12

Всем спасибо! Теперь проблема, как эти переменные вытащить за функцию, чтобы дальше с ними работать!

Gage 29.08.2011 02:50

Код AS3:

public var thisRow: Array;
public var id: String;
public var firstName: int;
public var lastName: int;
public var justText: String;
public function printResponse(e:Event):void {
        var myRows: Array = String(e.target.data).split('\n');
        for (var i=0; i<myRows.length; i++) {
                thisRow: Array = myRows[i].split(' ');
                id = String(thisRow[0]);
                firstName = parseInt(thisRow[1]);
                lastName = parseInt(thisRow[2]);
                justText = String(thisRow[3]);
                trace(id + ',' + firstName + ',' + lastName + ',' + justText);
        }
 
}

Если спросите, "как мне теперь их отправить в php?", я вам отвечу: это не вы начали флеш изучать, а я стал за вас софт писать :)

EvgenZi 29.08.2011 02:58

Огромное спасибо! Вы очень помогли))))

Добавлено через 3 минуты
А если ещё возникнет пара вопросов, можно спросить будет? :)

Gage 29.08.2011 03:21

Можно, конечно. Только сами-то усилия тоже прилагайте. Делать переменные глобальными из локальных - это же азы для любого языка. Вам предстоит провести некоторое время на сайте Adobe. У них отличный хелп по AS с примерами.

http://help.adobe.com/ru_RU/FlashPla...mbols.html#top

EvgenZi 29.08.2011 05:34

Всем привет ещё раз! Что-то у меня теперь проблема вот такого вида:

Код:

response=1%2E%20%3F%3F%3F%3F%3F%3F%3F%20%3F%3F%3F%3F%3F%3F%3F%2E%0A2%2E%20Julia%20%3F%3F%3F%3F%3F%3F%3F%3F%3F%2E%0A,0,0,undefined
Что это может быть? Это выводит trace!

Добавлено через 5 минут
Вот полный код


Код AS3:

import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
 
var variables:URLVariables = new URLVariables("do=returnAll");
var request:URLRequest = new URLRequest();
request.url = "http://test2.ru/";
request.method = URLRequestMethod.POST;
request.data = variables;
 
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, printResponse);
loader.load(request);
 
 
function printResponse(e:Event):void
{
        var myRows:Array = String(e.target.data).split('\n');
        for (var i=0; i<myRows.length; i++)
        {
                var thisRow:Array = myRows[i].split(' ');
                var id:String = String(thisRow[0]);
                var firstName:int = parseInt(thisRow[1]);
                var lastName:int = parseInt(thisRow[2]);
                var justText:String = String(thisRow[3]);
                trace(id + ',' + firstName + ',' + lastName + ',' + justText);
        }
 
}

Добавлено через 5 часов 53 минуты
не получается вывести переменные за пределы функции ((( выдает null!

function printResponse {...} - в ней есть переменные, внутри функции вывод происходит нормально, как вывести эту переменную за пределами функции? - напишите, пожалуйста, пример вывода переменной!

Gage 29.08.2011 22:26

Код AS3:

response = unescape(response)

Только из php данные на русском должны быть в кодировке UTF-8, а не windows-1251.

Данные за пределами функции у вас null, потому что, видимо (кода обработки в исходнике не вижу), вы их пытаетесь обработать раньше, чем они наполняются данными, полученными от php.

EvgenZi 31.08.2011 21:14

А пример, пожалуйста)

Добавлено через 53 секунды
наполняются : число 23 и имя и фамилия

Добавлено через 51 час 48 минут
Ладно! Проще напишу! В actionscript пришла переменная! КАк её использовать в другой функции????


Часовой пояс GMT +4, время: 01:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.