AS3的 LoaderInfo 类为我们加载外部资源提供了更多的可控信息,以前制作SWF播放器的两大难题终于可以得到解决:
* 获得加载SWF的舞台大小以缩放到适合尺寸显示
LoaderInfo 的 width 和 height 属性便是舞台大小。
* 使加载的SWF按自己的帧频播放
LoaderInfo 的 frameRate 属性为加载SWF的帧频,可以修改Stage的 frameRate 属性适应播放。
做了一个简单的例子,分别加载300×150帧频5和100×150帧频20的两个swf到200×200大小的区域播放,注释写的很详细,就不啰嗦了。
监听加载事件:
var t_info : LoaderInfo = this.m_loader.contentLoaderInfo;
t_info.addEventListener(Event.COMPLETE, this.onLoadDone);
t_info.addEventListener(IOErrorEvent.IO_ERROR, this.onLoadError);
t_info.addEventListener(ProgressEvent.PROGRESS, this.onLoadProgress);
显示加载进度:
private function onLoadProgress(p_e : ProgressEvent) : void
{
this.m_loading.progress(p_e.bytesLoaded, p_e.bytesTotal);
}
显示加载的SWF:
// 隐藏loading
this.m_loading.hide();
// loaderInfo
var t_info : LoaderInfo = this.m_loader.contentLoaderInfo;
// 载入的MC
this.m_mc = t_info.content as MovieClip;
// 载入MC的舞台宽度
var t_stageW : Number = t_info.width;
// 载入MC的舞台高度
var t_stageH : Number = t_info.height;
// 载入MC的实际宽度
var t_mcW : Number = this.m_mc.width;
// 载入MC的实际高度
var t_mcH : Number = this.m_mc.height;
// 是否缩放MC适应显示宽度(载入MC舞台的宽高比是否大于显示区域宽高比)
var t_scaleWidth : Boolean = t_stageW / t_stageH > SHOW_W / SHOW_H;
// 缩放比率
var t_scaleRate : Number = t_scaleWidth ? SHOW_W / t_stageW : SHOW_H / t_stageH;
// 缩放MC
this.m_mc.scaleX = this.m_mc.scaleY = t_scaleRate;
// 显示载入MC的显示范围
this.m_mc.scrollRect = new Rectangle(0, 0, t_stageW, t_stageH);
// 显示载入MC
this.addChild(this.m_mc);
// 调整显示位置
this.m_mc.x = SHOW_X;
this.m_mc.y = SHOW_Y;
if (t_scaleWidth) this.m_mc.y += (SHOW_H - t_stageH * t_scaleRate) / 2;
else this.m_mc.x += (SHOW_W - t_stageW * t_scaleRate) / 2;
// 修改帧频
this.stage.frameRate = t_info.frameRate;
this.fms.text = String(this.stage.frameRate);
// 设置组件
this.sdr.enabled = this.btn1.enabled = this.btn2.enabled = true;
this.sdr.maximum = this.m_mc.totalFrames;
// 监听MC事件
this.addEventListener(Event.ENTER_FRAME, this.onEnterFrame);
另外加了一个 Slider 组件来控制播放,前提是加载的swf必须发布为Player9,As3:
this.sdr.addEventListener(SliderEvent.CHANGE, this.onChangeSdr);
this.sdr.addEventListener(SliderEvent.THUMB_PRESS, this.onPressSdr);
this.sdr.addEventListener(SliderEvent.THUMB_RELEASE, this.onReleaseSdr);
private function onChangeSdr(p_e : SliderEvent) : void
{
if (this.m_isPressSdr) this.m_mc.gotoAndStop(p_e.value);
}
private function onPressSdr(p_e : SliderEvent) : void
{
this.m_isPressSdr = true;
this.m_mc.stop();
}
private function onReleaseSdr(p_e : SliderEvent) : void
{
this.m_isPressSdr = false;
this.m_mc.play();
}
[1b]示例演示[/1b]
[1b] | [/1b]
[1b]源代码[/1b]
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/4470.html
发表评论
-
as3.0游戏开发之打气球系列(一)
2010-04-09 12:48 623好久没有写正经的文章 ... -
as3按钮事件
2010-04-09 12:48 545在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 12:48 596很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 12:48 550[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
利用AS3类直接读取Rar文件中的swf文件
2010-04-09 12:47 1277名称:RarExtractor(Rar文件解压器) 作者:fl ... -
AS3.0传递引用时应当注意的问题
2010-04-09 08:27 603整和同事写的地图编辑器代码的时候发现有个引用明明改变了,但是调 ... -
AS3.0传递引用时应当注意的问题
2010-04-09 08:27 635整和同事写的地图编辑器代码的时候发现有个引用明明改变了,但是调 ... -
AS3.0 Socket读取原理分析
2010-04-09 08:27 798AS3.0中使用Socket接收数据我们必须使用Progres ... -
AS3.0 Socket读取原理分析
2010-04-09 08:27 895AS3.0中使用Socket接收数据我们必须使用Progres ... -
开源的as3 3D引擎jiglibFlash
2010-04-09 08:26 1149jiglibFlash:http://code.google. ... -
教你做个性FLASH导航条
2010-04-08 07:52 988首先下载软件Macromedia Flash 8简体中文正式版 ... -
菜鸟制作精美Flash导航菜单
2010-04-08 07:52 1386为方便网友浏览,导航 ... -
菜鸟制作精美Flash导航菜单
2010-04-08 07:51 919为方便网友浏览,导航 ... -
Flash动态缓冲图片导航制作详解
2010-04-08 07:51 782缓冲公式在制作特效中非常有用,著名的三星导航菜单就用到了此公式 ... -
Flash动态缓冲图片导航制作详解
2010-04-08 07:51 662缓冲公式在制作特效中非常有用,著名的三星导航菜单就用到了此公式 ... -
ActionScript 2.0入门系列(继承与接口)
2010-04-07 10:21 683下载地址: [url=/Files/BeyondPic/200 ... -
AS代码2.0:面向对象模型
2010-04-07 10:21 568自从几年前在Flash中引入动作脚本语言(Action Scr ... -
AS代码2.0:面向对象模型
2010-04-07 10:21 706自从几年前在Flash中引入动作脚本语言(Action Scr ... -
AS代码2.0:脚本编辑和调试
2010-04-07 10:20 696Flash MX Professional 2004的动作脚本 ... -
AS代码2.0:脚本编辑和调试
2010-04-07 10:20 583Flash MX Professional 2004的动作脚本 ...
相关推荐
在本项目中,"FLASH载入图片并自动轮换显示"是一个典型的动态图像展示功能,常见于在线相册或数字媒体展示中。该效果通过Adobe Flash实现,利用其强大的动画和交互能力,创建出平滑的图片滑动效果,为用户提供...
这个"lcy flash+xml做的xml方式载入图片自动轮换显示"压缩包很可能是包含了一个已经实现上述功能的Flash项目,包括SWF文件和示例XML数据。通过研究这个项目,开发者可以学习如何将Flash与XML集成,以及如何创建动态...
5. 最后,确保在Flash发布设置中启用ActionScript 3.0,然后导出SWF文件,与XML文件一起部署到服务器上,浏览器加载SWF时,Flash应用程序将从XML文件中读取数据并显示自动轮换的图片。 通过这种方式,XML与Flash的...
在Flash环境中,我们可以创建电影剪辑(MovieClip)或图形(Shape)对象,这些对象可以在舞台上显示和交互。类中的方法和属性负责创建、布局和操作这些舞台对象。 3. **图片加载**:菜单中的每个项目通常包含一个...
Flash Player是Adobe开发的浏览器插件,能够播放FLV视频以及其他类型的SWF内容。在AS3.0中,我们可以利用Flash Player的功能来播放和控制FLV文件。 二、加载FLV文件 加载FLV文件通常涉及到使用Flash Player的...
1. **创建Flash文档**:在Flash环境中,设计师会创建一个新的Flash文档,设置舞台大小、帧率和背景色等基本属性,为Loading界面打下基础。 2. **设计加载动画**:利用Flash的绘图工具和动画功能,设计师可以制作出...
1. 载入进度监控:通过`getBytesLoaded()`和`getBytesTotal()`监控载入进度,可以创建动态的加载提示。例如,创建一个显示百分比的加载条。 2. 弹出小窗口:通过JavaScript交互,如`on(release) {getURL(...
ActionScript使得开发者可以控制舞台上的对象,如图片、音频和动画,以及实现各种交互逻辑,如图片的载入、播放音效和排序功能。 图片载入:项目中提到图片是“一张一张载入”的,这意味着ActionScript中使用了...
2. **载入资源**:使用`Loader`类加载这些图片,并将它们添加到舞台上。 3. **创建动画类**:自定义一个类,如`CharacterAnimation`,负责处理动画的播放。可以使用`enterFrame`事件或`Timer`类来控制动画帧的切换...
Flex 基本上是靠组件吃饭的,flash 要和 flex 结合使用,当然是体现在效果显示上,把 flash 制作的 swf,放到 flex 工程的 src 包里面,然后在 flex 里面用 Image SWFLoader 之类的组件载入这个 swf,小玩意小项目用...
### Flash 常用 ActionScript 速查手册 在Flash动画制作过程中,ActionScript作为...此外,随着技术的发展,虽然Flash已逐渐退出历史舞台,但了解这些基础知识对于理解早期Web动画的发展历程仍然具有一定的参考价值。
11. **If Frame Is Loaded(判断帧是否被完全载入)** - 功能:检查特定的帧是否已经完全加载完成。 - 示例:`if (isLoaded(frameLabel)) { /* 执行代码 */ }` 12. **On Mouse Event(鼠标事件)** - 功能:监听...
4. Library 中有一元件Symbol 1,舞台上有一个该元件的实例。现通过实例属性检查器将该实 例的颜色改为#FF0033,透明度改为80%。请问此时Library 中的Symbol 1 元件将会发生什么 变化? □ A. 颜色也变为#FF0033 □ ...
- **载入或嵌入内容**:动态加载外部资源或预先嵌入到SWF文件中。 #### 9. 运动控制与物理模拟 - **速度和加速度**: - **向量**:表示方向和大小的数学概念。 - **速度**:物体移动的速度。 - **加速度**:速度...
25.5.1创建测试的SWF 558 25.5.2跨脚本访问测试 562 25.5.3文本载入测试 563 25.6小结 564 第26章FlashPlayer与宿主程序 565 26.1使用外部接口ExternalInterface类 565 26.1.1ExternalInterface类 565 26.1.2...
- **载入内容**:动态地加载资源到舞台上。 - **嵌入内容**:将资源直接嵌入到SWF文件中。 #### 五、基本运动 ##### 5.1 速度 - **向量和速度**:使用向量表示物体的速度。 - **一个轴上的速度**:只考虑单个方向...