Как успешно интегрировать AppWarp в код ActionScript 3?

Я хочу создать flash многопользовательскую игру для Facebook. Я уже закончил с кодом игры, просто не знаю, как правильно интегрировать AppWarp.

Я создал приложение на AppHq, у меня есть API и секретные ключи, также я создал комнату и у меня есть идентификатор комнаты.

Когда в коде моего основного класса ActionScript 3.0 я пытаюсь использовать это:

    public class Script extends MovieClip
    {
        public var roomID:String = "my room id";  
        private var apiKey:String = "my api key"  
        private var secretKey:String = "my secret"; 
        private var listener:AppWarpListener;
    }
            public function Script()
        {
            WarpClient.initialize(apiKey, secretKey);      
            WarpClient.getInstance().setConnectionRequestListener(listener);  
            WarpClient.getInstance().setRoomRequestListener(listener);  
            WarpClient.getInstance().setNotificationListener(listener);  
}

Я получил ошибки (в файле AppWarpListener.as):

1045: Interface ConnectionRequestListener was not found.
1045: Interface RoomRequestListener was not found.
1045: Interface NotificationListener was not found.

Я следовал этому руководству и скачал этот SDK. Внутри папки SDK много версий swc, поэтому я установил последнюю версию: V_1.5.2 вот файл AppWarpLib.swc Я импортировал его в Adobe Flash CC двумя способами:

By clicking Preferences (CTRL + U) > Code Editor > Action Script 3.0 Settings > Library path (I put here path to swc);

And By clicking publish settings SWC > Output file (here I select that swc)

Но то же самое, все еще я получил эти ошибки.

Может быть, это потому, что мне нужно хранить файлы кода на FTP? Я тестирую это со своего ПК.

Также после того, как я установил путь в настройках, я получил много таких предупреждений:

`Line 1, Column 1   Warning: 5002: The frame scripts of the symbol 'Symbol 116' have been ignored because a compiled clip contains a definition for Game__fla.Symbol116_26. To override the Game__fla.Symbol116_26 definition, place a custom class file within your classpath.`

Также в папке SDK, ссылку на которую я писал ранее, есть папка sample, но внутри только файлы .as, и я не знаю, как это попробовать без файла .fla.

Итак, у вас есть идеи? Спасибо.

Также в папке SDK, ссылку на которую я писал ранее, есть папка sample, но внутри только файлы .as, и я не знаю, как это попробовать без файла .fla.

Я попытался создать новый пустой файл .fla и установить для класса значение SpriteMoveDemo.as, но с той же проблемой я получил эти ошибки (в файле AppWarpListener.as):

1045: Interface ConnectionRequestListener was not found.
1045: Interface RoomRequestListener was not found.
1045: Interface NotificationListener was not found.

Итак, у вас есть идеи? Спасибо.


person Community    schedule 31.01.2014    source источник
comment
Так никто не знает решения?   -  person    schedule 01.02.2014


Ответы (2)


Вы должны определить класс слушателя для прослушивания ответов и уведомлений. Но во flash CC вы не можете определить класс внутри actions. Вам нужно создать внешний файл сценария действия и определить там свой класс слушателя. Затем перейдите в «Файл» -> «Настройки ActionScript». В разделе исходного пути добавьте путь к месту, где вы сохранили новый файл сценария действия.

Вы должны добавить appwarp .swc, щелкнув «Настройки» (CTRL + U) > «Редактор кода» > «Настройки Action Script 3.0» > «Путь к библиотеке» (здесь я указал только путь к swc).

person Suyash Mohan    schedule 03.02.2014
comment
Я так и сделал, но то же самое. 3 ошибки, которые Listener не нашел. - person ; 12.02.2014
comment
Также делай то, что сказал Justnajm - person Suyash Mohan; 14.05.2014

Образец был сделан с использованием старой версии appwarp, но новая версия включает в себя несколько новых методов и слушателей.

Все, что вам нужно сделать, это реализовать недостающие слушатели.

public function onInitUDPDone(res:int):void{}
public function onUserPaused(locid:String, isLobby:Boolean, username:String):void{}
public function onUserResumed(locid:String, isLobby:Boolean, username:String):void{}
public function onGameStarted(sender:String, roomid:String, nextTurn:String):void{}
public function onGameStopped(sender:String, roomid:String):void{}
public function onUpdatePeersReceived(update:ByteArray, isUDP:Boolean):void{}
person justnajm    schedule 31.03.2014