![]() |
|
||||||||||
|
|||||
|
есть две swf (loader.swf и gallery.swf) с Document class'ами.
При окончании загрузки gallery.swf, получаю следующую ошибку: Цитата:
public function Gallery() {
/*stage.scaleMode = StageScaleMode.SHOW_ALL;
stage.align = StageAlign.TOP_LEFT;
getConfig("./lib/config.xml");
*/
}
В чем проблема? Класс 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 {
}
}
}
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Такая же проблема выдает
Цитата:
|
|
|||||
|
[+4 02.11.07]
[+1 18.12.07] Регистрация: Oct 2006
Сообщений: 100
|
Nicolas Prof:
1)вы наверное не скомпилировали свф после внесения изменений. 2)а почему вы задаете настройки стейджа в подгружаемой свф? когда, (имхо) их нужн задать изначально. ------ Kuruki: вам советую все что в конструкторе у вас есть протрейсить, сразу станет ясно почему выводится ошибка. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Да, действительно, проблема была в доступе к stage (в подгружаемой флэшке). Спасибо.
|
|
|||||
|
Modus ponens
|
Делал темплейт для ФД с внешним прелоадером, вроде пока проблем не было...
http://www.flashdevelop.org/communit...php?f=9&t=3623 Если кому нужно
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 22
|
Цитата:
![]() |
|
|||||
|
Попробуй обработчик вешать не на COMPLETE, а на INIT
__________________
Стой! Опасная зона! Работа мозга! |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 22
|
Отдельная флеха с классом main.loader
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); } } } с классом main.application 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() решил проблему: у меня было так: stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDOWN); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUP); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMOVE); |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 5
|
аналогичная проблема только с нажатиями клавиш а не мыши, и там даже если убрать stage ошибка выдаётся всё равно.
посоветуйте как решить |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Показывайте код.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|