关于AS3.0加载外部影片剪辑的问题
以前AS2.0用loadMovieNum()来加载外部的swf文件,在AS3.0中如何加载外部swf文件,我想做一个按钮,然后单击它就加载外部swf文件,该如何编写代码,...
以前AS2.0用loadMovieNum()来加载外部的swf文件,在AS3.0中如何加载外部swf文件,我想做一个按钮,然后单击它就加载外部swf文件,该如何编写代码,急用!谢谢啦!
展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
下例用 LoaderExample 类来说明如何使用各种事件侦听器。 执行下列步骤可完成该任务:
创建 url 属性,它是图像文件的位置和名称
在 LoaderExample 构造函数中,创建一个新的 Loader 对象,名为 loader,该对象随后被传递给 configureListeners() 方法,如步骤 3 所述。
构造函数创建一个 URLRequest 对象的新实例 request,该实例带有传递的 url,这样,就可以知道文件的名称和位置。
request 对象传递给 loader 对象的 load() 方法,该方法会将图像加载到显示列表上。
为加载器上的 click 事件注册 clickHandler 事件侦听器。 在单击鼠标后,便可卸载加载的图像。
configureListeners() 方法通过以下方法添加 7 个事件侦听器:
图像加载完成时,执行 completeHandler() 方法。
图像不是在本地加载,并且只有在网络请求可用并可被 Flash Player 检测到的情况下,才会执行 httpStatusHandler() 方法。
initHandler() 方法在 completeHandler() 方法之前、progressHandler() 方法之后执行。 通常,init 事件在加载 SWF 文件时更有用。
图像文件不可用或不可访问,则执行 ioErrorHandler() 方法。
首次打开图像文件时,执行 openHandler() 方法。
图像文件开始下载和下载完成时,执行 progressHandler() 方法。
通过使用用户单击图像时使用的 unload() 方法卸载图像时,执行 unLoadHandler() 方法。
请牢记以下要求:
该示例要求您将名为 Image.gif 的文件放置在与经过编译的 SWF 文件相同的目录中。 使用具有一个适合主 SWF 文件尺寸的区域的图像。
虽然该示例使用可用于 LoaderInfo 对象的所有事件,但是在大部分情况下,只需要一个子集。 特别是在只加载图像文件时,complete 事件(还可能是 ioError 事件)足够用于加载本地图像。
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;
public class LoaderExample extends Sprite {
private var url:String = "Image.gif";
public function LoaderExample() {
var loader:Loader = new Loader();
configureListeners(loader.contentLoaderInfo);
loader.addEventListener(MouseEvent.CLICK, clickHandler);
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(Event.INIT, initHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function initHandler(event:Event):void {
trace("initHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function unLoadHandler(event:Event):void {
trace("unLoadHandler: " + event);
}
private function clickHandler(event:MouseEvent):void {
trace("clickHandler: " + event);
var loader:Loader = Loader(event.target);
loader.unload();
}
}
}
创建 url 属性,它是图像文件的位置和名称
在 LoaderExample 构造函数中,创建一个新的 Loader 对象,名为 loader,该对象随后被传递给 configureListeners() 方法,如步骤 3 所述。
构造函数创建一个 URLRequest 对象的新实例 request,该实例带有传递的 url,这样,就可以知道文件的名称和位置。
request 对象传递给 loader 对象的 load() 方法,该方法会将图像加载到显示列表上。
为加载器上的 click 事件注册 clickHandler 事件侦听器。 在单击鼠标后,便可卸载加载的图像。
configureListeners() 方法通过以下方法添加 7 个事件侦听器:
图像加载完成时,执行 completeHandler() 方法。
图像不是在本地加载,并且只有在网络请求可用并可被 Flash Player 检测到的情况下,才会执行 httpStatusHandler() 方法。
initHandler() 方法在 completeHandler() 方法之前、progressHandler() 方法之后执行。 通常,init 事件在加载 SWF 文件时更有用。
图像文件不可用或不可访问,则执行 ioErrorHandler() 方法。
首次打开图像文件时,执行 openHandler() 方法。
图像文件开始下载和下载完成时,执行 progressHandler() 方法。
通过使用用户单击图像时使用的 unload() 方法卸载图像时,执行 unLoadHandler() 方法。
请牢记以下要求:
该示例要求您将名为 Image.gif 的文件放置在与经过编译的 SWF 文件相同的目录中。 使用具有一个适合主 SWF 文件尺寸的区域的图像。
虽然该示例使用可用于 LoaderInfo 对象的所有事件,但是在大部分情况下,只需要一个子集。 特别是在只加载图像文件时,complete 事件(还可能是 ioError 事件)足够用于加载本地图像。
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;
public class LoaderExample extends Sprite {
private var url:String = "Image.gif";
public function LoaderExample() {
var loader:Loader = new Loader();
configureListeners(loader.contentLoaderInfo);
loader.addEventListener(MouseEvent.CLICK, clickHandler);
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(Event.INIT, initHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function initHandler(event:Event):void {
trace("initHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function unLoadHandler(event:Event):void {
trace("unLoadHandler: " + event);
}
private function clickHandler(event:MouseEvent):void {
trace("clickHandler: " + event);
var loader:Loader = Loader(event.target);
loader.unload();
}
}
}
参考资料: ActionScript 3.0 语言和组件参考
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询