Чат Api 3.0

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Чат Api 3.0

Сообщение 112 »

Пример простого чата на Api 3.0
Пример такого же чата на api 2.0
Нам понадобится 3 компонента
Кнопка btn_chat
Окно ,в котором будут отображаться сообщения window_chat
И TextInPut туда будут вводиться сообщения
Нам понадобится APIConnection
Скачать его можно тут
Папку vk из архива vk_api_connection\src\ кладем в папку с сохраненным fla.

Код конечно не торт,но все же не плохой.

Код: Выделить всё

 import flash.display.Sprite;import flash.text.*;import flash.events.*;import vk.APIConnection;import vk.events.*;import vk.ui.VKButton;import flash.events.Event;import flash.events.TimerEvent;import flash.utils.Timer; var api_id:Number;var viewer_id:Number;var sid:String;var secret:String;var time_n:Number=3;//через сколько секунд обновляем окно чата var flashVars:Object = stage.loaderInfo.parameters as Object;var VK:APIConnection = new APIConnection(flashVars);// берем значения с флэш варсapi_id = flashVars['api_id'];//присваеваем апп идviewer_id = flashVars['viewer_id'];//виевир идsid = flashVars['sid'];//сидsecret = flashVars['secret'];//секрет //обрабатывание полученых сообщенииfunction onMessages(data: Object):void{var count = data.length;//сколько их всегоfor (var i=0; i<count; i++){window_chat.htmlText += '<b><font color="#ff0000">' + data[i]['user_name'] + "</font></b>: " + data[i]['message'];//добавляем сообшение }}//если ошибкаfunction Errr(data: Object):void{window_chat.text = data.error_msg;}//по нажатию на кнопку отправка сообщенииbtn_chat.addEventListener(MouseEvent.CLICK, function(event:MouseEvent) {VK.api('sendMessage', {message:send_chat.text}, onMessages, Errr);send_chat.text='';//очищаем })//таимер ,который будет обновлять полученый сообщенияfunction ShortTimer() {var minuteTimer:Timer = new Timer(1000,time_n);minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);minuteTimer.start();}//таимер прозвенелfunction onTimerComplete(evt:Event):void {VK.api('getMessages', {}, onMessages, Errr);//гет месагесShortTimer()//вызываем таймер еще}////////////////////////////////////////////////вызываем нужные функцииVK.api('getMessages', {}, onMessages, Errr);ShortTimer()  
Вот ,что получилось
Изображение
Исходник
Аватара пользователя
12funteam89
Сообщения: 99
Зарегистрирован: 29 окт 2010, 15:34

Re: Чат Api 3.0

Сообщение 12funteam89 »

Не пишет русскими буквами в чате в чем проблемка?
Аватара пользователя
12funteam89
Сообщения: 99
Зарегистрирован: 29 окт 2010, 15:34

Re: Чат Api 3.0

Сообщение 12funteam89 »

Все решил проблему)
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: Чат Api 3.0

Сообщение Ruzofmo »

Вот я попытался в класс весь код переместить:

Код: Выделить всё

package {    import flash.display.Sprite;    import flash.text.*;    import flash.events.*;    import vk.APIConnection;    import vk.events.*;    import vk.ui.VKButton;    import flash.events.Event;    import flash.events.TimerEvent;    import flash.utils.Timer;    import flash.display.MovieClip;     public class Chat extends flash.display.MovieClip    {        var api_id:Number;        var viewer_id:Number;        var sid:String;        var secret:String;        var time_n:Number = 1;        var flashVars:Object = stage.loaderInfo.parameters as Object;        var VK:APIConnection = new APIConnection(flashVars);         public function Chat()        {            var flashVars:Object = stage.loaderInfo.parameters as Object;            var VK:APIConnection = new APIConnection(flashVars);            api_id = flashVars['api_id'];            viewer_id = flashVars['viewer_id'];            sid = flashVars['sid'];            secret = flashVars['secret'];            VK.api('getMessages', {}, onMessages, Errr);            ShortTimer();        }         function onMessages(data: Object):void        {            var count = data.length;            for (var i=0; i<count; i++)            {                window_chat.htmlText +=  '<b><font color="#ff0000">' + data[i]['user_name'] + "</font></b>: " + data[i]['message'];//добавляем строку с его именем и сообщением без ссылки и красного цвета            }        }                function Errr(data: Object):void        {            window_chat.text = data.error_msg;        }                btn_chat.addEventListener(MouseEvent.CLICK, delText);        private function delText(event:MouseEvent) {        VK.api('sendMessage', {message:send_chat.text}, onMessages, Errr);        send_chat.text='';        }         function ShortTimer()        {            var minuteTimer:Timer = new Timer(1000,time_n);            minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);            minuteTimer.start();        }        function onTimerComplete(evt:Event):void        {            VK.api('getMessages', {}, onMessages, Errr);            ShortTimer();         }     } }
Ошибки:
D:\Flash\Исходники\Чат\Chat.as, строка 54 1120: Обращение несуществующего свойства btn_chat.
D:\Flash\Исходники\Чат\Chat.as, строка 54 1120: Обращение несуществующего свойства delText.
Что не так?
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Чат Api 3.0

Сообщение 112 »

Ruzofmo
на сцене есть кнопка btn_chat ?
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: Чат Api 3.0

Сообщение Ruzofmo »

112 писал(а):Ruzofmo
на сцене есть кнопка btn_chat ?
да, конечно. Я уже разобрался

Код: Выделить всё

btn_chat.addEventListener(MouseEvent.CLICK, delText);
Не в теле функции было.
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: Чат Api 3.0

Сообщение Ruzofmo »

112
А не подскажешь как теперь использовать запросы к api без копипаста кода в тело каждой функции?

Код: Выделить всё

var flashVars:Object = stage.loaderInfo.parameters as Object;            var VK:APIConnection = new APIConnection(flashVars);            api_id = flashVars['api_id'];            viewer_id = flashVars['viewer_id'];            sid = flashVars['sid'];            secret = flashVars['secret'];
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Чат Api 3.0

Сообщение 112 »

Ruzofmo
Если ты вот так сделаешь ,то не будет работать?

Код: Выделить всё

 public class Chat extends flash.display.MovieClip    {        var api_id:Number;        var viewer_id:Number;        var sid:String;        var secret:String;        var time_n:Number = 1;        var flashVars:Object = stage.loaderInfo.parameters as Object;        var VK:APIConnection = new APIConnection(flashVars);       api_id = flashVars['api_id'];       viewer_id = flashVars['viewer_id'];       sid = flashVars['sid'];       secret = flashVars['secret'];...
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: Чат Api 3.0

Сообщение Ruzofmo »

112
Нет.
D:\Flash\Исходники\Чат\Chat.as, строка 23 1120: Обращение несуществующего свойства api_id.
D:\Flash\Исходники\Чат\Chat.as, строка 23 1120: Обращение несуществующего свойства flashVars.
D:\Flash\Исходники\Чат\Chat.as, строка 24 1120: Обращение несуществующего свойства viewer_id.
D:\Flash\Исходники\Чат\Chat.as, строка 24 1120: Обращение несуществующего свойства flashVars.
D:\Flash\Исходники\Чат\Chat.as, строка 25 1120: Обращение несуществующего свойства sid.
D:\Flash\Исходники\Чат\Chat.as, строка 25 1120: Обращение несуществующего свойства flashVars.
D:\Flash\Исходники\Чат\Chat.as, строка 26 1120: Обращение несуществующего свойства secret.
D:\Flash\Исходники\Чат\Chat.as, строка 26 1120: Обращение несуществующего свойства flashVars.
Joseph Jevelin
Сообщения: 28
Зарегистрирован: 02 сен 2011, 19:07

Re: Чат Api 3.0

Сообщение Joseph Jevelin »

Ruzofmo, попробуй заменить

var flashVars:Object = stage.loaderInfo.parameters as Object;
на
var flashVars:Object = LoaderInfo(root.loaderInfo).parameters as Object;
Ответить