Страница 1 из 4

Приложение получающее данные с любого внешнего источника

Добавлено: 13 дек 2009, 23:37
monax
Всем привет!
Внезапно возникла непосильная для меня задача: Написать приложение для Вконтакте. К сожаление опыта работы с Flash и AS никакого не имею, решить поставленную задачу с "наскоку" не вышло. Немного почитав понял что для решения даже самых простых задач придется вникать в эту среду программирования чуть ли не с головой. А так как это разовая потребность, то и смысла особого в этом нет. Поэтому прошу вашей помощи.

Задача: Простенькое приложение получающее данные с любого внешнего источника(rss, страница в интернете, текстовый файл, заметки вконтакте, или еще откуда либо) выводит их пользователю. Главное! Приложение как только на внешнем источники появилась новая запись, должно оповещать пользователя что появилась новая информация(в виде уведомлений от приложения)

Информация вида:

Заголовок: Тестовый заголовок 1, Дата: ХХ.ХХ.ХХХХ
Сообщение: Тестовое сообщение 1.
-------------------------------------------------------------------------------
Заголовок: Тестовый заголовок 2, Дата: ХХ.ХХ.ХХХХ
Сообщение: Тестовое сообщение 2.
-------------------------------------------------------------------------------
Заголовок: Тестовый заголовок 3, Дата: ХХ.ХХ.ХХХХ
Сообщение: Тестовое сообщение 3.

Я дико извиняюсь за такой нубский вопрос, сам пограмируя на С#, PHP и являясь линуксером, ненавижу видеть такие вопросы... но до чего нас только жизнь не доводит. Заранее огромное спасибо всем откликнувшихся!

Re: Помогите написать приложение

Добавлено: 14 дек 2009, 00:07
monax
Конечно если кто нибудь умудрится объяснить мне как решить такую задачу самому я попробую, но я истинный ноль в этом деле(

Re: Помогите написать приложение

Добавлено: 14 дек 2009, 00:12
Александр
Код загружает файл и отображает содержимое в поле result_tf:

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

var loader:URLLoader = new URLLoader();var request:URLRequest=new URLRequest("http://flapps.ru/file.txt");loader.load(request);loader.addEventListener(Event.COMPLETE, onComplete); function onComplete(event:Event):void {    result_tf.text=loader.data;}
Так же можно получить и страницу в интернете. На сайте, к которому обращается скрипт, должен быть файл crossdomain.xml.

Уведомления отправляются с сервера. Серверная часть и должна определять появилась ли новая запись.

Re: Помогите написать приложение

Добавлено: 14 дек 2009, 00:21
monax
Так, это у же интересно.
Так же можно получить и страницу в интернете.
Тоесть можно загрузить целую страницу? crossdomain.xml - это файл разоешающий приложению загружать страницу? Сама же страница может быть с любым разрешение (HTML, PHP)?
Как-то я сам об этом не подумал... ведь это реализовано почти на всех языках))))

Если можно об этом поконкретнее. Тоесть я создаю страницу, например на php, делаю на ней вывод новостей, а приложение тупо отображает все что есть на моей странице? Если это возможно, то для меня это самый выгодный вариант.
Уведомления отправляются с сервера. Серверная часть и должна определять появилась ли новая запись.
эм... к сожалению совершенно не понял эту строчку((

Re: Помогите написать приложение

Добавлено: 14 дек 2009, 15:04
Александр
Если загружать не текстовый файл, а веб страницу, то будет отображен код страницы, включая теги.
Если страница не сложная, то можно попробовать:

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

result_tf.htmlText=loader.data;
Как отправлять уведомления написано здесь http://flapps.ru/forum/topic19.html

Как не запущенное у пользователя приложение может узнать была ли обновлена запись? Никак.
Проверять обновления нужно у себя на сервере. Знания PHP есть? Вот они и понадобятся.

Re: Приложение получающее данные с любого внешнего источника

Добавлено: 14 дек 2009, 15:57
monax
Так, сегодня немного поковырял эту тему уже у редакторе, потестил несколько приложений.
var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest("http://flapps.ru/file.txt");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void {
result_tf.text=loader.data;
}
это почему-то не работает.
следовательно
result_tf.htmlText=loader.data;
тоже не робит(

Re: Приложение получающее данные с любого внешнего источника

Добавлено: 14 дек 2009, 16:05
Александр
Что именно не работает? Какой эффект? Про crossdomain.xml не забыл?

Re: Приложение получающее данные с любого внешнего источника

Добавлено: 14 дек 2009, 17:26
monax
Создаю test.fla Делаю поле для текста, делаю поле динамическим, называю result_tf.
Создаю main.as
Вбиваю в него:

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

var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest("http://homeparty.xost.ru/news.txt");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void {
   result_tf.text=loader.data;
}
- Адрес текстового документа http://homeparty.xost.ru/news.txt
Жму Ctrl+Enter
В логе 5007: An ActionScript file must have at least one externally visible definition.
В открывшемся окне пустота, заливаю в контакт, тоже пусто(но ведь должно работать и не только в котнтакте)

Re: Приложение получающее данные с любого внешнего источника

Добавлено: 14 дек 2009, 17:27
monax
crossdomain.xml пи запросе к текстовому файлу тоже нужен?

Re: Приложение получающее данные с любого внешнего источника

Добавлено: 14 дек 2009, 18:02
Александр
monax, создаёшь класс и в него пишешь только этот код? Если создаешь класс, то описывай его как следует по структуре или же напиши этот код прямо в кадр.
crossdomain.xml нужен вообще при запросе к любому файлу на другом сайте.
Если запускаешь приложение во флеше при проверке, то он не обязателен. Если загрузишь в контакт и файла crossdomain.xml не будет, то приложение не будет работать как тебе надо.