Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6085
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как из Flash читать/писать в базу данных (MySQL или MSSQL)
Просмотров: 313
 
Ответов: 10
Планирую написать Flash-приложение, которое будет помимо всего прочего обращаться к базе данных.
Подскажите пожалуйста оптимальные решения или ссылки на статьи на эту тему.
рекомендовал бы помотреть в сторону AMF3.
Это родной для flash/flex формат передачи данный.
На серверной стороне если php то Zend_Amf (http://framework.zend.com/download/amf) или php-amf3 (http://sourceforge.net/projects/php-amf3/), последний в разы быстрее, если python тогда pyAMF в связке с django, twisted или чего-то другого по вкусу )) про java не в курсе.
Coldfusion продвигаемая Адобом серверная платформа для веб-приложений основанная на J2EE.
По сути для общения с базой данных в любом случае прийдется писать некий серверный компонент обрабатывающий запросы клиентов на swf и производящий различные операции с БД. По сути выбор сводиться к языку программирования с которым вам удобнее работать.
Не большой специалист по Flash, но разве у него нет достаточно высоко развитых средств обращения к сетевым сервисам? Если всё, что нужно сделать — это предоставить доступ приложению к БД, то просто поднимете СУБД на внешних интерфейсах сервера (если речь про клиентские приложения с центральной БД) или на локальных (если речь про локальные приложения) и обращайтесь :) Возможно даже для Flash (Actionscript?) существуют различные адаптеры, облегчающие и абстрагирующие работу с БД и, например, писать SQL запросы не придётся.
Но только подумайте, действительно ли вам нужен именно доступ к БД или вам нужны данные, которые в ней хранятся, и/или возможность их записывать, но с дополнительной логикой, например, развитой аутентификацией и авторизацией? Тогда надо вводить трехзвенную архитектуру — клиентское приложение -> серверное приложение -> база данных
Здесь уже достаточно много и правильно сказали выше. Может и мой опыт окажется полезным. Сейчас в одном проекте использую прямые SQL запросы из ролика, через php скрипт (в простейшем варианте — 10 строк кода). PHP-скрипт выполняет входящий запрос и отдает данные обратно ролику в JSON. Могу сказать, что это очень удобный и простой способ: возможностей sql запросов полностью хватает для выполнения сложных выборок, лишние данные между клиентом и сервером не бегают. В флеше мы получаем массив или объект с результатами выборки. В моем sql2flash классе запросы выглядят примерно так: sql2flash(«select * from table», slqHandler), где sqlHandler — обработчик результатов запроса. Если интересно, могу выслать код.
Что значит «Их оттуда можно элементарно достать»? Особенно если они генерируются программно. Напишите об этом в Adobe.
И каким боком здесь онлайн-игра? Я написал выше, что нужно понимать целесообразность такого решения. У меня например таким образом вытаскиваются данные из ~10 взаимосвязанных баз, в которых исключительно публичная информация. Я хочу посмотреть на этот монструозный велосипед с API, который вы предлагаете, особенно, если структура данных может меняться.
А если нужно получить доступ к секретным данным — никто не мешает написать отдельный php скрипт.
И что вы опять с этой базой с паролями, закрыта она, за-кры-та. Ну если человек не понимает, то ему ни один туториал не поможет обезопасить систему, ообенно в случае с таким довольно нетривиальным решением как flash<-->mysql.
garbage-collector.ru/2007/05/assql_actionscript_mysql_driver.html — здесь что-то на эту тему. Сути не помню (давно уже читал), но вроде как работа с сокетами напрямую происходит.
Напрямую никак.
Но реализуется очень просто, через PHP.
Создаем объект URLRequest(«путь_к_PHP_скрипту»). Ему в data присваиваем URLVariables, в которые предварительно заносим данные необходимые для записи в базу (их может и не быть, если мы, например, читаем из базы). Далее создаем объект URLLoader и вызываем его метод load, в который передаем в качестве параметра наш URLRequest.
Скрипт получает данные, работает с базой и выводит результат через echo.
После этого срабатывает событие COMPLETE у URLLoader'а и в поле data у него лежит результат.
SWF исполняется у клиента и посылает данные PHP-скрипту методом POST (или GET). Скрипт получает данные и пишет их в таблицу. РНР-код писать не буду, вот то, что на стороне клинта, AS3:
var loader : URLLoader = new URLLoader();
var request : URLRequest = new URLRequest("www.server.com/somescript.php");
request.method = URLRequestMethod.POST;
var variables : URLVariables = new URLVariables();
variables.peremennaja1 = "value1";
variables.peremennaja2 = "value2";
request.data = variables;
// Handlers
loader.addEventListener(Event.COMPLETE, on_complete);
loader.load(request);
function on_complete(e : Event):void{
trace("Всё послано, шеф!");
}
var request : URLRequest = new URLRequest("www.server.com/somescript.php");
request.method = URLRequestMethod.POST;
var variables : URLVariables = new URLVariables();
variables.peremennaja1 = "value1";
variables.peremennaja2 = "value2";
request.data = variables;
// Handlers
loader.addEventListener(Event.COMPLETE, on_complete);
loader.load(request);
function on_complete(e : Event):void{
trace("Всё послано, шеф!");
}
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться