惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
SecWiki News
SecWiki News
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
K
Kaspersky official blog
T
The Exploit Database - CXSecurity.com
腾讯CDC
Scott Helme
Scott Helme
I
InfoQ
Cyberwarzone
Cyberwarzone
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Security Latest
Security Latest
The Register - Security
The Register - Security
Project Zero
Project Zero
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
C
Cisco Blogs
L
LINUX DO - 热门话题
P
Privacy International News Feed
IT之家
IT之家
U
Unit 42
P
Privacy & Cybersecurity Law Blog
H
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Palo Alto Networks Blog
F
Full Disclosure
宝玉的分享
宝玉的分享
Simon Willison's Weblog
Simon Willison's Weblog
L
Lohrmann on Cybersecurity
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
PCI Perspectives
PCI Perspectives
Hugging Face - Blog
Hugging Face - Blog
AWS News Blog
AWS News Blog
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
Recent Announcements
Recent Announcements
Forbes - Security
Forbes - Security
Cisco Talos Blog
Cisco Talos Blog

博客园 - symjie

每天学一点AS3.0(五)---声音的控制(5) 每天学一点AS3.0(四)---声音的控制(4) 每天学一点AS3.0(三)---声音的控制(3) 每天学一点AS3.0(二)---声音的控制(2) Jquery json的超强组合 - symjie - 博客园 javascript分页程序 - symjie - 博客园 初试jquery制作一个简单的loading delegate——委派 - symjie - 博客园 sql 分页 Ajax.net和GridView交互 Ajax.net实现loading登陆的效果 - symjie - 博客园 Ajax.net+模态窗口的登陆简单例子 GridView自定义分页(vb) - symjie - 博客园 用下拉列表控制gridview的分页 DataView数据组件 (转) c#冒泡程序 Atlas学习笔记 getElementByTagsName和相关函数的学习 基于Ajax.net的验证
每天学一点AS3.0(一)---声音的控制
symjie · 2010-05-02 · via 博客园 - symjie

   今天突然间发现,自己荒废了好久的Flash了,今天开始慢慢的复习并进一步学习一下,今天开始关于声音的学习。

1,加载库中的声音
   文件--》导入---》导入到库
2,加载本地的声音
   在第一帧处写代码:
代码

  //URLRequest类是用来制定要加载的地址,此时的地址是本地地址
   var url:URLRequest=new URLRequest(string url);
   
//声明一个声音对象
   var sound:Sound=new Sound();
   
//通过load方法把url加载的声音加载到Sound对象里面
   sound.load(url);
   
//播放
   sound.play();

3,加载远程的声音
   在第一帧处写代码:  

代码

//URLRequest类是用来制定要加载的地址,此时的url为http地址
   var url:URLRequest=new URLRequest(string url);
   
//声明一个声音对象
   var sound:Sound=new Sound();
   
//通过load方法把url加载的声音加载到Sound对象里面
   sound.load(url);
   
//播放
   sound.play();

4,加载进度

首先,要知道进度是如何计算的。
   公式:进度=已经加载过的字节/总共的字节数
   那么现在我们就要知道已经加载的自己怎么获得,总共的字节数怎么获得
   1,通过sound的属性来获得
      sound.bytesLoaded:获得已经加载的字节数
      sound.bytesTotal:获得总共的字节数
   2, 添加一个新层命名为“显示进度”,在第一帧处添加一个动态文本命名为jd_txt
   3,在as层的第一帧处写代码:

代码

//URLRequest类是用来制定要加载的地址,此时的url为http地址
var url:URLRequest=new URLRequest("http://121.28.24.122/blog/eb/upload/audio1/20090422/hahaxiao_1240364607390.mp3");
 
//声明一个声音对象
var sound:Sound=new Sound();
//通过load方法把url加载的声音加载到Sound对象里面
sound.load(url);
//给声音对象添加加载中事件
sound.addEventListener(ProgressEvent.PROGRESS,jz);
 
//给声音对象添加加载完成后的事件
function jz(e){
    var jd:Number
=Math.round((sound.bytesLoaded/sound.bytesTotal)*100);
    jd_txt.text
="加载"+jd+"%";
}

测试影片,效果如下:

知识点:

1,对于Sound对象存在方法,属性和事件,对于方法和属性就不需要过多的解释,最重要的是事件

对于Sound对象的事件如下:

上面的表格就显示了Sound对象的5个事件,最为常用的事件有complete,ioError,progress个事件

上面的列子中,我们用到的是progress事件,通过Sound对象的addEventListener方法添加事件,参数有两个,

一个是ProgressEvent.PROGRESS,一个是jz,第一个参数是事件类型,第二个是事件执行函数。

在定义jz函数的时候,注意要有一个参数e,这个e就是产生事件的相关信息,这个函数可以有两个写法:

function jz(e){
    ....
}
//或者
function jz(Event:ProgressEvent){
    ....
}

使用哪一个都一样的。

今天到此结束,下一会,我们添加一个进度条!