仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 760|回复: 7
打印 上一主题 下一主题

[学习教程] 来一发Flash加载内部文件创立进度条3种办法-Flash actionscript

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:56:46 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
借助令人兴奋的全新3D平移和旋转工具,通过3D空间为2D对象创作动画,您可以沿x、y、z轴创作动画。
加载内部文件的进度条(看匡助文档收拾),只合适那些不肯看匡助文档的老手。我只不外加了一些正文。
为加载图象文件或SWF文件创立进度条
创立一个名为loadImage.fla的新Flash文档。
选择"修正">"文档",在宽度文本框中键进700,在高度文本框中键进500,从而变动文档的尺寸。
在工夫轴当选择第1帧,然后在"举措"面板中键进上面的代码://创立剪辑来承载您的内容
this.createEmptyMovieClip("progressBar_mc",0);
progressBar_mc.createEmptyMovieClip("bar_mc",1);
progressBar_mc.createEmptyMovieClip("stroke_mc",2);
//创立进度框
with(progressBar_mc.stroke_mc){
lineStyle(0,0x000000);
moveTo(0,0);
lineTo(100,0);
lineTo(100,10);
lineTo(0,10);
lineTo(0,0);
}
//创立进度条
with(progressBar_mc.bar_mc){
beginFill(0xFF0000,100);
moveTo(0,0);
lineTo(100,0);
lineTo(100,10);
lineTo(0,10);
lineTo(0,0);
endFill();
_xscale=0;
}
//进度坐标
progressBar_mc._x=2;
progressBar_mc._y=2;
//加载进度
varmclListener:Object=newObject();
//入手下手加载时进度条缩放为0
mclListener.onLoadStart=function(target_mc:MovieClip){
progressBar_mc.bar_mc._xscale=0;
};
//在加载过程当中进度条举行缩放
mclListener.onLoadProgress=function(target_mc:MovieClip,bytesLoaded:Number,bytesTotal:Number){
progressBar_mc.bar_mc._xscale=Math.round(bytesLoaded/bytesTotal*100);
};
//加载完成落后度移除
mclListener.onLoadComplete=function(target_mc:MovieClip){
progressBar_mc.removeMovieClip();
};
//当实行加载的剪辑的第一帧上的举措时挪用(这里设置加载的内部文件的宽高设置)
mclListener.onLoadInit=function(target_mc:MovieClip){
target_mc._height=500;
target_mc._width=700;
};
//创立一个剪辑来承载图象。
this.createEmptyMovieClip("image_mc",100);
varimage_mcl:MovieClipLoader=newMovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.helpexamples.com/flash/images/gallery1/images/pic3.jpg",image_mc);
为加载MP3文件创立进度条
创立一个名为loadSound.fla的新Flash文档。
在工夫轴当选择第1帧,然后在"举措"面板中键进上面的代码:
//设置宽高变量
varpb_height:Number=10;
varpb_width:Number=100;
//在影片剪辑pb中创立进度
varpb:MovieClip=this.createEmptyMovieClip("progressBar_mc",this.getNextHighestDepth());
//在影片剪辑pb中创立进度条
pb.createEmptyMovieClip("bar_mc",pb.getNextHighestDepth());
//在影片剪辑pb中创立进度条右侧直线
pb.createEmptyMovieClip("vBar_mc",pb.getNextHighestDepth());
//在影片剪辑pb中创立进度框
pb.createEmptyMovieClip("stroke_mc",pb.getNextHighestDepth());
//在影片剪辑pb中创立静态文本
pb.createTextField("pos_txt",pb.getNextHighestDepth(),0,pb_height,pb_width,22);
//影片剪辑pb的坐标设置
pb._x=100;
pb._y=100;
//画进度条
with(pb.bar_mc){
beginFill(0x00FF00);
moveTo(0,0);
lineTo(pb_width,0);
lineTo(pb_width,pb_height);
lineTo(0,pb_height);
lineTo(0,0);
endFill();
_xscale=0;
}
//画进度条右侧直线
with(pb.vBar_mc){
lineStyle(1,0x000000);
moveTo(0,0);
lineTo(0,pb_height);
}
//画进度框
with(pb.stroke_mc){
lineStyle(3,0x000000);
moveTo(0,0);
lineTo(pb_width,0);
lineTo(pb_width,pb_height);
lineTo(0,pb_height);
lineTo(0,0);
}
//设置一些变量
varmy_interval:Number;
varmy_sound:Sound=newSound();
//加载声响主动挪用
my_sound.onLoad=function(success:Boolean){
if(success){
trace("soundloaded");
}
};
//声响播放终了时挪用
my_sound.onSoundComplete=function(){
clearInterval(my_interval);
trace("Clearedinterval");
}
//加载声响路径
my_sound.loadSound("http://www.helpexamples.com/flash/sound/song2.mp3",true);
//每隔必定工夫就挪用上面的updateProgressBar函数
my_interval=setInterval(updateProgressBar,100,my_sound);
functionupdateProgressBar(the_sound:Sound):Void{
//设置声响进度(声响已播放工夫除以声响总工夫乘以100)
varpos:Number=Math.round(the_sound.position/the_sound.duration*100);
//进度条举行缩放
pb.bar_mc._xscale=pos;
//进度条右侧直线的X坐标即是进度条的宽
pb.vBar_mc._x=pb.bar_mc._width;
//静态文本显现进度
pb.pos_txt.text=pos+"%";
}
为加载视频创立进度条
创立一个名为flvProgress.fla的新FLA文件。
在"库"面板("窗口">"库")中,从"库"弹出菜单当选择"新建视频"。
在"视频属性"对话框中,为视频元件定名并选择"视频"(由Actionscript把持)。
单击"断定",创立一个视频工具。
将该视频工具从"库"面板拖动到舞台上,以创立视频工具实例。
使视频工具在舞台上坚持选中形态,在属性反省器("窗口">"属性">"属性")中的"实例称号"文本框中键进my_video。
使视频实例坚持选中形态,在宽度文本框中键进320,在高度文本框中键进213。
在工夫轴当选择第1帧,然后在"举措"面板中键进上面的代码:
//创立NetConnection工具,您能够将该工具与NetStream工具一同利用来播放视频流(FLV)文件
varconnection_nc:NetConnection=newNetConnection();
关于此参数,必需传送null
connection_nc.connect(null);
创立可用于经由过程指定的NetConnection工具播放FLV文件的流
varstream_ns:NetStream=newNetStream(connection_nc);
//指定将在舞台上的Video工具的界限内显现的视频流
my_video.attachVideo(stream_ns);
//播放内部视频(FLV)文件
stream_ns.play("http://www.helpexamples.com/flash/video/typing_short.flv");
//创立静态文本(显现进度)
this.createTextField("loaded_txt",this.getNextHighestDepth(),10,10,160,22);
//创立进度影片剪辑
this.createEmptyMovieClip("progressBar_mc",this.getNextHighestDepth());
//在进度影片剪辑中创立进度条
progressBar_mc.createEmptyMovieClip("bar_mc",progressBar_mc.getNextHighestDepth());
//画进度条
with(progressBar_mc.bar_mc){
beginFill(0xFF0000);
moveTo(0,0);
lineTo(100,0);
lineTo(100,10);
lineTo(0,10);
lineTo(0,0);
endFill();
_xscale=0;
}
//在进度影片剪辑中创立进度框
progressBar_mc.createEmptyMovieClip("stroke_mc",progressBar_mc.getNextHighestDepth());
//画进度框
with(progressBar_mc.stroke_mc){
lineStyle(0,0x000000);
moveTo(0,0);
lineTo(100,0);
lineTo(100,10);
lineTo(0,10);
lineTo(0,0);
}
//每隔必定工夫就挪用上面的checkBytesLoaded函数
varloaded_interval:Number=setInterval(checkBytesLoaded,500,stream_ns);
functioncheckBytesLoaded(my_ns:NetStream){
//进度值设置
varpctLoaded:Number=Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100);
//静态文本显现进度
loaded_txt.text=Math.round(my_ns.bytesLoaded/1000)+"of"+Math.round(my_ns.bytesTotal/1000)+"KBloaded("+pctLoaded+"%)";
//进度条举行缩放
progressBar_mc.bar_mc._xscale=pctLoaded;
//加载完成后扫除距离
if(pctLoaded>=100){
clearInterval(loaded_interval);
}
}

将多个Flash作品转化为屏保程序。◇所生成的屏保程序能进行全屏预览、窗口预览、设置密码等操作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-13 15:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表