- 浏览: 122118 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zhouhaiyang88:
huang-tao 写道你好,在吗?请问,我启动Tomcat时 ...
ActiveMq-JMS简单实例使用tomcat -
xurichusheng:
huang-tao 写道你好,在吗?请问,我启动Tomcat时 ...
ActiveMq-JMS简单实例使用tomcat -
wgcooo:
javax.naming.NameNotFoundExcept ...
ActiveMq-JMS简单实例使用tomcat -
huang-tao:
你好,在吗?请问,我启动Tomcat时报如下错,是什么原因?= ...
ActiveMq-JMS简单实例使用tomcat -
Eric.Yan:
好文章,明天试一试
ActiveMq-JMS简单实例使用tomcat
以前为了赶项目,利用系统组件制作过一款视频播放器(见Flash/Flex学习笔记(6):制作基于xml数据源的flv视频播放器),但是系统组件实在是太大了,最终生成的swf居然有103K,随着AS3的深入学习,昨天又弄了一个只用AS3的播放器,最终只有8.82K,呵呵,这肥减得那是相当厉害。
用到了上一篇(Flash/Flex学习笔记(35):自己动手实现一个滑块控件(JimmySilder))里自己写的的滑块控件,主要代码如下(关键是NetConnection与NetStream对象的使用):
import Jimmy.Event.ValueChangeEvent;
var _autoPlay:Boolean=
true
;
//是否自动播放
var _netConn:NetConnection;
var _netStream:NetStream;
var _duration:Number=0.0;
var _client:Object;
var _soundTransform:SoundTransform;
var _volumn=0.6;
//初始音量
var _flvUrl =
"flv的地址"
;
function init():
void
{
txtInfo.text =
""
;
txtInfo.visible =
false
;
txtCurrent.text =
"00:00"
;
txtTotal.text =
"00:00"
;
silderVideo.Value = 0.0;
videoMask.visible =
false
;
txtPercent.text =
""
;
txtPercent.visible =
false
;
_netConn =
new
NetConnection();
//创建连接
_client =
new
Object();
_soundTransform =
new
SoundTransform();
//初始化[暂停]/[播放]按钮可见性
if
(_autoPlay) {
btnPause.visible=
true
;
btnPlay.visible=
false
;
}
else
{
btnPause.visible=
false
;
btnPlay.visible=
true
;
}
//初始化滑块按钮宽度
silderSound.ButtonWidth=35;
silderVideo.ButtonWidth=9.5;
silderSound.Value = _volumn;
silderSound.ShowBarTri =
true
;
silderSound.ShowBar =
false
;
//开始连接并播放
_netConn.connect(
null
);
_netStream=
new
NetStream(_netConn);
_netStream.bufferTime = 5;
wVideo.attachNetStream(_netStream);
_netStream.play(_flvUrl);
_soundTransform.volume=_volumn;
_netStream.soundTransform=_soundTransform;
_client.onMetaData = MetaDataHandler;
_netStream.client=_client;
//注册监听事件
_netStream.addEventListener(NetStatusEvent.NET_STATUS,NetStatusHandler);
btnSound.addEventListener(MouseEvent.MOUSE_OVER,function(){ Mouse.cursor = MouseCursor.BUTTON});
btnSound.addEventListener(MouseEvent.MOUSE_OUT,function(){ Mouse.cursor = MouseCursor.AUTO});
btnSound.addEventListener(MouseEvent.MOUSE_DOWN,btnSoundMouseDown);
btnPlay.addEventListener(MouseEvent.CLICK,btnPlayMouseClick);
btnPause.addEventListener(MouseEvent.CLICK,btnPauseMouseClick);
btnStop.addEventListener(MouseEvent.CLICK,btnStopMouseClick);
silderSound.addEventListener(ValueChangeEvent.VALUE_CHANGE,VolumnChangedHandler);
addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
silderVideo.addEventListener(MouseEvent.MOUSE_DOWN,silderVideoMouseDown);
silderVideo.addEventListener(ValueChangeEvent.VALUE_CHANGE,VideoValueChangedHandler);
}
function NetStatusHandler(e:NetStatusEvent):
void
{
txtInfo.text =
""
;
videoMask.visible = txtPercent.visible = txtInfo.visible =
false
;
trace(e.info.code);
switch
(e.info.code){
case
"NetStream.Play.StreamNotFound"
:
txtInfo.text =
"错误:视频文件地址无法访问"
break
;
case
"NetStream.Play.Failed"
:
txtInfo.text =
"错误:视频播放失败"
break
;
case
"NetStream.Buffer.Empty"
:
txtInfo.text =
"影片缓冲中..."
;
break
;
case
"NetStream.Play.Stop"
:
//txtInfo.text = "播放已停止";
break
;
case
"NetStream.Seek.InvalidTime"
:
//txtInfo.text = "错误:无法跳到指定的时间点播放";
//trace(e.info.Error);
//_netStream.pause();
//btnPlay.visible = true;
//btnPause.visible = false;
break
;
default
:
break
;
}
if
(txtInfo.text.length>0){
videoMask.visible = txtPercent.visible = txtInfo.visible =
true
;
}
}
function btnSoundMouseDown(e:MouseEvent) {
var i:
uint
=btnSound.currentFrame;
if
(i==1) {
btnSound.gotoAndStop(2);
//切换到静音
SetVolumn(0);
}
else
{
btnSound.gotoAndStop(1);
//切换到有声音
SetVolumn(silderSound.Value);
}
}
//设置音量
function SetVolumn(vol:Number):
void
{
var _snd:SoundTransform = _netStream.soundTransform;
_snd.volume = vol;
_netStream.soundTransform = _snd;
}
//Play按钮点击事件
function btnPlayMouseClick(e:MouseEvent) {
//切换按钮可用性
btnPause.visible=
true
;
btnPlay.visible=
false
;
//开始播放...
_netStream.resume();
}
//Pause按钮点击事件
function btnPauseMouseClick(e:MouseEvent) {
//切换按钮可用性
btnPause.visible=
false
;
btnPlay.visible=
true
;
//暂停...
_netStream.pause();
}
//Stop按钮点击事件
function btnStopMouseClick(e:MouseEvent) {
_netStream.pause();
_netStream.seek(0);
//切换播放/暂停按钮状态
btnPause.visible=
false
;
btnPlay.visible=
true
;
}
//获取视频总持续时间
function MetaDataHandler(data:Object) {
_duration = data.duration;
}
function VolumnChangedHandler(e:ValueChangeEvent):
void
{
//如果没被禁音,则允许调节音量
if
(btnSound.currentFrame==1){
SetVolumn(e.NewValue);
}
}
function VideoValueChangedHandler(e:ValueChangeEvent):
void
{
_netStream.pause();
_netStream.seek(e.NewValue * _duration);
//_netStream.resume();
}
//进入每帧的处理函数
function EnterFrameHandler(e:Event):
void
{
if
(_duration>0){
txtCurrent.text = Math.floor(_netStream.time/60) +
":"
+ Math.round(_netStream.time%60);
txtTotal.text = Math.floor(_duration/60) +
":"
+ Math.round(_duration%60);
silderVideo.Value = _netStream.time/_duration;
}
if
(_netStream.bytesLoaded>0){
silderVideo.LoadingValue = _netStream.bytesLoaded / _netStream.bytesTotal;
}
//trace(_netStream.bytesLoaded + "/" + _netStream.bytesTotal);
}
function RemoveEnterFrameHandler(){
if
(silderVideo.IsDragging){
removeEventListener(Event.ENTER_FRAME,EnterFrameHandler);
}
else
{
addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
}
}
function silderVideoMouseDown(e:MouseEvent):
void
{
//trace("进度滑块被点击了!");
removeEventListener(Event.ENTER_FRAME,EnterFrameHandler);
stage.addEventListener(MouseEvent.MOUSE_UP,stageMouseUpHandler);
}
function stageMouseUpHandler(e:MouseEvent):
void
{
addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
//trace("鼠标MouseUp事件");
if
(btnPause.visible){
_netStream.resume();
}
stage.removeEventListener(MouseEvent.MOUSE_UP,stageMouseUpHandler);
}
init();
发表评论
-
Flash/Flex学习笔记(50):矩阵变换
2011-04-24 13:52 1163先回顾一下Silvelright中的矩阵变换[转]WPF中的M ... -
Flash/Flex学习笔记(49):背面剔除与 3D 灯光
2011-04-24 13:50 974今天继续:上一回Flash/Flex学习笔记(50):3D线条 ... -
Flash/Flex学习笔记(48):迷你滚动条ScrollBar
2011-04-24 13:46 1063先看最终效果: 整个swf最终不到4k, ... -
Flash/Flex学习笔记(47):利用FMS快速创建一个文本聊天室
2011-04-24 13:45 995先来看客户端fla的构成: 第一帧:登录界面 第一帧的 ... -
Flash/Flex学习笔记(46):使用TweenLite
2011-04-24 13:43 1676TweenLite是第三方出品的专用于各种缓动动画的类库,其性 ... -
Flash/Flex学习笔记(45):3维旋转与透视变换(PerspectiveProjection)
2011-04-24 13:41 1210Flash/Flex学习笔记:3D基础 里已经介绍了3D透 ... -
Flash/Flex学习笔记(44):3D线条与填充
2011-04-24 13:39 10983D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个 ... -
Flash/Flex学习笔记(43):3D基础
2011-04-24 13:34 1143之前我们所做的动画都 ... -
Flash/Flex学习笔记(42):反向运动学(下)
2011-04-24 13:30 917先要复习一下三角函数与余弦定理: 对于直角三角形,三边长 ... -
Flash/Flex学习笔记(41):反向运动学(上)
2011-04-24 13:29 940先回顾上篇所说的"正向运动学":以人行 ... -
Flash/Flex学习笔记(40):正向运动学
2011-04-24 13:27 883所谓"正向运动学"通俗点讲就是把几个连接部 ... -
Flash/Flex学习笔记(39):万有引力与粒子系统
2011-04-24 13:26 724万有引用公式: 其中G为万有引力常数 var numP ... -
Flash/Flex学习笔记(38):动量守恒与能量守恒
2011-04-24 13:24 942动能公式: 动量公式: 动量守恒: 能量守恒: ... -
Flash/Flex学习笔记(37):坐标旋转
2011-04-24 13:23 1020坐标旋转是个啥概念呢? 如上图,(蓝色)小球 绕某一 ... -
Flash/Flex学习笔记(36):碰撞检测
2011-04-24 13:22 606碰撞检测基本上可能分为二类:对象与对象的碰撞检测、对象与点 ... -
Flash/Flex学习笔记(35):弹性运动续--弹簧
2011-04-24 13:21 767上一篇里演示的弹性运动加上摩擦力因素后,物体最终基本上都会比较 ... -
Flash/Flex学习笔记(34):弹性运动
2011-04-24 13:20 772动画中的弹性运动 从视觉效果上接近 物理经典力学中的单摆运 ... -
Flash/Flex学习笔记(33):缓动动画
2011-04-24 13:18 998缓动 与 匀变速 看上去很类似,但其实有区别: 匀变速的 ... -
Flash/Flex学习笔记(31):自己动手实现一个滑块控件(JimmySilder)
2011-04-24 13:15 966先看最终的演示: 滑块条的应用实在太广泛了:mp3播放器中声 ... -
Flash/Flex学习笔记(30):如何正确监听Stage对象的事件
2011-04-24 13:13 1295如果想在一个自定义类中注册对stage对象的监听事件,然后在另 ...
相关推荐
* 铜:8.82kJ/Kg℃ * 软木:0.252kJ/Kg℃ * 棉:1.51kJ/Kg℃ * 棉籽油:0.951kJ/Kg℃ * 导热姆 A:0.992kJ/Kg℃ * 导热姆 C:1.11kJ/Kg℃ * 7-2:2.72kJ/Kg℃ * 乙二酸:1.112kJ/Kg℃ * 脂肪酸-软脂:0.852...
nfs-subdir-external-provisioner:v4.0.2 镜像文件
SAP Business One8.82新增功能
标题“LGS-8.82.151-x64-Logitech”指的是罗技游戏软件的一个特定版本,LGS(Logitech Gaming Software),它适用于64位的Windows操作系统。这个版本号“8.82.151”表明它是软件的一个更新迭代,可能包含了性能优化...
Fresh UI是一款功能强大的系统配置优化工具,最新版本为v8.82,旨在帮助用户根据个人喜好和需求调整Windows操作系统的界面与性能。这款软件提供了丰富的选项,让用户能够深入到系统的各个角落,进行个性化的定制和...
3. (-3 61 )+(-3 32 )=(-6 93 ) 知识点:有理数的加法运算 4. (-3.5)+(-5.32)=-8.82 知识点:有理数的加法运算 ... 二、计算 1. 31328÷43=726 知识点:有理数的除法运算 2. 4÷81=0.05 知识点:有理数的除...
### ERP操作手册知识点详解 #### 一、概览 本操作手册主要针对的是SAP Business One系统...通过以上内容的学习,使用者可以较为全面地了解SAP Business One的基本安装过程与常见操作,从而快速上手并有效利用该系统。
同花顺手机炒股 v8.82.01 版本:8.82.01 软件语言:中文 软件类别:股票 软件大小:14.43 MB 适用固件:1.5及更高固件 内置广告:有广告 适用平台:Android 同花顺一直是最受欢迎的手机炒股软件,曾荣获行业风向...
【标题】"托普Top编程器软件8.82"是指一种专用于编程微控制器的软件工具,由托普公司开发。这个版本是8.82,表明它是该软件的一个更新迭代,通常会包含错误修复、性能提升以及可能的新功能。 【描述】提到的“支持...
干净卸载3d软件,包括3dmax,maya等等等,不需要重装系统 干净卸载3d软件,包括3dmax,maya等等等,不需要重装系统
JAVA_OPTS="-Djava.rmi.server.hostname=172.16.8.82 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8765 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote....
xfplay8.82
【传承8.82版】是一款备受关注的软件版本,其在网络安全领域有着显著的提升,特别是对于防止恶意刷屏和攻击方面表现出色。这款官方原版确保了用户能够获得未经篡改的纯净体验,避免了第三方修改可能导致的安全隐患。...
1.安装文件夹8.82 2.选择安装组件 注:server tools 安装license服务器用 MS outlook 安装邮件程序 3.下一步 4.填写userid 注:无具体要求,可任意填写。 5.license服务器制定 注:password为lic服务器...
TCG CMS System 是一个基于ASP.NET和MSSQL的建站系统,系统以资讯为主,实现了全站静态文件生成,无限资讯分类,文章模版按分类设置,即各个分类采用不同的文本模式,资讯模版实现无限嵌套,即在模版中可以使用模版...
SAP Business One 8.82的新增功能
- **地理位置**:阜阳市南机场路与老202省道交叉处至桩号k214+450 - **全长**:8.82公里 - **主要工程量**: - 桥梁长度:91米 - 路基挖方:27,603立方米 - 路基填方:291,708立方米 - 10%石灰土底基层:46,393....
在系统“生产”模块增加BOM版本管理功能;版本化管理各成品、半成品物料清单;引入激活时间,支持与系统自带“物料清单”的手动推送和自动同步,其它具体功能可查看资源中说明文档。 说明: 1.本Addon仅供学习和...
通过上述内容可以看出,《SAP Business One》硬件需求指南为用户提供了详细的操作系统与数据库兼容性信息,并且随着时间的发展不断更新,确保了SAP Business One系统的稳定运行。此外,该文档还明确了各种文本格式的...
罗技g103是一款非常好用的游戏键盘,用户安装好键盘驱动程序以后,即可对6个编程按键进行自定义的调节和控制,在玩游戏时更加得心应手,欢迎有需要的朋友下载使用!官方介绍罗技G103游戏键盘,操作精确至毫秒,响应...