来一发把握Flash技能:纯ActionScript的Loading效果四例
Macromedia公司已经承诺在Flash8中将有很大的变化,而且它们中的许多都与视频功能有关。媒介:略微年夜一些的Flash作品在播放之前城市有一个Loading预载画面,这思索到收集的速率,当地扫瞄不必要守候下载,但传到网上,由于每一个用户的网速分歧,以是很有需要在我们的作品中到场Loading画面,之前,已有良多教程是关于Loading制造办法的,明天我们给读者报告四个纯AS的Loading效果,不懂AS的菜鸟或“代码盲”乃至能够间接复制教程中的代码到本人的作品中,懂AS代码的伴侣,能够细心浏览这些代码,从中学到更多的AS常识,或由此引伸出更多的ASLoading效果……感激作者=棉花糖=、egg616、小郎供应源码和思绪--闪客帝国的叶子
一.=棉花糖=的Loading教程
对照大略
静态显现load百分比
将全体代码拷贝到第一帧,当load终了后,会主动入手下手播放
源代码:
stop();
_root.createTextField("myload_txt",1,0,0,0,0);
with(_root.myload_txt){//设置文本
background=true;//文本框是不是有背景
backgroundColor=0x336699;//文本框的背景色彩
textColor=0xFFFFFF;//文本字段中文本的色彩
type="dynamic"//文本字段为静态文本
selectable=false;//文本是不是可选
autoSize="center";//把持文本字段的主动巨细调剂和对齐
_x=Stage.width/2;//文本字段的横坐标
_y=Stage.height/2;//文本字段的纵坐标
}
onEnterFrame=function(){
varLoaded=_root.getBytesLoaded();
varTotal=_root.getBytesTotal();
_root.myload_txt.text=Math.floor((Loaded/Total)*100)+"%";
if(Loaded==Total){
onEnterFrame=null;
removeMovieClip(_root.myload_txt);
play();
}
};
二.egg616的Loading艺术之一
1、制造道理:
天下上一切的loading也许都能够分为三个部分:
1)打造一个轮回,用于更新数据。一样平常来讲有两种办法,一种是做成二帧,在第二帧顶用gotoAndPlay(1)命令发生轮回。另外一种是只做一帧,使用onEnterFrame命令发生轮回。
2)使用getBytesTotal()与getBytesLoaded()命令猎取文件数据。
3)以图形或动画的体例将第二步猎取的数据体现出来(一样平常同时还以文本体例准确暗示)
下面的申明,对一个会做LOADING的人来讲是很分明的,但不会做的看了也许仍是不会(呵呵)以是上面我们一步一步来,做个复杂的例子(不做文本显现数据了):
2、复杂的例子(只要两步,信任你有这个耐烦):
Ⅰ 翻开你一个亲爱的动画,新建一个场景,并把它拖到最后面。
Ⅱ 在帧上到场以下的AS举措,即半途而废!
源代码:
stop();
functiondr(nam,de,d,al){
na=createEmptyMovieClip(nam,de);
na.lineStyle(d,0x9900cc,al);
na._x=160;
na._y=280;
na.lineTo(240,0);
}
//一个画线条的函数,四个参数对应甚么,本人看哈
onEnterFrame=function(){
vara=getBytesTotal();
varb=getBytesLoaded();
//获得下载的数据
if(b<a){
dr("b1",0,30,30);
dr("b2",1,20,30);
dr("b3",2,20,100);
b3._xscale=b/a*100;
//画三条横线,显现下载进度;
}else{
deleteonEnterFrame;
b1.removeMovieClip();
b2.removeMovieClip();
b3.removeMovieClip();
play();
//下载终了,删除图形和函数;
}
};
能够按两次Ctrl+Enter举行下载测试,若对AS有害怕症者,闭着眼睛复制―粘贴便可
上面是这个例子的最终效果
三.egg616的Loading艺术之二
1、翻开你要加Loading的动画,新建一个场景,并把它拖到最后面。
2、在最后面的场景的第一帧上到场上面的AS代码。
源代码:
//Copyright:吴杰兴广东廉江
//本作品可随便复制或修正,但请说明原作者
stop();
sw=550;
sh=400;
//
Stage.showMenu=false;
//埋没厌恶的右键菜单
cs=60;
//网格的麋集水平
r=2550;
d=r/Math.SQRT2;
//网格的曲折度
p=Math.PI;
//界说常数PI
createEmptyMovieClip("ln",1);
ln.lineStyle(0,0xffffff);
for(vari=1;i<=cs;i++){
ln.moveTo(sw/2+r*Math.cos(i/cs*p),-d+300+r*Math.sin(i/cs*p));
ln.lineTo(sw/2+r*Math.cos(i/cs*p+p/2),
-d+300+r*Math.sin(i/cs*p+p/2));
}
//上面画个色彩突变的基础
createEmptyMovieClip("bg",0);
with(bg){
colors=;
alphas=;
ratios=;
lineStyle(5,0x00ff00);
matrix={matrixType:"box",x:200,y:115,w:50,h:450,r:p/2};
beginGradientFill("linear",colors,alphas,ratios,matrix);
moveTo(-200-sw,-100);
lineTo(200+sw,-100);
lineTo(200+sw,100+sh);
lineTo(-200,100+sh);
lineTo(-200,-100);
endFill();
}
//
r1=50;
r2=170;
nu=32;
//分离为中央圆的3个参数;
cr=600;
//cr是填色半径
createTextField("te",5,75,100,160,100);
te.textColor=0x9900ff;
//创立文本显现下载的数据
functionfo1(nam,de,ro){
na=createEmptyMovieClip(nam,de);
with(na){
_y=40;
lineStyle(0,0x000000,0);
colors=;
alphas=;
ratios=;
matrix={matrixType:"box",x:-cr/2,y:-cr/2,w:cr,h:cr,r:p/2};
beginGradientFill("radial",colors,alphas,ratios,matrix);
//这里用AS来突变添补
moveTo(r1,0);
varbl=Math.cos(p/nu);
for(vari=1;i<=ro;i++){
curveTo(r1*Math.cos(i*p/(nu/2)-p/nu)/bl,
r1*Math.sin(i*p/(nu/2)-p/nu)
/bl,r1*Math.cos(i*p/(nu/2)),r1*Math.sin(i*p/(nu/2)));
}
lineT</p>200609/3221_2.html>200609/3221_2.html>下一页
o(r2*Math.cos(ro*p/(nu/2)),r2*Math.sin(ro*p/(nu/2)));
for(vari=ro;i>=1;i--){
curveTo(r2*Math.cos(i*p/(nu/2)-p/nu)/bl,
r2*Math.sin(i*p/(nu/2)-p/nu)
/bl,r2*Math.cos((i-1)*p/(nu/2)),r2*Math.sin((i-1)*p/(nu/2)));
}
lineTo(r1,0);
endFill();
}
}
//此函数用来画两头的圆环,个中圆环是用curverTo的办法作出,
//这里不作先容,我将鄙人个教程中胪陈
onEnterFrame=function(){
ab=_root.getBytesLoaded();
bb=_root.getBytesTotal();
//猎取数据
sb=int(ab/bb*nu);
fo1("di",4,sb);
di._x=275;
di._y=200;
di._yscale=25;
di._rotation=-30;
//挪用函数作下面的圆环
fo1("yz",3,sb);
yz._xscale=100*Math.pow(3,0.5)/2;
yz._yscale=25;
yz._alpha=30;
yz._x=275;
yz._y=360;
//鄙人面再作一个通明的圆环,作为上一个的影子
if(ab>>>"
di.onPress=function(){
deleteonEnterFrame;
te.removeTextField();
di.removeMovieClip();
yz.removeMovieClip();
ln.removeMovieClip();
bg.removeMovieClip();
play();
};
}
};
由于是纯AS的作品,就不再供应FLA文件了,上面是最终效果(JPG格局的,比起SWF的差多了。)
四.小郎的ASLoading
1、翻开你要加Loading的动画,新建一个场景,并把它拖到最后面。
2、新建一个空MC,并将其拖进新建的场景的第1帧上,并将实在例名定名为:ss
3、在MC上到场以下代码(换句话说:单击MC,翻开AS面板,输出以下代码:)
onClipEvent(load){
this._x=180;
this._y=300;
_root.ss.createTextField("tt",1,70,50,100,20);
_root.ss.tt.textColor=0xff0000;
_root.ss.createEmptyMovieClip("louding",2);
with(_root.ss.louding){
lineStyle(0,0x0000ff,0);
moveTo(0,0);
//出发点
beginFill(0xff0000,100);
lineTo(0,10);
lineTo(10,10);
lineTo(10,0);
endFill();
}
_root.ss.createEmptyMovieClip("loudingk",3);
with(_root.ss.loudingk){
lineStyle(0,0x000000,100);
moveTo(0,0);
//出发点
lineTo(0,10);
lineTo(200,10);
lineTo(200,0);
lineTo(0,0);
}
}
onClipEvent(enterFrame){
load=int(_root.getBytesLoaded()/_root.getBytesTotal()*100);
_root.ss.tt.text="loading"+load+"%";
_root.ss.louding._width=2*load;
if(_root.getBytesLoaded()==_root.getBytesTotal()){
_root.play();
}
}
效果如图:
小提醒:本机测试Loading效果的复杂办法
Ctrl+Enter以后常常看不到Loading效果就入手下手播放主体动画了,要想分明地预览到Loading的效果,一个很复杂的办法是:Ctrl+Enter以后在测试动画播放形态下再按一次Ctrl+Enter就能够分明地看到Loading效果了,别的能够改动摹拟Modem的速率,在测试动画的窗口中,从Debug菜单中可选择14.4、28.8、56K等几个速率,或自界说</p>200609/3221.html>上一页200609/3221.html>
flash影片的后缀名为.swf,该类型文件必须有flash播放器才能打开(包括各大浏览器,视频播放器),且播放器的版本须不低于FLASH程序自带播放器的版本。 向量图有一个特点,就是放大后的图像是不会改变的.点阵图向量图Flash的应用,还有再不断在完善的ActionScript脚本语言。 矢量图形有一些固有的限制。例如,照片由于包含太多的信息而不能使用矢量图形这 种形式。但是对于由实体颜色形状构成的图像,Flash很管用。 目前动画广告在各类电视节目中有着广泛的应用,在影视及广告中占有重要地位。广州形动数码是国内领先的动画设计制作, 各类广告形式,相信大部分网民基本都关注过,而毋庸置疑,一个画面精美,生动活泼的互动Flash动画广告,比其他广告形式更加吸引你我的眼球。这就是Flash动画的优势。 向量图有一个特点,就是放大后的图像是不会改变的. 点阵图 向量图Flash的应用,还有再不断在完善的Action Script脚本语言。 Flash也支持alpha通道,这会使设计者高兴。没有太多的技术性,alpha通道是附加在图像上的信息 - 允许图像以不同的方式渲染。 动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。 FLASH的优点~你用眼睛所看到的东西~都能用它来实现~一点不夸张~高楼大厦-花草树木-高山流水-天空白云-阿猫阿狗-一切活的东西都可以容入到FLASH里面
页:
[1]