ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение bodnar »

Timon132009, с помощью URLLoader загружаешь страницу и записываешь ответ в текстовое поле textfield.text="";
sersche
FL Team
FL Team
Сообщения: 598
Зарегистрирован: 11 май 2010, 13:45

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение sersche »

Noise Gate писал(а):sersche
и почему бы не делать это параллельно?....
есть идеи как это сделать? ;)
привык работать с циклами..
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение bodnar »

параллельно, это без извращений. Не нужно париться когда закончится загрузка одного чтобы вызвать загрузку следующего. Я в таких случаях создаю еще один класс который одновременно и отвечает за отображение на экране, и за загрузку, тогда вообще проблем 0. Ты просто при создании экземпляра передаешь ему в конструктор ссылку на то, что нужно загрузить, он это все обрабатывает, загружает, отображает. А затем ты работаешь с ним как с объектом, меняешь расположение на сцене, отлавливаешь события на нем и тебя совершенно не волнует вопрос массивов лоадеров и прочего
CRADLE
Сообщения: 8
Зарегистрирован: 07 май 2010, 11:49

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение CRADLE »

Noise Gate, смотри)) задача по сути такова: реализовать в одном приложении два урока. я уже расписывал - чтобы и аватар выводился с именем, и велся учет посещений юзеров в БД. когда делаю по отдельности (двумя разными файлами swf + Main.as) - все работает. То есть смотри... есть два куска кода: оба одинаковые по структуре: первый кода для отображения аватара:

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

package {    import flash.net.URLLoader;    import flash.net.URLRequest;    import flash.display.*;    import flash.events.*;    import flash.text.*;     public class Main extends Sprite {бла бла бла}
и второй для работы с БД:

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

package {    import flash.net.*;    import flash.display.*;     public class Main extends Sprite {бла бла бла}
и когда оба эти кода вставляю в один Main.as - ругается на public class Main extends Sprite {. я и сам понимаю, что по логике заново обьявлять класс не следует - но вот как соединить эти два кода, чтобы все работало?)))

Еще раз дам ссылки на оба урока: http://flapps.ru/forum/topic165.html и http://flapps.ru/forum/topic3.html

Вот как то так...))

спасибо ;)
Noise Gate
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Noise Gate »

CRADLE

ох... как же лень код то переписывать)))))

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

 package {    import flash.net.URLLoader;    import flash.net.URLRequest;    import flash.display.*;    import flash.events.*;    import flash.text.*;    import flash.net.*;     public class Main extends Sprite {         // это все из урока про аватар         private var api_id:Number=743131; // id вашего приложения        private var api_secret:String="sE4VlnFfSQ"; // секретный ключ        private var externalXML:XML;        private var loader:URLLoader = new URLLoader();        private var photoLoader:Loader = new Loader();        private var viewer_id:Number;        private var sig:String;        private var uid:String;        private var bdate_txt:TextField = new TextField();        private var name_txt:TextField = new TextField();         public function Main():void {            // узнаём id пользователя, который просматривает приложение            var params:Object=LoaderInfo(root.loaderInfo).parameters;            viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1;            // получаем профиль этого пользователя            getProfile(viewer_id);             // а вот сюда впихиваем статистику             // создание запроса            var stat_loader:URLLoader = new URLLoader();            var stat_request:URLRequest=new URLRequest("http://flapps.ru/stat.php");// заменяем на ссылку к вашему скрипту            stat_request.method=URLRequestMethod.POST;            // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables();            stat_vars['auth_key']=LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVars            stat_vars['viewer_id']=LoaderInfo(root.loaderInfo).parameters.viewer_id;// ID просматривающего приложение            stat_request.data=stat_vars;            // выполнение запроса            stat_loader.load(stat_request);         }         private function getProfile(uid):void { // функция получения профиля            sig=MD5.encrypt(viewer_id+'api_id='+api_id+'fields=bdate,photo_bigmethod=getProfilesuids='+uid+'v=2.0'+api_secret);            var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&method=getProfiles&uids="+uid+"&fields=bdate,photo_big&v=2.0&sig="+sig);            loader.load(request);            loader.addEventListener(Event.COMPLETE, onComplete);        }         private function onComplete(event:Event):void { // функция выполняется когда профиль был загружен            bdate_txt.text='';            if (loader!=null) {                externalXML=new XML(loader.data);                // отображаем дату рождения                var bdate = externalXML..bdate;                bdate_txt.text=bdate;                bdate_txt.x=490;                bdate_txt.y=380;                addChild(bdate_txt);                               // отображаем имя и фамилию                var uname = externalXML..first_name + ' ' + externalXML..last_name;                name_txt.text=uname;                name_txt.x=410;                name_txt.y=360;                addChild(name_txt);                               // загружаем аватар                var photo = externalXML..photo_big;                var request2:URLRequest=new URLRequest(photo);                photoLoader.load(request2);                photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);             } else {                trace("Error!");            }        }         private function onLoaded(e:Event):void {            // отображаем загруженный аватар            photoLoader.x = (550-photoLoader.width)/2;            photoLoader.y = (400-photoLoader.height)/2;            addChild(photoLoader);        }     }} 
надеюсь, ничего не забыл...
Аватара пользователя
Dmitry
Сообщения: 70
Зарегистрирован: 05 дек 2009, 13:51

Re: ВОПРОСЫ

Сообщение Dmitry »

voloshyn писал(а):Ещё одна проблема появилась...
Поле Input text почему-то становиться не активным когда загружаешь его в контакт. То есть напечатать в него не возможно.

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

addEventListener( Event.ADDED_TO_STAGE, onAddedToStage )  function onAddedToStage(e: Event): void { Security.allowDomain("*"); stage.dispatchEvent(new Event(Event.DEACTIVATE)); stage.dispatchEvent(new Event(Event.ACTIVATE)); }
Это если используешь стандартные компоненты. С компонентами контакта такого фейла не бывает
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение bodnar »

Dmitry
на этот вопрос уже ответили

обращаясь к любителям одной темы ВИДИТЕ к чему это приводит :?:
Timon132009
Сообщения: 13
Зарегистрирован: 12 май 2010, 19:38

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Timon132009 »

bodnar писал(а):Timon132009, с помощью URLLoader загружаешь страницу и записываешь ответ в текстовое поле textfield.text="";
Можешь помоч код написать? А то что то никак у меня не получается.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение bodnar »

Timon132009 писал(а):А то что то никак у меня не получается.
показывай что уже написал, поправлю
Timon132009
Сообщения: 13
Зарегистрирован: 12 май 2010, 19:38

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Timon132009 »

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

var loader:URLLoader = new URLLoader();var request:URLRequest = new URLRequest("file.txt"); loader.load(request);URLLoaderDataFormat.TEXT

а как теперь вывести текст на динамический экран?
Последний раз редактировалось bodnar 14 май 2010, 17:45, всего редактировалось 1 раз.
Причина: используйте [code=actionscript][/code]
Ответить