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); } }}
вроде с контейнером должно быть так...
почему не работает?
public function main{this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);} public function onAddedToStage(e:Event):void{//и тут уже начинаем делать то что вы делали}
в второе, у метода конструктора не нужно ставить :void он и так конструктор. Кажется в стрикт моде не проходит проверку на ошибки
/* 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); } }}}
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); }