Чат Api 3.0

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!

Чат Api 3.0

Сообщение 112 » 08 окт 2011, 14:19

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

Код конечно не торт,но все же не плохой.
  1.  
  2. import flash.display.Sprite;
  3. import flash.text.*;
  4. import flash.events.*;
  5. import vk.APIConnection;
  6. import vk.events.*;
  7. import vk.ui.VKButton;
  8. import flash.events.Event;
  9. import flash.events.TimerEvent;
  10. import flash.utils.Timer;
  11.  
  12. var api_id:Number;
  13. var viewer_id:Number;
  14. var sid:String;
  15. var secret:String;
  16. var time_n:Number=3;//через сколько секунд обновляем окно чата
  17.  
  18. var flashVars:Object = stage.loaderInfo.parameters as Object;
  19. var VK:APIConnection = new APIConnection(flashVars);
  20. // берем значения с флэш варс
  21. api_id = flashVars['api_id'];//присваеваем апп ид
  22. viewer_id = flashVars['viewer_id'];//виевир ид
  23. sid = flashVars['sid'];//сид
  24. secret = flashVars['secret'];//секрет
  25.  
  26. //обрабатывание полученых сообщении
  27. function onMessages(data: Object):void{
  28. var count = data.length;//сколько их всего
  29. for (var i=0; i<count; i++){
  30. window_chat.htmlText += '<b><font color="#ff0000">' + data[i]['user_name'] + "</font></b>: " + data[i]['message'];//добавляем сообшение
  31. }
  32. }
  33. //если ошибка
  34. function Errr(data: Object):void{
  35. window_chat.text = data.error_msg;
  36. }
  37. //по нажатию на кнопку отправка сообщении
  38. btn_chat.addEventListener(MouseEvent.CLICK, function(event:MouseEvent) {
  39. VK.api('sendMessage', {message:send_chat.text}, onMessages, Errr);
  40. send_chat.text='';//очищаем
  41. })
  42. //таимер ,который будет обновлять полученый сообщения
  43. function ShortTimer() {
  44. var minuteTimer:Timer = new Timer(1000,time_n);
  45. minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
  46. minuteTimer.start();
  47. }
  48. //таимер прозвенел
  49. function onTimerComplete(evt:Event):void {
  50. VK.api('getMessages', {}, onMessages, Errr);//гет месагес
  51. ShortTimer()//вызываем таймер еще
  52. }
  53. ////////////////
  54. ////////////////
  55. ////////////////вызываем нужные функции
  56. VK.api('getMessages', {}, onMessages, Errr);
  57. ShortTimer()
  58.  
  59.  

Вот ,что получилось
Изображение
Исходник
Если ты дебил ,оставайся им!
Я бы изменил мир,но Бог не дает исходники!
Изображение

За это сообщение автора 112 поблагодарили - 5:
12funteam89, Abarmotina, Александр, Evgesha, Joseph Jevelin
Аватара пользователя
112
Модератор
Модератор
 
Автор темы
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53
Благодарил (а): 51 раз.
Поблагодарили: 80 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Чат Api 3.0

Сообщение 12funteam89 » 13 окт 2011, 18:42

Не пишет русскими буквами в чате в чем проблемка?
Изображение
Аватара пользователя
12funteam89

 
Сообщения: 99
Зарегистрирован: 29 окт 2010, 15:34
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.

Re: Чат Api 3.0

Сообщение 12funteam89 » 13 окт 2011, 18:50

Все решил проблему)
Изображение
Аватара пользователя
12funteam89

 
Сообщения: 99
Зарегистрирован: 29 окт 2010, 15:34
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.

Re: Чат Api 3.0

Сообщение Ruzofmo » 14 окт 2011, 16:41

Вот я попытался в класс весь код переместить:
  1. package
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.text.*;
  5.     import flash.events.*;
  6.     import vk.APIConnection;
  7.     import vk.events.*;
  8.     import vk.ui.VKButton;
  9.     import flash.events.Event;
  10.     import flash.events.TimerEvent;
  11.     import flash.utils.Timer;
  12.     import flash.display.MovieClip;
  13.  
  14.     public class Chat extends flash.display.MovieClip
  15.     {
  16.         var api_id:Number;
  17.         var viewer_id:Number;
  18.         var sid:String;
  19.         var secret:String;
  20.         var time_n:Number = 1;
  21.         var flashVars:Object = stage.loaderInfo.parameters as Object;
  22.         var VK:APIConnection = new APIConnection(flashVars);
  23.  
  24.         public function Chat()
  25.         {
  26.             var flashVars:Object = stage.loaderInfo.parameters as Object;
  27.             var VK:APIConnection = new APIConnection(flashVars);
  28.             api_id = flashVars['api_id'];
  29.             viewer_id = flashVars['viewer_id'];
  30.             sid = flashVars['sid'];
  31.             secret = flashVars['secret'];
  32.             VK.api('getMessages', {}, onMessages, Errr);
  33.             ShortTimer();
  34.         }
  35.  
  36.         function onMessages(data: Object):void
  37.         {
  38.             var count = data.length;
  39.             for (var i=0; i<count; i++)
  40.             {
  41.                 window_chat.htmlText +=  '<b><font color="#ff0000">' + data[i]['user_name'] + "</font></b>: " + data[i]['message'];//добавляем строку с его именем и сообщением без ссылки и красного цвета
  42.             }
  43.         }
  44.        
  45.         function Errr(data: Object):void
  46.         {
  47.             window_chat.text = data.error_msg;
  48.         }
  49.        
  50.         btn_chat.addEventListener(MouseEvent.CLICK, delText);
  51.         private function delText(event:MouseEvent) {
  52.         VK.api('sendMessage', {message:send_chat.text}, onMessages, Errr);
  53.         send_chat.text='';
  54.         }
  55.  
  56.         function ShortTimer()
  57.         {
  58.             var minuteTimer:Timer = new Timer(1000,time_n);
  59.             minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
  60.             minuteTimer.start();
  61.         }
  62.         function onTimerComplete(evt:Event):void
  63.         {
  64.             VK.api('getMessages', {}, onMessages, Errr);
  65.             ShortTimer();
  66.  
  67.         }
  68.  
  69.     }
  70.  
  71. }

Ошибки:
D:\Flash\Исходники\Чат\Chat.as, строка 54 1120: Обращение несуществующего свойства btn_chat.
D:\Flash\Исходники\Чат\Chat.as, строка 54 1120: Обращение несуществующего свойства delText.


Что не так?
Ruzofmo

 
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.

Re: Чат Api 3.0

Сообщение 112 » 14 окт 2011, 16:55

Ruzofmo
на сцене есть кнопка btn_chat ?
Если ты дебил ,оставайся им!
Я бы изменил мир,но Бог не дает исходники!
Изображение
Аватара пользователя
112
Модератор
Модератор
 
Автор темы
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53
Благодарил (а): 51 раз.
Поблагодарили: 80 раз.

Re: Чат Api 3.0

Сообщение Ruzofmo » 14 окт 2011, 16:58

112 писал(а):Ruzofmo
на сцене есть кнопка btn_chat ?

да, конечно. Я уже разобрался
Не в теле функции было.
Ruzofmo

 
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.

Re: Чат Api 3.0

Сообщение Ruzofmo » 14 окт 2011, 17:16

112
А не подскажешь как теперь использовать запросы к api без копипаста кода в тело каждой функции?
  1. var flashVars:Object = stage.loaderInfo.parameters as Object;
  2.             var VK:APIConnection = new APIConnection(flashVars);
  3.             api_id = flashVars['api_id'];
  4.             viewer_id = flashVars['viewer_id'];
  5.             sid = flashVars['sid'];
  6.             secret = flashVars['secret'];
Ruzofmo

 
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.

Re: Чат Api 3.0

Сообщение 112 » 14 окт 2011, 17:35

Ruzofmo
Если ты вот так сделаешь ,то не будет работать?
  1. public class Chat extends flash.display.MovieClip
  2.     {
  3.         var api_id:Number;
  4.         var viewer_id:Number;
  5.         var sid:String;
  6.         var secret:String;
  7.         var time_n:Number = 1;
  8.         var flashVars:Object = stage.loaderInfo.parameters as Object;
  9.         var VK:APIConnection = new APIConnection(flashVars);
  10.        api_id = flashVars['api_id'];
  11.        viewer_id = flashVars['viewer_id'];
  12.        sid = flashVars['sid'];
  13.        secret = flashVars['secret'];
  14. ...
Если ты дебил ,оставайся им!
Я бы изменил мир,но Бог не дает исходники!
Изображение
Аватара пользователя
112
Модератор
Модератор
 
Автор темы
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53
Благодарил (а): 51 раз.
Поблагодарили: 80 раз.

Re: Чат Api 3.0

Сообщение Ruzofmo » 14 окт 2011, 17:52

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.
Ruzofmo

 
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.

Re: Чат Api 3.0

Сообщение Joseph Jevelin » 24 окт 2011, 14:20

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

var flashVars:Object = stage.loaderInfo.parameters as Object;
на
var flashVars:Object = LoaderInfo(root.loaderInfo).parameters as Object;
Joseph Jevelin

 
Сообщения: 28
Зарегистрирован: 02 сен 2011, 19:07
Благодарил (а): 13 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Уроки по использованию ВКонтакте API



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0