Пытаюсь вывести информацио о пользователе который открывает приложение.
Сталкнулся с такой проблеммой что немогу получить viewer_id.
Если прописать viewer_id статично все работает.
Получаю так
пробовал за место root использовать stage, тогда приложение просто загружается и не чего не
происходит. Нашол кучю примеров как получить viewer_id, почему-то не помогло.
Может нужно где-то галочку нажать? или что еще сделать?
package { import flash.net.URLLoader; import flash.net.URLRequest; import flash.display.*; import flash.events.*; import flash.text.*; import flash.display.LoaderInfo; public class Main extends Sprite { private var api_id:Number=100500; // id вашего приложения private var api_secret:String="xxxxxxxxxx"; // секретный ключ 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 dbg_text:TextField = new TextField(); public function Main():void { var self = this; var params:Object = LoaderInfo(root.loaderInfo).parameters; viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1; 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); } }}
При компеляции ошибок нет. Долго мучил MD5 но одолел =)
В настройках приложения:
Настройки контейнера
тип Flash
Flash-контейнер:без отступов и элементов управления.
Чтобы убедится что приложение загружается рисовал линию. Линию после загрузки вижу а скрипт работать не хочет =(. Если вбиваю cвой viewer_id (статично без loaderInfo) приложение начинает работать.
Вы бы выложили код который не работает, а не урок в котором все прально...
Делай trace всего что видишь, например сразу после получения viewer_id трейсни и смотри через flashbug в firefox чего он там пишет.
Пока не проверил, на работе сижу. Но вроде понял что делал не так. и Что за контейнер. Я думал это просто рамочка =). А это flash во flash'е получается?