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

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

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

Регистрация: Jul 2013
Сообщений: 21
По умолчанию Не работает прелоадер

У меня есть основной flash файл который нужно подгрузить из другого falsh файла (прелоадера). Загружаю с помощью loader добавляю addchild'ом и мне выдает ошибку
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main()
другие флешки он подгружает отлично но которую мне надо не грузит. Собсно ошибка в конкретной флешке в Main как я понимаю.
вот main
Код AS3:
...
public function Main() 
		{
			if (stage)
                init();
            else
                addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			VK.api('users.get',{fields:"photo_100,sex"},getProfile,ErrorProfile);
		}
...
и сам прелоадер
Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.net.URLRequest;
	import flash.display.Loader;
	import flash.events.*;
	import flash.errors.IOError;
 
	public class Logo extends MovieClip {
 
		var req:URLRequest = new URLRequest("squary.swf");
		var loader:Loader = new Loader();
		var im:Img = new Img();
		var prog:Prog = new Prog();
		public function Logo() {
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
		private function init(e:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			addChild(im);
			addChild(prog);
			prog.x = 39;
			prog.y = 540;
			loadSwf();
		}
		private function loadSwf():void
		{
			loader.load(req);
 
			loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressLoader);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, progressComplete);
			loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
		}
		private function onError(e:IOErrorEvent):void
		{
			trace(e.errorID);
		}
		private function progressLoader(e:ProgressEvent):void
		{
			trace(e.target.bytesLoaded/1024/1024+' mb');
			prog.scaleX = (e.target.bytesLoaded/e.target.bytesTotal);
 
		}
		private function progressComplete(e:Event):void
		{
			trace("ok");
			addChild(e.target.content);
		}
	}
 
}
что за беда как ее решить?

Добавлено через 30 часов 17 минут
неужели ни кто не знает что делать?

Старый 19.08.2013, 08:50
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 2  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
если вы юзаете стандартную вконтакте либу, то я не вижу инициализацию вашего VK

Старый 19.08.2013, 10:50
belv вне форума Посмотреть профиль Отправить личное сообщение для belv Найти все сообщения от belv
  № 3  
Ответить с цитированием
belv
[+1 16.07.13]
[+4 16.07.13]

Регистрация: Oct 2005
Сообщений: 217
Попробуйте привести для начала к типу данных
addChild(e.target.content);

Старый 19.08.2013, 13:09
scnippers вне форума Посмотреть профиль Отправить личное сообщение для scnippers Найти все сообщения от scnippers
  № 4  
Ответить с цитированием
scnippers
 
Аватар для scnippers

Регистрация: Jul 2013
Сообщений: 21
Цитата:
Сообщение от belv Посмотреть сообщение
Попробуйте привести для начала к типу данных
addChild(e.target.content);
это как?

Добавлено через 35 секунд
Цитата:
Сообщение от bifidokk Посмотреть сообщение
если вы юзаете стандартную вконтакте либу, то я не вижу инициализацию вашего VK
я привел код не полностью только функцию main

Старый 19.08.2013, 14:56
belv вне форума Посмотреть профиль Отправить личное сообщение для belv Найти все сообщения от belv
  № 5  
Ответить с цитированием
belv
[+1 16.07.13]
[+4 16.07.13]

Регистрация: Oct 2005
Сообщений: 217
Приведение к типу данных может быть двумя способами
Код AS3:
Sprite(e.target.content)
или
Код AS3:
e.target.content as Sprite
в место спрайт может быть и MovieClip, в зависимости какой класс расширяет Main.

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

Регистрация: Jul 2013
Сообщений: 21
проблема решена. Ошибка была в том что я получал flashVars когда еще stage не создался. Всем спасибо.

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

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

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


 


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


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