关于stage的讨论

本文详细介绍了在ActionScript 3.0 (AS3) 中如何正确处理资源加载及Stage对象的应用,避免因错误使用Stage导致的问题。通过具体实例说明了在加载主SWF文件后如何适当地移除加载提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stage在flash常被乱用,而且经常出现stage为null的情况,这种情况基本是在一个类去调用另外一个类,在被调用的类中使用了stage,这个时候很容易出现null的情况。
stage是顶级显示对象,root是二级显示对象。
所以在AS3中所有调用的类中只有主类能够使用stage,如我们常在使用loading完成后才会去调用我们的主swf文件,下面是我常用个的 loading。
package {
import flash.net.*;
import flash.system.System;
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.geom.*;
import caurina.transitions.Tweener;
public class index extends MovieClip {
var loadingText:TextField=new TextField();
var loadformat:TextFormat=new TextFormat();
public function index() {

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align="TL";

loadformat.font="Verdana";
loadformat.color = 0xffffff;
loadformat.size = 14;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align="TL";

var request:URLRequest = new URLRequest("activity.swf");
var loader:Loader = new Loader();

loader.load(request);
addChild(loader);

loadingText.x=stage.stageWidth/2;
loadingText.y=stage.stageHeight/2+40;
loadingText.name="loadingText";
loadingText.autoSize=TextFieldAutoSize.LEFT;
addChild(loadingText);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
function loadProgress(event:ProgressEvent):void {
var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
percentLoaded = Math.round(percentLoaded * 100);
loadingText.text="Loading: "+percentLoaded+"%";
loadingText.setTextFormat(loadformat);
trace("Loading: "+percentLoaded+"%");
}
function loadComplete(event:Event):void {
removeChild(getChildByName("loadingText"));
}
}
}
从中可以看到,在这个中间用到了stage,那么在load的主flash中就不能使用stage了。
我的网站设计 web design home page
[url]http://www.webdesign-cn.com[/url]
[url]http://www.webdesign-china.cn[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值