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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
По умолчанию Почему прелоадер не выводит загруженный swf

День добрый. Столкнулся с такой проблемой: прелоадер не хочет выводить загруженный swf использующий API VK.
Код прелоадера:
Код AS3:
package 
{
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.net.URLRequest;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
 
	public class Main extends MovieClip 
	{
		private var loadStatus: TextField = new TextField();
		private var loader: Loader = new Loader();
 
		public function Main():void 
		{	
			loader.load(new URLRequest("http://cs6102.vk.com/u122246923/2e6dfe23bf74ce.zip"));
			loader.contentLoaderInfo.addEventListener(Event.OPEN, displayPreloader);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, OnComplete);
			loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, OnProgress);
		}
		private function displayPreloader(evt: Event): void
		{
			loadStatus.autoSize = TextFieldAutoSize.LEFT;
			addChild(loadStatus);
		}
		private function OnProgress(evt: ProgressEvent): void
		{
			loadStatus.text = evt.bytesLoaded + " из " + evt.bytesTotal + " " + ((evt.bytesLoaded/evt.bytesTotal)* 100 ) + "%";
		}
		private function OnComplete(evt: Event): void
		{
			removeChild(loadStatus);
			addChild(loader);
		}
	}
 
}
код загружаемого swf:
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import vk.APIConnection;
 
	public class Main extends MovieClip 
	{
 
		public function Main():void 
		{
			var FlashVars: Object = stage.loaderInfo.parameters as Object;
			var VK: APIConnection = new APIConnection(FlashVars);
 
			VK.api("putVariable" , { key:1300, user_id:FlashVars.viewer_id, value:"З1" } );
 
			var txt: TextField = new TextField;
			txt.text = "Какой то текст";
			addChild(tTx);
		}
 
 
	}
 
}
Прелоадер имеет функцию, которая выводит процесс загрузки - и прелоадер показывает, что swf загружен. Но после загрузки он не хочет выводится на экран. Если заменить загружаемый swf на другой - не использующий API VK, то после загрузки он выводится на экран. В чем может быть проблема?


Последний раз редактировалось CyberGenius; 20.09.2012 в 22:21.
Старый 19.09.2012, 21:04
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Ставим debug-player и наслаждаемся жизнью и сообщениями об ошибках. Скорее всего, stage в конструкторе загружаемого swf еще равен null. Просто потому, что объект еще не добавлен в список отображения (конструктор то еще не отработал). Смотрите Event.ADDED_TO_STAGE.

А еще я сильно сомневаюсь в наличии loaderInfo у stage а также в том, что loaderInfo.parameters будет тем, что вам нужно. Потрейсите, посмотрите под отладчиком.

Старый 19.09.2012, 21:11
CyberGenius вне форума Посмотреть профиль Отправить личное сообщение для CyberGenius Найти все сообщения от CyberGenius
  № 3  
Ответить с цитированием
CyberGenius
 
Аватар для CyberGenius

Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
жесть, буду разбираться. Спасибо

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Нужно в подгружаемой флешке добавить код проверки наличия stage:
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import vk.APIConnection;
 
	public class Main extends MovieClip 
	{
 
		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);
                                var FlashVars: Object = stage.loaderInfo.parameters as Object;
			var VK: APIConnection = new APIConnection(FlashVars);
 
			VK.api("putVariable" , { key:1300, user_id:FlashVars.viewer_id, value:"З1" } );
 
			var txt: TextField = new TextField;
			txt.text = "Какой то текст";
			addChild(tTx);
                      }
 
	}
 
}
Не отладочная версия плеера просто проглотит ошибку и ничего не выдаст, но ошибка тут явно будет null pointer reference

Старый 20.09.2012, 23:04
CyberGenius вне форума Посмотреть профиль Отправить личное сообщение для CyberGenius Найти все сообщения от CyberGenius
  № 5  
Ответить с цитированием
CyberGenius
 
Аватар для CyberGenius

Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
Аааа, работает!!!! Спасибо тебе большое, добрый человек!

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

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

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


 


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


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