Страница 12 из 25
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 27 апр 2010, 22:20
Александр
Alex
Так?
Код: Выделить всё
private function onLoaded(e:Event):void { // отображаем загруженный аватар photoLoader.x = (550-photoLoader.width)/2; photoLoader.y = (400-photoLoader.height)/2; addChild(photoLoader); photoLoader.width = 50; // ширина photoLoader.height = 100; // высота }
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 05 май 2010, 17:18
11papa11
Вопрос:
Как сделать так, что бы фотография и имя была в правом верхнем углу (имя под авой)?
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 05 май 2010, 17:52
Александр
11papa11
Меняй координаты на нужные значения. Зависит от размера твоего приложения и размеров аватарки.
Код: Выделить всё
// имя name_txt.x=410; name_txt.y=360;// фото photoLoader.x = 0; photoLoader.y = 200;
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 06 май 2010, 11:42
Жека
Спасибо за урок) Получилось)
А можно такой-же урок но на AS 2?
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 08 май 2010, 13:53
dead_luminor
Код: Выделить всё
package { import flash.net.*; import flash.display.*; import flash.events.*; import flash.text.*; import vk.VkApiNode; public class Main extends Sprite { private var api_id:Number=111111; // id вашего приложения private var api_secret:String="v11111"; // секретный ключ 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(); private var query:String; private var wrapper:Object; private var api:VkApiNode; private var viewer_id; public function Main():void { // узнаём id пользователя, который просматривает приложение wrapper=Object(parent.parent); var params:Object=LoaderInfo(root.loaderInfo).parameters; viewer_id=wrapper.application.parameters.viewer_id; // получаем профиль этого пользователя getProfile(viewer_id); } 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); } }}
вроде с контейнером должно быть так...
почему не работает?
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 08 май 2010, 16:04
bodnar
как бы лень создавать приложение загружать его в контакт смотреть что не работает, может так проблему огласите?

Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 08 май 2010, 21:02
dead_luminor
ну чтобы с контейнером работало надо
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 09 май 2010, 06:07
bodnar
вызывать контейнер и начинать работать с ним нужно на событие Event.ADDED_TO_STAGE
Код: Выделить всё
public function main{this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);} public function onAddedToStage(e:Event):void{//и тут уже начинаем делать то что вы делали}
в второе, у метода конструктора не нужно ставить :void он и так конструктор. Кажется в
стрикт моде не проходит проверку на ошибки
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 17 май 2010, 12:43
dead_luminor
Код: Выделить всё
/* http://flapps.ru/forum/ - форум о создании флеш приложений на основе ВКонтакте API */package { import flash.net.URLLoader; import flash.net.URLRequest; import flash.display.*; import flash.events.*; import flash.text.*; public class Main extends Sprite { private var api_id:Number=1877289; // id вашего приложения private var api_secret:String="cAZVLtrvo9"; // секретный ключ 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 query:String; private var wrapper:Object; private var bdate_txt:TextField = new TextField(); private var name_txt:TextField = new TextField(); public function Main() { wrapper=Object(parent.parent); this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } public function onAddedToStage(e:Event):void{ viewer_id=wrapper.application.parameters.viewer_id; getProfile(viewer_id); 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); } }}}
Ошибки:
http://s54.radikal.ru/i146/1005/a4/4c7e1ae9f893.png
1 ошибка ругается на это
Код: Выделить всё
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); }
2 ошибка ругается на это
Код: Выделить всё
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!"); } }
3 ошибка ругается на это
Код: Выделить всё
private function onLoaded(e:Event):void { //на эту строчку photoLoader.x = (550-photoLoader.width)/2; photoLoader.y = (400-photoLoader.height)/2; addChild(photoLoader); }
Re: Приложение, показывающее имя, фамилию, дату рождения, аватар
Добавлено: 17 май 2010, 13:01
bodnar
в 37 строчку вставьте }