`
hgfghw8
  • 浏览: 39519 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

载入swf自获舞台的宽高

阅读更多

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
分享到:
评论

相关推荐

    FLASH载入图片并自动轮换显示

    在本项目中,"FLASH载入图片并自动轮换显示"是一个典型的动态图像展示功能,常见于在线相册或数字媒体展示中。该效果通过Adobe Flash实现,利用其强大的动画和交互能力,创建出平滑的图片滑动效果,为用户提供...

    flash+xml做的xml方式载入图片自动轮换显示

    这个"lcy flash+xml做的xml方式载入图片自动轮换显示"压缩包很可能是包含了一个已经实现上述功能的Flash项目,包括SWF文件和示例XML数据。通过研究这个项目,开发者可以学习如何将Flash与XML集成,以及如何创建动态...

    xml方式载入图片自动轮换显示

    5. 最后,确保在Flash发布设置中启用ActionScript 3.0,然后导出SWF文件,与XML文件一起部署到服务器上,浏览器加载SWF时,Flash应用程序将从XML文件中读取数据并显示自动轮换的图片。 通过这种方式,XML与Flash的...

    AS3苹果菜单XML载入图片展示效果

    在Flash环境中,我们可以创建电影剪辑(MovieClip)或图形(Shape)对象,这些对象可以在舞台上显示和交互。类中的方法和属性负责创建、布局和操作这些舞台对象。 3. **图片加载**:菜单中的每个项目通常包含一个...

    AS3.0载入flv播放并侦听.zip

    Flash Player是Adobe开发的浏览器插件,能够播放FLV视频以及其他类型的SWF内容。在AS3.0中,我们可以利用Flash Player的功能来播放和控制FLV文件。 二、加载FLV文件 加载FLV文件通常涉及到使用Flash Player的...

    flash网页 loading..

    1. **创建Flash文档**:在Flash环境中,设计师会创建一个新的Flash文档,设置舞台大小、帧率和背景色等基本属性,为Loading界面打下基础。 2. **设计加载动画**:利用Flash的绘图工具和动画功能,设计师可以制作出...

    flash常用函数[归类].pdf

    1. 载入进度监控:通过`getBytesLoaded()`和`getBytesTotal()`监控载入进度,可以创建动态的加载提示。例如,创建一个显示百分比的加载条。 2. 弹出小窗口:通过JavaScript交互,如`on(release) {getURL(...

    带排序功能的Flash图片展示.rar

    ActionScript使得开发者可以控制舞台上的对象,如图片、音频和动画,以及实现各种交互逻辑,如图片的载入、播放音效和排序功能。 图片载入:项目中提到图片是“一张一张载入”的,这意味着ActionScript中使用了...

    as3.0 人物行走源码

    2. **载入资源**:使用`Loader`类加载这些图片,并将它们添加到舞台上。 3. **创建动画类**:自定义一个类,如`CharacterAnimation`,负责处理动画的播放。可以使用`enterFrame`事件或`Timer`类来控制动画帧的切换...

    flash学习笔记

    Flex 基本上是靠组件吃饭的,flash 要和 flex 结合使用,当然是体现在效果显示上,把 flash 制作的 swf,放到 flex 工程的 src 包里面,然后在 flex 里面用 Image SWFLoader 之类的组件载入这个 swf,小玩意小项目用...

    Flash 常用 ActionScript 速查手册

    ### Flash 常用 ActionScript 速查手册 在Flash动画制作过程中,ActionScript作为...此外,随着技术的发展,虽然Flash已逐渐退出历史舞台,但了解这些基础知识对于理解早期Web动画的发展历程仍然具有一定的参考价值。

    Flash脚本代码大全

    11. **If Frame Is Loaded(判断帧是否被完全载入)** - 功能:检查特定的帧是否已经完全加载完成。 - 示例:`if (isLoaded(frameLabel)) { /* 执行代码 */ }` 12. **On Mouse Event(鼠标事件)** - 功能:监听...

    flash shiti

    4. Library 中有一元件Symbol 1,舞台上有一个该元件的实例。现通过实例属性检查器将该实 例的颜色改为#FF0033,透明度改为80%。请问此时Library 中的Symbol 1 元件将会发生什么 变化? □ A. 颜色也变为#FF0033 □ ...

    ActionScript3.0.pdf

    - **载入或嵌入内容**:动态加载外部资源或预先嵌入到SWF文件中。 #### 9. 运动控制与物理模拟 - **速度和加速度**: - **向量**:表示方向和大小的数学概念。 - **速度**:物体移动的速度。 - **加速度**:速度...

    ActionScript开发技术大全

    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...

    flex_Actionscript3

    - **载入内容**:动态地加载资源到舞台上。 - **嵌入内容**:将资源直接嵌入到SWF文件中。 #### 五、基本运动 ##### 5.1 速度 - **向量和速度**:使用向量表示物体的速度。 - **一个轴上的速度**:只考虑单个方向...

Global site tag (gtag.js) - Google Analytics