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

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

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

Регистрация: Dec 2006
Адрес: Между Раем и Адом
Сообщений: 24
Отправить сообщение для Nicolas Prof с помощью ICQ
По умолчанию Внешний прелоадер

есть две swf (loader.swf и gallery.swf) с Document class'ами.

При окончании загрузки gallery.swf, получаю следующую ошибку:
Цитата:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Gallery()
Gallery() это конструктор:
Код:
		public function Gallery() {
			/*stage.scaleMode = StageScaleMode.SHOW_ALL;
            stage.align = StageAlign.TOP_LEFT;
			
			getConfig("./lib/config.xml");
			*/
			
		}
поначалу думал, что ошибка из за того что stage еще не доступен. Закомментировал. Ошибка таже.
В чем проблема?
Класс Load, который загружает gallery.swf имеет следующий вид:
Код:
package prof{
	import flash.net.*;
	import flash.display.*;
	import flash.events.*;
	import flash.filters.*;
	import flash.geom.*;

	public class Load extends MovieClip {
		
		private var _loader:Loader;
		private var _preloader:Sprite;
		private var _dropShadow:DropShadowFilter;
		private var _lodWidth:Number;
		private var _lodHeight:Number;
		private var _gradientFill:Boolean;
		
		public function Load() {
			_gradientFill = false;
			drawLoader();
			load("gallery.swf");
		}
		public function drawLoader():void {
			var bar:Sprite=new Sprite();
			bar.name = "bar";
			var strip:Sprite=new Sprite();
			_dropShadow = new DropShadowFilter(1,45,0x000000,0.7,5,5,0.5,3,true,false,true);
			_lodWidth = 200;
			_lodHeight = 5;
			_preloader=new Sprite();
			...откоцано :) ...

			_preloader.addChild(strip);
			_preloader.addChild(bar);
			addChild(_preloader);
			
		}
		public function load(urlMain:String):void {
				var url:URLRequest=new URLRequest(urlMain);
				_loader=new Loader();
				addChild(_loader);
				_loader.load(url);
				_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
				_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onLoading);
		}
		
		
		//EVENTS 
		private function onLoading(e:ProgressEvent):void {
			_preloader.getChildByName("bar").width = _lodWidth * e.bytesLoaded / e.bytesTotal;
		}
		private function onComplete(e:Event):void {
			
		}

	}
}
__________________
Portfolio - Blog

Старый 24.09.2008, 14:47
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Такая же проблема выдает
Цитата:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at pages::Main$iinit()
Вот только нет у моего класса Main метода init(). В чем дело, подскажите пожалуйста!

Старый 24.09.2008, 15:09
BARTLEBY вне форума Посмотреть профиль Отправить личное сообщение для BARTLEBY Найти все сообщения от BARTLEBY
  № 3  
Ответить с цитированием
BARTLEBY
[+4 02.11.07]
[+1 18.12.07]
 
Аватар для BARTLEBY

Регистрация: Oct 2006
Сообщений: 100
Nicolas Prof:
1)вы наверное не скомпилировали свф после внесения изменений.
2)а почему вы задаете настройки стейджа в подгружаемой свф? когда, (имхо) их нужн задать изначально.
------
Kuruki:
вам советую все что в конструкторе у вас есть протрейсить, сразу станет ясно почему выводится ошибка.

Старый 24.09.2008, 15:34
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 4  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Да, действительно, проблема была в доступе к stage (в подгружаемой флэшке). Спасибо.

Старый 24.09.2008, 16:19
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Делал темплейт для ФД с внешним прелоадером, вроде пока проблем не было...
http://www.flashdevelop.org/communit...php?f=9&t=3623
Если кому нужно
__________________
Hell is the possibility of sanity

Старый 10.08.2009, 08:58
netic вне форума Посмотреть профиль Отправить личное сообщение для netic Найти все сообщения от netic
  № 6  
Ответить с цитированием
netic

Регистрация: Aug 2009
Сообщений: 22
Цитата:
Сообщение от Kuruki Посмотреть сообщение
Да, действительно, проблема была в доступе к stage (в подгружаемой флэшке). Спасибо.
а как решил проблему? у меня так же

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

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Попробуй обработчик вешать не на COMPLETE, а на INIT
__________________
Стой! Опасная зона! Работа мозга!

Старый 10.08.2009, 09:29
netic вне форума Посмотреть профиль Отправить личное сообщение для netic Найти все сообщения от netic
  № 8  
Ответить с цитированием
netic

Регистрация: Aug 2009
Сообщений: 22
Отдельная флеха с классом main.loader

Код AS3:
package main 
	{
    import flash.events.*;
    import flash.net.*;
	import flash.display.*;
 
    public class loader extends MovieClip
		{			
		public var l:Loader;
		public function loader() 
			{					
			l = new Loader();
			l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loop);
			l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
 
			l.load(new URLRequest('app.swf'));
			}
 
		function loop(e:ProgressEvent):void
			{
			var prec:Number = e.bytesLoaded / e.bytesTotal;
			precent.text = Math.ceil(prec*100).toString();
			}
 
		function done(e:Event):void
			{
			removeChildAt(0);
			precent = null;
			addChild(l);
			}			
		}
	}
и флешка контент - app.swf

с классом main.application

Код AS3:
package main 
	{
	import main.*; 
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.display.BitmapData;
	import flash.display.Shape;
	import flash.events.MouseEvent;
	import flash.ui.Mouse;
 
 
    public class application extends Sprite 
		{		 
		public static  var stage:Stage;
		public var floorW:int = 1000;
		public var floorH:int = 1000;
		var x0:int = 0;
		var y0:int = 0;
		var divX0:int = 0;
		var divY0:int = 0;
		public var startMove:Boolean=false;
 
		public function application() 
			{			
			Mouse.hide(); 
 
			....
			}
		}
	}
после загрузки прелоадера выдает ошибку:

Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at main::application()
Добавлено через 2 часа 21 минуту
решил проблему:

у меня было так:
Код AS3:
			stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDOWN);
			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUP);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMOVE);
убрал просто
Код AS3:
stage.

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

Регистрация: Jul 2009
Сообщений: 5
аналогичная проблема только с нажатиями клавиш а не мыши, и там даже если убрать stage ошибка выдаётся всё равно.

посоветуйте как решить

Старый 05.10.2009, 21:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Показывайте код.

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

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

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


 


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


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