Страница 1 из 2
Прелоадер
Добавлено: 15 авг 2011, 11:42
dr1emaver
Здравствуйте, пробовал код из темы
http://flapps.ru/forum/topic23.html#p127 . Загрузка идет, но основная флешка не грузится. В основной флешке соответственно все функции приложения. CS5 выдает ошибку :
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main()
Гуглил, говорят, что это связано со stage в основной флешке.
код main такой :
Код: Выделить всё
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);
Re: Прелоадер
Добавлено: 18 авг 2011, 00:41
psix55
Слушай... Если я не туплю, то это не работает из-за того, что ты основное приложение погружаешь. Основное приложение не может получить доступ к flashVars.
Если я ошибаюсь, то попробуй мне написать в ICQ. Разберусь лично. Потом решение сюда выложим.
ICQ: 575-706-восемь восемь семь
Если меня в асе не будет, напиши тут в ЛС, я в асю зайду.
Re: Прелоадер
Добавлено: 19 авг 2011, 20:05
dr1emaver
Да в этом проблемка ) Мне советовали сделать так:
Код: Выделить всё
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']; // вызываем функцию получения профиля пользователя, просматривающего приложение VK = new APIConnection(flashVars); VK.api('getProfiles',{ uids: viewer_id,fields:'photo_big,sex,bdate,city,country,education'},onComplete, onError); }
Ну к сожалению основную флешку не грузит..
Re: Прелоадер
Добавлено: 27 фев 2012, 12:12
gaponj88
Хочу поднять эту тему,так как не понятно до сих пор почему пишет:
Код: Выделить всё
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".at Main()
Очень многие хотят сделать прелоадер,но сталкиваются с такой ошибкой!
при загрузке допустим картинки,все работает,а swf не хочет,постоянно объект "null"
Что нужно добавить,в код,или в главную флешку чтобы прелаодер все-таки загрузил swf !
Код: Выделить всё
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); } } }}
Re: Прелоадер
Добавлено: 27 фев 2012, 13:07
sanych_dv
А, не посмотрел сразу.
Код: Выделить всё
function onLoadComplete(e:Event):void {//окончание загрузки // удаляем поле с прогрессом загрузки removeChild(progress_tf); // отображаем то что загрузилосьvar mc:MovieClip = LoaderInfo(e.currentTarget).content as MovieClip; addChild(mc); }
Re: Прелоадер
Добавлено: 27 фев 2012, 13:37
gaponj88
Тоже самое,та же ошибка:
Код: Выделить всё
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".at Main()
Re: Прелоадер
Добавлено: 27 фев 2012, 14:11
sanych_dv
Код: Выделить всё
public function Preloader():void{ if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init);} private function init(e:Event = null):void{// здесь лоадер}
Иногда помогает задержка:
Код: Выделить всё
function onLoadComplete(e:Event):void { TweenLite.delayedCall(0.1, function _func():void { addChild (LoaderInfo(e.currentTarget).content as MovieClip ); }); }
imho - делать прелоадер путем загрузки в него другого swf - бред.
Переходите из Flash IDE в нормальный редактор кода и пользуйте нормальный [Frame(factoryClass="Preloader")]
Re: Прелоадер
Добавлено: 27 фев 2012, 14:16
gaponj88
Нет ошибка все не пропадает(Печально
Re: Прелоадер
Добавлено: 27 фев 2012, 14:24
sanych_dv
Ваш код у меня во Flash IDE нормально работает.
Re: Прелоадер
Добавлено: 27 фев 2012, 14:27
gaponj88
sanych_dv
во Flash IDE
Это что??
