PDA

Просмотр полной версии : совместная работа flash и MySQL. Помогите с реализацией.


fidson
18.01.2013, 20:53
Есть бд в MySQL, в бд 4 строки:
id
name
xcord
ycord

Сейчас у меня рандомное выведение по коодринатам. И выведение текста:

package {
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.external.ExternalInterface;
import flash.system.Security;
import flash.text.TextField;


public class Main extends Sprite {

public function Main():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var tf:TextField = new TextField();
tf.textColor = 0x333333;
tf.width = 800;
tf.height = 600;
addChild(tf);

try {
//tf.text = 'Try to register ExternalInterface...';
ExternalInterface.addCallback('showPerson', _showPerson);
ExternalInterface.addCallback('togglePerson', _togglePerson);
//tf.text = 'ExternalInterface is registered';
} catch (e:Error) {
//tf.text = 'ExternalInterface is NOT registered!';
}
Security.allowDomain('*');
}

public function _togglePerson(id:uint, isChecked:Boolean):void {
// функция обработки клика по чекбоксу
var tf:DisplayObject = getChildByName('person-' + id);
tf.alpha = isChecked ? 1 : .5;
//tf.size = isChecked ? 1 : 5;
}

public function _showPerson(id:uint, name:String):void {
// функция для добавления как-то объекта
// с которым потом будет работа из чекбокса
var tf:TextField = new TextField();

tf.textColor = 0xffffff;
//tf.autoSize : String
tf.text = name + ' №' + id;
tf.name = 'person-' + id ;
tf.alpha = .5;
tf.x = Math.random() * (800 - tf.width);
tf.y = Math.random() * (600 - tf.height);
addChild(tf);

}


}

}


Как сделать что бы вместо текста выводился, допустим, круг и координаты передавались из полей БД(xcord и ycord), а не рандомно генерировались?

Написано в FlashDevelop.

Добавлено через 1 час 17 минут
Я понимаю что надо надо это слепить с ЭТИМ (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#includeExamplesSummary), но мозга не хватает на это(

fidson
23.01.2013, 10:24
помогите....

Astraport
23.01.2013, 10:28
А где тут mySQL?

caseyryan
23.01.2013, 10:56
Более того, тут даже и намека на подключение к ней нет

Astraport
23.01.2013, 11:07
Предположу что ExternalInterface через JS получает какие-то серверные данные. Но при чем здесь рисование круга?

Круг рисуется так:

var circle:Shape = new Shape();
circle.graphics.beginFill(0xff0000, 1);
circle.graphics.drawCircle(pointX, pointY, radius);// положение круга и его радиус
circle.graphics.endFill();
addChild(circle);

fidson
25.01.2013, 00:55
Там такая штука:
Есть поисковик по БД, написанный в php странице. В него идёт импорт из этой флешки при выводе результатов(Визуальное отображение на карте найденных объектов). Мне помогли с кодом, но сделали рандомизацию координат и вывод текста. Теперь Я не знаю как сделать, что бы не было рандомного вывода координат(желательно что бы они подгружались из БД). И как заменить в этом коде текст на круг(В идеале что бы был круг, а под ним нидпись, но этого можно не делать).

ps Я очень хотел бы разобраться как работает этот скрипт, ибо он мне ещё пригодится.

js, который передаёт данные во флешку:


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
if (!$ || !jQuery) alert('Для работы скрипта необходимо подключение к Интернет!');
$( function () {
// выбираем ссылку на нужную флешку
var flashPlayer = window.document.testSwf || window.testSwf;

// добавляем найденные объекты
var persons = [];
$.each($('tr[id^=person]'), function (i, item) {
var el = $(item),
id = el.attr('id').split('-').pop();
persons.push({id: id, name: el.find('.name').text()});
});
$.each(persons, function (i, item) {
flashPlayer.showPerson(item['id'], item['name']);
});

// биндинг кликов по чекбоксам
$('input[name=id]').on('click', function () {
flashPlayer.togglePerson($(this).val(), $(this).is(':checked')); // вызываем функцию во флешке
});
});
</script>

ZicoRio
28.01.2013, 17:58
Таки решил написать. Посмотрите на вашу тему и на то что вы в ней написали.
Поясняю: с базой данных работает только PHP (Flash ролик с БД работать не может)
Все запросы в БД и обработка ответов из БД только в PHP. Так что вам нужно
либо подключить знакомого программера PHP, либо самому начать изучать язык.

Вы используете такое понятие как [PHP страница], так вот такого не бывает.
Код PHP выполняется только на сервере и выдает результат например в виде:
текста, html-страницы или просто бинарный пакет и веб-браузер получив это от
PHP-скрипта на сервере решает что с этим делать уже на стороне клиента.
Вам нужно разобраться как все это взаимодействует. Удачи.

GBee
28.01.2013, 19:08
2 ZicoRio, вы уж слишком категоричны.

http://code.google.com/p/assql/wiki/Examples Конечно, не очень надежно, но возможно.

А перл или джава с БД не работают? Асп?

ZicoRio
28.01.2013, 22:51
Ну конечно возможных вариантов реализации великое множество.
Я исходил из контекста - флешка в браузере, на сервере PHP.
Если все возможное описывать можно сразу книгу писать.