Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.02.2012, 19:39
Happy вне форума Посмотреть профиль Отправить личное сообщение для Happy Найти все сообщения от Happy
  № 1  
Ответить с цитированием
Happy

Регистрация: Jan 2012
Сообщений: 7
По умолчанию Переход по друзьям

Приветствую всех.
Есть необходимость реализовать переход по друзьям.
Например, как сделано во всевозможных фермах.
У каждого есть своя страница, а внизу список друзей.
Так вот надо сделать, чтобы при нажатии на авотарку друга игрок переходил на его страницу.
Что-то мне подсказывает, что использованием методов "friends.getAppUsers" и "getProfiles" здесь не обойдется.
Подскажите, пожалуйста, кто знает.

Старый 12.02.2012, 19:42
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
может так?
Код AS3:
navigateToURL(new URLRequest("http://vk.com/id" + friendId));

Старый 12.02.2012, 20:03
Happy вне форума Посмотреть профиль Отправить личное сообщение для Happy Найти все сообщения от Happy
  № 3  
Ответить с цитированием
Happy

Регистрация: Jan 2012
Сообщений: 7
Но это же переход на страницу пользователя, а мне нужно убрать объекты относящиеся к пользователю и создать объекты относящиеся к другу пользователя. Как в любой ферме.
Мне кажется, что я бы смог это реализовать, если мне кто-нибудь подскажет как рационально выводить иконки друзей. Желательно ранжируя по уровню.

Старый 12.02.2012, 20:54
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 4  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от Happy Посмотреть сообщение
Но это же переход на страницу пользователя, а мне нужно убрать объекты относящиеся к пользователю и создать объекты относящиеся к другу пользователя. Как в любой ферме.
А разве это не вы пишете приложение? Если вы знаете как добавлять обьекты, относящиеся к пользователю, то именно вам лучше знать, чем кому-либо из посетителей форума, как эти обьекты убрать и построить новые для другого пользователя. Или же вы еще ничего не сделали и не знаете как сделать? В таком случае вы слишком далеко забежали и вопрос нужно ставить по другому: как вообще построить личный кабинет пользователя?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 12.02.2012, 20:55
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Извините, не понял.
Подходы всякие есть. Может выкинете сюда кусок кода в котором вы пытались получить и отобразить друзей и у вас не получилось. Тогда разговор будет более предметным.
От этих вопросов зависят пути реализации:
- что за игра
- как идет взаимодействие с сервером (http или сокеты) и есть ли он вообще
- что за объекты, относящиеся к другу пользователя.
и так далее

Хотя, вопросов у Вас много, поэтому лучше будет не код, а сценарий предполагаемого развития событий рассказать, например:
- есть игра "крестики - нолики";
- внизу должны отображатся друзья;
- уровень друзей приходит от нашего сервера по специальному запросу в виде списка айдишник друга - уровень;
- внизу список друзей приложения (список получаю по запросу к вконтакте) должен быть отсортированн по уровню. А еще от вконтакта надо получить список профайлов, чтобы загрузить и х фотографии;
- я понятия не имею как связать получение данных от вконтакта с данными от нашего сервера, да еще это отобразить всё, загружая фотографии;
- при клике по другу, поле с крестиками-ноликами должно исчезнуть, а появится список достижений друга, а я не знаю как лучше организовать архитектуру, где сохранить текущее поле игрока
...
Было бы проще.


Последний раз редактировалось expl; 12.02.2012 в 21:08.
Старый 12.02.2012, 21:31
Happy вне форума Посмотреть профиль Отправить личное сообщение для Happy Найти все сообщения от Happy
  № 6  
Ответить с цитированием
Happy

Регистрация: Jan 2012
Сообщений: 7
Спасибо. Надеюсь у нас с вами получится конструктивный диалог.
Ответы на многие эти вопросы у меня есть.
Вообщем, дело обстоит так:
Для отображения друзей я сначала обращаюсь к api
Код AS3:
var flashVars:Object = stage.loaderInfo.parameters as Object;
var VK:APIConnection = new APIConnection(flashVars);
VK.api("friends.getAppUsers", { uid: flashVars['viewer_id']}, loadFriends, PrintError);
function loadFriends(response:Object):void{
	VK.api("getProfiles", {uids:response[0], fields:"photo,first_name"}, success, fail);
	function success(response:Object):void {
		var photoRequest:URLRequest = new URLRequest(response[0]["photo"]);
		var firstName:String = response[0]["first_name"];
		var sprite:Border = new Border(photoRequest, firstName);
		addChild(sprite);
	}
}
Border это класс в котором создается объект Sprite с нарисованной рамочкой.
В него загружается фото и TextField с именем.
Я могу перед тем как создать объект Border выполнить запрос к php скрипту на сервер в БД и получить оттуда текущий уровень друга, но может быть это будет очень долго выполняться.
У меня проблема с тем, как рационально вывести сразу много друзей.
Я сделал чтобы объект Sprite отвечал на клик.
Подскажите, как умные люди по 6 друзей выводят и ещё кнопки для пролистывания есть.

Старый 12.02.2012, 22:10
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Border - это класс отображающий друга, а заодно загружающий фотографию? Тогда не понятно как вы координаты выставляете, чтобы все Border в одну точку не выставлялись.

Короче, как выглядит обкатанный мной метод создания списка друзей:

Надо отделить отображение от данных. Будет проще. Гораздо.
Как вообще реализуются списки с прокруткой на экране (не важно друзей, оружия в инвентаре или товаров в магазине):
(учтите, что далее идет много конкретики выбранной на абум, просто чтобы не засорять эфир словами "возможно", "лучше было бы", "если", ...)
- есть визуальный список, который можно прокручивать горизонтально с полями array, scrollH
- в коде этого списка ничего не знают ни про друзей, ни про то как их надо отображать
- в конструктор списка передается класс - "рендерер". Это штука, которая отображает конкретные данные, например друга, он обязательно реализует интерфейс:
Код AS3:
public interface IRenderer
{
    function get view():DisplayObject;
    function get data():*;
    function set data(value:*):void;
}
- когда этому списку присваивают array - он очищает все что у него было до этого и идет по порядку по этому массиву. Берёт каждый элемент и создает для него экземпляр Рендерера (по классу, который передали в конструктор). Но общается с ними только через интерфейс IRendere (конкретного класса он не знает). Он присваивает полю data значение из ячейки массива и добавляет view рендерера на себя.
В нем реализуется прокрутка (по изменению поля scrollH) и если потребуется другой горизонтальный список уже для товаров - его не придется писать заново.

Теперь надо понять как сформировать собственно этот array данных (теперь они у нас не завязаны на отображение и сделать это проще)
- Для начала подойдет самый тупой вариант с последовательным получением данных:
- создаем класс типа:
Код AS3:
    public class Friend
    {
        public var id:String;
        public var level:int;
        public var photoURL:String;
    }
- загружаем список айдишников друзей с вконтакта;
- для каждого айдишника создаем по экземпляру Friend, присваивая полю id этот айдишник и запоминая список экземпляров Friend в массиве;
- загружаем профили по полученному списку айдишников
- для каждого профиля по айдишнику находим экземпляр Friend (лучше не поиск использовать а через хеши - но это чисто для производительности, можно забить) и из профиля заполняем поле photoURL
- по списку айдишников запрашиваем уровни с нашего сервера, находим друзей в нашем массиве и присваиваем эти уровни;
- всё! массив данных готов - присваиваем его полю array и наблюдаем друзей внизу экрана
- фотографии друзей можно грузить уже в самом Рендерере (у него же есть ссылка на Friend, которую ему передали в поле data, а у Friend есть адрес фотографии);
- добавляем кнопки влево-вправо, которые делают list.scrollH++ и list.scrollH--.


Последний раз редактировалось expl; 12.02.2012 в 22:15.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.