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();
}f

flash制作swf播放器相关推荐

  1. android swf 播放器代码,Android Flash swf播放器源码(2016),技术稳定可以商用—— BY softboy...

    Android Flash swf播放器源码(2016) 为什么说标题加上2016? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...

  2. android swf 播放器代码,Android Flash swf播放器源码(2019)

    Android Flash swf播放器源码(2019) 为什么说标题加上2019? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...

  3. android10版本怎么实现swf播放,swf播放器怎么用?swf播放器安卓版使用教程

    SWF播放器怎么用呢?swf播放器是一款*客户端运行时的播放器,能够应用在各种浏览器.操作系统和移动设备上;具体swf播放器怎么用,我们一起来了解一下. swf播放器是安卓上一款flash播放器,与其 ...

  4. html网页转换swf格式,[转]html网页 swf播放器使用代码

    可加装广告的swf播放器JS代码 加载flash动画前可以加载代码,设定广告显示秒数这些,还有些小bug,等有空了修复好法上来给大家​​ 1. [代码][Java]代码/p> (原创)jQuer ...

  5. html使用vcastr3.swf播放器播放flv视频

    一.特点: 使用as3.0重新写了播放器 播放器大小缩小,在20+k左右 可以通过xml对播放器设置 可以播放多个影片,并且有影片列表 可以设置循环播放,自动播放,是否直接开始下载,控制栏的颜色和模式 ...

  6. 基于Arduino Uno开发板制作音乐播放器

    基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...

  7. 使用AVPlayer制作一个播放器

    代码地址如下: http://www.demodashi.com/demo/11685.html AVPlayer 是一个强大的视频播放器,可以播放多种格式的视频,缺点是没有控制界面,需要自己去实现. ...

  8. 制作一个播放器(二)

    制作一个播放器(一) 制作一个播放器(二) 接着上一章的热身,咱们继续写播放器.上一篇中咱们用的是句柄的方式来播放视频.实际开发中,我们更多的是把数据给回调出来,这样更好的去显示视频,处理视频.这期, ...

  9. 播放器地址抓取 php,从优酷土豆视频地址中获取swf播放器分享地址 - PHP示例代码...

    从优酷土豆视频地址中获取swf播放器分享地址 - PHP示例代码 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/10/27 由于最近项目开发中遇到视频分享的功能,以下简单 ...

最新文章

  1. C语言之父,UNIX之父丹尼斯·里奇去世 享年70岁
  2. 第七阶段 jsp(369---el---jstl)
  3. MPU6050开发 -- Linux下测试
  4. java中gc的认识,java JVM GC 笔记(个人对GC 或JVM 的了解)
  5. dell 重装linux系统_U盘装系统开机按哪个键
  6. 你试过一个人旅游吗?去了哪里?
  7. 解决Eclipse编译web项目失败问题
  8. CSS-解决inline-block空隙的最好方法
  9. 20180925-1 每周例行报告
  10. python获取淘宝服务器时间_分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api...
  11. css子元素选择父元素的实现
  12. 沃德移动尾气净化设备监控管理系统
  13. 手机上好用的APP推荐
  14. 面试总结(四)——如涵
  15. C++/C语言中十进制转二进制的常见方法
  16. 【BZOJ 4605】崂山白花蛇草水 替罪羊树套线段树
  17. 拨号vps为什么会掉线
  18. 数据结构实践——猴子选大王
  19. docker network create: conflicts with network
  20. springboot+mybatis+Oauth2 +vue 框架实现登录认证

热门文章

  1. 一个后端童鞋步入 vue 深渊引发的惨案: VSCode Vue开发 目录下多个路由访问重叠不生效问题解决
  2. C#网络编程复习资料
  3. 第 5 届 FEDAY 前端大会的完整 PPT 内容已出炉-站在大牛的肩膀上学习
  4. android 百度地图h5,【分享】H5 地理信息定位+百度地图
  5. Elasticsearch-Sql+Mybatis+SpringBoot集成
  6. 数智化浪潮中,IT部门如何实现变革?
  7. 谁能想到微软CRM也能用上SliverLight?——微软CRM炫酷介绍之二
  8. 如何利用python刷微博粉丝最多的明星_明星微博粉丝究竟有多少是真的?
  9. Android画中画模式-看这篇就够啦
  10. SOW/Statement of Work 工作说明书