![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
После долгих гуглений и форумов на данную тему начал делать сам)
И вот получил вот это: Загрузка идет, но основная флешка не грузится. В основной флешке соответственно все функции приложения. CS5 выдает ошибку : TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at Main() Гуглил, говорят, что это связано со stage в основной флешке. код основной флешки, которая подгружается флешкой прелоадера такой : public function Main():void { // получаем данные из flashVars // id просматривающего приложение flashVars = stage.loaderInfo.parameters as Object; viewer_id = flashVars['viewer_id']; // secret для генерации сигнатуры secret = flashVars['secret']; // id сессии sid = flashVars['sid']; // адрес API-сервиса api_url = flashVars['api_url']; auth_key = flashVars['auth_key']; VK = new APIConnection(flashVars); VK.api('getProfiles',{ uids: viewer_id,fields:'photo_big,sex,bdate,city,country,education'},onComplete, onError); package { import flash.display.*; import flash.events.*; import flash.text.TextField; import flash.net.URLRequest; public class Preloader extends Sprite { public function Preloader():void { var url='1.swf';// ссылка на загружаемый swf // создание и размещение поля с прогрессом загрузки var progress_tf:TextField = new TextField(); progress_tf.x=530/2; progress_tf.y=380/2; addChild(progress_tf); var loadURL:URLRequest=new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onLoadProgress);// прогресс загрузки loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);// загружено loader.load(loadURL); function onLoadProgress(evt:ProgressEvent):void { progress_tf.text = String(Math.round(100*(evt.bytesLoaded/evt.bytesTotal)))+"%"; } function onLoadComplete(evt:Event):void {//окончание загрузки // удаляем поле с прогрессом загрузки removeChild(progress_tf); // отображаем то что загрузилось addChild(loader); } } } } |
|
|||||
|
Регистрация: Mar 2007
Сообщений: 545
|
В основной флешке начинайте манипуляции после ADDED_TO_STAGE
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
а можно поконкретней ?
public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); // получаем данные из flashVars // id просматривающего приложение flashVars = stage.loaderInfo.parameters as Object; viewer_id = flashVars['viewer_id']; // secret для генерации сигнатуры secret = flashVars['secret']; // id сессии sid = flashVars['sid']; // адрес API-сервиса api_url = flashVars['api_url']; auth_key = flashVars['auth_key']; VK = new APIConnection(flashVars); VK.api('getProfiles',{ uids: viewer_id,fields:'photo_big,sex,bdate,city,country,education'},onComplete, onError); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); ..... } |
|
|||||
|
.
|
Если первое условие не срабатывает, то зачем вы обращаетесь к stage?
Последний раз редактировалось dimarik; 15.08.2011 в 17:02. |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
А я что-то вообще не понял((
Можете поподробнее объяснить что вы имели ввиду?) |
|
|||||
|
.
|
|
|
|||||
|
Banned
|
И еще, в строке ниже "as Object" не требуется, так как возвращаемый тип данных и так Object:
Собственно, dimarik, это уже написал постом выше. Последний раз редактировалось toFL; 15.08.2011 в 17:06. |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
не работает..
public function Main():void { // получаем данные из flashVars // id просматривающего приложение if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); viewer_id = flashVars['viewer_id']; // secret для генерации сигнатуры secret = flashVars['secret']; // id сессии sid = flashVars['sid']; // адрес API-сервиса api_url = flashVars['api_url']; auth_key = flashVars['auth_key']; // вызываем функцию получения профиля пользователя, просматривающего приложение // var VK:APIConnection = new APIConnection(flashVars); VK = new APIConnection(flashVars); //getProfile(viewer_id); VK.api('getProfiles',{ uids: viewer_id,fields:'photo_big,sex,bdate,city,country,education'},onComplete, onError); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); const flashVars:Object = stage.loaderInfo.parameters; } Цитата:
|
|
|||||
|
А вы случаем с языками программирования вообще знакомы или как?
public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); const flashVars:Object = stage.loaderInfo.parameters; // ваша мутотень!!! viewer_id = flashVars['viewer_id']; // secret для генерации сигнатуры secret = flashVars['secret']; // id сессии sid = flashVars['sid']; // адрес API-сервиса api_url = flashVars['api_url']; auth_key = flashVars['auth_key']; // вызываем функцию получения профиля пользователя, просматривающего приложение // var VK:APIConnection = new APIConnection(flashVars); VK = new APIConnection(flashVars); //getProfile(viewer_id); VK.api('getProfiles',{ uids: viewer_id,fields:'photo_big,sex,bdate,city,country,education'},onComplete, onError); }
__________________
Марк Tween |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|