Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.08.2011, 15:22
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 1  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
По умолчанию Прелоадер подгрузка основной SWF

После долгих гуглений и форумов на данную тему начал делать сам)
И вот получил вот это:

Загрузка идет, но основная флешка не грузится.
В основной флешке соответственно все функции приложения. CS5 выдает ошибку :

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main()


Гуглил, говорят, что это связано со stage в основной флешке.

код основной флешки, которая подгружается флешкой прелоадера такой :
Код AS3:
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);
Код флешки прелоадера:

Код AS3:
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);
            }
        }
    }
}

Старый 15.08.2011, 15:37
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 2  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
В основной флешке начинайте манипуляции после ADDED_TO_STAGE

Код AS3:
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);
 
	.....
}

Старый 15.08.2011, 15:57
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 3  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
а можно поконкретней ?
Код AS3:
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);
 
	.....
}
Если так то не работает..Прелоудер до конца доходит, но главная флешка не грузится..

Старый 15.08.2011, 16:11
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Если первое условие не срабатывает, то зачем вы обращаетесь к stage?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 15.08.2011 в 17:02.
Старый 15.08.2011, 16:25
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 5  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
А я что-то вообще не понял((

Можете поподробнее объяснить что вы имели ввиду?)

Старый 15.08.2011, 17:01
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
private function init(e:Event = null):void {
    removeEventListener(Event.ADDED_TO_STAGE, init);
    const flashVars:Object = stage.loaderInfo.parameters;
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.08.2011, 17:04
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 7  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
И еще, в строке ниже "as Object" не требуется, так как возвращаемый тип данных и так Object:
Код AS3:
flashVars = stage.loaderInfo.parameters as Object;
Собственно, dimarik, это уже написал постом выше.


Последний раз редактировалось toFL; 15.08.2011 в 17:06.
Старый 15.08.2011, 17:21
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 8  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
не работает..

Код AS3:
 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;
 
}
и CS5 выдает :
Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main()

Старый 15.08.2011, 17:24
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
А вы случаем с языками программирования вообще знакомы или как?

Код AS3:
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

Старый 15.08.2011, 17:32
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 10  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Цитата:
// ваша мутотень!!!
in4core, как обычно любезен

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.