Связывание фрагмента ролика на сцене с объектом базы данных, Flash AS3 PHP MySQL - PullRequest
0 голосов
/ 01 февраля 2011

Кто-нибудь теперь знает, как я могу связать сущность на сцене с сущностью базы данных во Flash.

Я делаю план рассадки и хотел бы запросить базу данных, чтобы узнать, доступно это место или нет. Если нет, то сделайте его недоступным для выбора.

Нужно ли давать каждому месту имя экземпляра, относящееся к строке в БД?

Я буду использовать PHP, MySQL / XML, я думаю, остальная часть моего приложения встроена в codeigniter, если это проливает свет на этот вопрос для всех.

любая помощь высоко ценится, Спасибо!

1 Ответ

0 голосов
/ 01 февраля 2011

Это довольно просто на самом деле.В вашей Flash есть класс Seat, который загружается из вашего XML (рекомендуется AMF намного лучше).

Предполагается, что XML выглядит следующим образом:

<seatMap>
    <seat available="0" row="23" alley="I"/>
    <seat available="1" row="23" alley="J"/>
    <seat available="0" row="23" alley="K"/>
</seatMap>

Основной класс выглядит так:

package {import flash.display.Sprite;import flash.events.Event;

public class Main extends Sprite
{
    public function Main() {
        //Code to load XML
    }

    public function onXMLLoaded(e:Event):void {
        var seatMap:XML = new XML(e.target.data);
        for each(var seat:XML in seatMap.seat) {
            var mySeat:Seat = new Seat(seat);
            //Do magic to place seat on stage
            this.addChild(mySeat);
        }
    }
}

}

Класс вашего места должен выглядеть примерно так:

package{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Seat extends MovieClip
    {
        private var _isAvailable:Boolean;
        private var _row:int;
        private var _alley:String;

        public function Seat(seatDef:XML) {
                this._isAvailable = (seatDef.@available !== null)? seatDef.@available : false;
                this._row = seatDef.@row;
                this._alley = seatDef.@alley;

                this._bindListeners(); 
        }

        private function _bindListeners():void {
            if (this._isAvailable) {
                this.addEventListener(MouseEvent.MOUSE_DOWN, this.onClick);
            }
            //blah
        }

        public function onClick(e:MouseEvent):void {
            //do magic
        }
    }

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