Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Помогите привязать флеш к PhP (http://www.flasher.ru/forum/showthread.php?t=174542)

Godwarlock 27.01.2012 22:31

Помогите привязать флеш к PhP
 
В общем суть такова, пишу на php регистрацию, в неё входит Логин Пароль Email и Цвет.
Меня интересует конкретно цвет. (Логин, пароль и емэйл имеют стандартное поле ввода.)
Создаю флешку с несколькими видов шаров, например так: http://demiart.ru/forum/index.php?ac...ost&id=1063119
Вставляю её в PhP код. Суть такова, что при регистрации в базу данных записывается выбранный цвет ввиде отдельной флешки, то есть отдельный кружок находится в отдельном swf файле, чтобы можно было потом в информации о пользователе вставить эту флешку и там отображался тот кружок, который пользователь выбрал при регистрации. Как такое реализовать? Предполагаю, что нужно использовать xml, кто может подробнее объяснить?

Astraport 27.01.2012 22:45

Вы туда куда пишите данные логин и пароль?
Если в XML, то добавьте там узел со значением номера кадра выбранного юзером при регистрации. Если в базу, то ещё одно поле для хранения этих данных. Ну и при авторизации показываете флэшку на нужном кадре.

Godwarlock 27.01.2012 23:04

Ща как обычно расскажу по порядку.
1) Логин - создаю в таблице поле login
2) Пароль - создаю в таблице поле pass
3) Емэйл - создаю в таблице поле email
4) Цвет - создаю в таблице поле color

Далее логин, пароль, емэйл оформляю на PhP станице, в общем как обычная регистраци, только в придачу вставлена еще и флешка.
[IMG]http://s018.***********/i508/1201/b4/5ea4da1103c2.jpg[/IMG]
У меня хранится например 3 swf файла.
1) SWF просто swf файл с рамкой например
2) SWF файл с картинкой Красного шара
3) SWF файл с картинкой желтого шара
Картинки с шарами прогружаются в первом SWF файле внутри рамки. Меня интересует, как занести выбранный шар в базу данных после нажатия кнопки "Регистрация"?
XML как я понял примерно такого вида
PHP код:

<?php
header
('Content-type: text/xml');
echo 
"<xml>";
$color=3;
echo 
"<item color=\"1".$color."\" />";
echo 
"</xml>";

Нужно чтобы каждый цвет, записывался в базу данных по каким-то числом Желтый-1 Красный-2. Мне бы посмотреть такой пример, чтобы все проанализировать

fish_r 28.01.2012 00:05

Тут не обойтись без ExternalInterface. Последовательность, в общих чертах, такая:

1. Юзер выбирает цвет.
2. Значение цвета передается в JavaScript на странице.
3. JavaScript устанавливает значение соотв-го поля-hiden в поле регистрации.
4. По нажатию отправить это поле вместе с другими полями формы отправляется на сервер.

Godwarlock 28.01.2012 00:14

fish_r а можно пример такого js? Просто впредь мне не приходилось пользоваться js и поэтому мне тяжело будет изучать еще и его, конечно мне придется его изучать в будущем, но у меня сейчас всё висит на as

Андрей911 28.01.2012 10:40

А зачем js? as3 вполне сам может общаться с сервером. И ИХМО лучше использовать не XML а URLVariables если переменных всего 3. С ним работать проще и быстрее.
Отправка на сервер
Код AS3:

                        var loader:URLLoader=new URLLoader();
                        var req:URLRequest=new URLRequest();
                        req.url='http://example.org/index.php';
                        var vars:URLVariables=new URLVariables();
                        vars.color=3;
                        vars.e_mail='user@gmail.com';
                        vars.login='user login';
                        vars.pass='user password';
                        req.data=vars;
                        req.method=URLRequestMethod.POST;
                        loader.dataFormat=URLLoaderDataFormat.TEXT;
                        loader.addEventListener(Event.COMPLETE,onDataSend);
                        loader.load(req);


PHP код:

$_POST['color'] - тут будет цвет.
$_POST['e_mail'] - тут будет е-мэил.
$_POST['pass'] - тут будет пароль.
$_POST['login'] - тут будет логин


fish_r 28.01.2012 12:45

Ну только если совсем схематично.

Во флешке должен быть, примерно, следующий код:


Код AS3:

 
import flash.external.ExternalInterface;
...
 
 
function callJavaScript( color:String ):void
{
        //вызываем функцию js на странице и передаем аргументом значение цвета
        //здесь типа "строка", у вас наверное не так, но это уже частности
        if ( ExternalInterface.available ) ExternalInterface.call( "addSelectedColor", color);
}

На странице HTML:


Код:


<html>
<head>
       
        <script type="text/javascript">
         
          //функция ожидающая вызова из флешки
          function addSelectedColor( color ){
             
            //создаем ссылку на скрытое поле для ввода
            //текста в форме отправки рег.данных пользователя
            var inClr = document.getElementById("colorData");
               
                //сообщаем значение полученное из флешки
                inClr.value = color;
               
          }
        </script>
</head>
<body>
<form>
        <!--
                скрытое поле в форме отправки рег данных пользователя
                сама форма здесь, естественно не приводится, только обозначается.
        -->
        <input type="hidden" id="colorData" name="colorData" />
</form>
</body>
</html>



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

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