仓酷云

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

[学习教程] 来一发把握Flash技能:纯ActionScript的Loading效果四例

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-15 22:42:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Macromedia公司已经承诺在Flash8中将有很大的变化,而且它们中的许多都与视频功能有关。
  媒介:略微年夜一些的Flash作品在播放之前城市有一个Loading预载画面,这思索到收集的速率,当地扫瞄不必要守候下载,但传到网上,由于每一个用户的网速分歧,以是很有需要在我们的作品中到场Loading画面,之前,已有良多教程是关于Loading制造办法的,明天我们给读者报告四个纯AS的Loading效果,不懂AS的菜鸟或“代码盲”乃至能够间接复制教程中的代码到本人的作品中,懂AS代码的伴侣,能够细心浏览这些代码,从中学到更多的AS常识,或由此引伸出更多的ASLoading效果……感激作者=棉花糖=、egg616、小郎供应源码和思绪--闪客帝国的叶子

一.=棉花糖=的Loading教程


  对照大略
  静态显现load百分比
   将全体代码拷贝到第一帧,当load终了后,会主动入手下手播放

  源代码:

  1. stop();
  2. _root.createTextField("myload_txt",1,0,0,0,0);
  3. with(_root.myload_txt){//设置文本
  4. background=true;//文本框是不是有背景
  5. backgroundColor=0x336699;//文本框的背景色彩
  6. textColor=0xFFFFFF;//文本字段中文本的色彩
  7. type="dynamic"//文本字段为静态文本
  8. selectable=false;//文本是不是可选
  9. autoSize="center";//把持文本字段的主动巨细调剂和对齐
  10. _x=Stage.width/2;//文本字段的横坐标
  11. _y=Stage.height/2;//文本字段的纵坐标
  12. }
  13. onEnterFrame=function(){
  14. varLoaded=_root.getBytesLoaded();
  15. varTotal=_root.getBytesTotal();
  16. _root.myload_txt.text=Math.floor((Loaded/Total)*100)+"%";
  17. if(Loaded==Total){
  18. onEnterFrame=null;
  19. removeMovieClip(_root.myload_txt);
  20. play();
  21. }
  22. };
复制代码

二.egg616的Loading艺术之一


  1、制造道理:
  天下上一切的loading也许都能够分为三个部分:
  1)打造一个轮回,用于更新数据。一样平常来讲有两种办法,一种是做成二帧,在第二帧顶用gotoAndPlay(1)命令发生轮回。另外一种是只做一帧,使用onEnterFrame命令发生轮回。
  2)使用getBytesTotal()与getBytesLoaded()命令猎取文件数据。
  3)以图形或动画的体例将第二步猎取的数据体现出来(一样平常同时还以文本体例准确暗示)

  下面的申明,对一个会做LOADING的人来讲是很分明的,但不会做的看了也许仍是不会(呵呵)以是上面我们一步一步来,做个复杂的例子(不做文本显现数据了):

  2、复杂的例子(只要两步,信任你有这个耐烦):
  Ⅰ 翻开你一个亲爱的动画,新建一个场景,并把它拖到最后面。
  Ⅱ 在帧上到场以下的AS举措,即半途而废!

  源代码:
  1. stop();
  2. functiondr(nam,de,d,al){
  3. na=createEmptyMovieClip(nam,de);
  4. na.lineStyle(d,0x9900cc,al);
  5. na._x=160;
  6. na._y=280;
  7. na.lineTo(240,0);
  8. }
  9. //一个画线条的函数,四个参数对应甚么,本人看哈
  10. onEnterFrame=function(){
  11. vara=getBytesTotal();
  12. varb=getBytesLoaded();
  13. //获得下载的数据
  14. if(b<a){
  15. dr("b1",0,30,30);
  16. dr("b2",1,20,30);
  17. dr("b3",2,20,100);
  18. b3._xscale=b/a*100;
  19. //画三条横线,显现下载进度;
  20. }else{
  21. deleteonEnterFrame;
  22. b1.removeMovieClip();
  23. b2.removeMovieClip();
  24. b3.removeMovieClip();
  25. play();
  26. //下载终了,删除图形和函数;
  27. }
  28. };
复制代码

  能够按两次Ctrl+Enter举行下载测试,若对AS有害怕症者,闭着眼睛复制―粘贴便可

  上面是这个例子的最终效果





三.egg616的Loading艺术之二


  1、翻开你要加Loading的动画,新建一个场景,并把它拖到最后面。
  2、在最后面的场景的第一帧上到场上面的AS代码。

  源代码:
  1. //Copyright:吴杰兴广东廉江
  2. //本作品可随便复制或修正,但请说明原作者
  3. stop();
  4. sw=550;
  5. sh=400;
  6. //
  7. Stage.showMenu=false;
  8. //埋没厌恶的右键菜单
  9. cs=60;
  10. //网格的麋集水平
  11. r=2550;
  12. d=r/Math.SQRT2;
  13. //网格的曲折度
  14. p=Math.PI;
  15. //界说常数PI
  16. createEmptyMovieClip("ln",1);
  17. ln.lineStyle(0,0xffffff);
  18. for(vari=1;i<=cs;i++){
  19. ln.moveTo(sw/2+r*Math.cos(i/cs*p),-d+300+r*Math.sin(i/cs*p));
  20. ln.lineTo(sw/2+r*Math.cos(i/cs*p+p/2),
  21. -d+300+r*Math.sin(i/cs*p+p/2));
  22. }
  23. //上面画个色彩突变的基础
  24. createEmptyMovieClip("bg",0);
  25. with(bg){
  26. colors=[0x6666ff,0xffffff,0x660099];
  27. alphas=[30,30,80];
  28. ratios=[0,100,200];
  29. lineStyle(5,0x00ff00);
  30. matrix={matrixType:"box",x:200,y:115,w:50,h:450,r:p/2};
  31. beginGradientFill("linear",colors,alphas,ratios,matrix);
  32. moveTo(-200-sw,-100);
  33. lineTo(200+sw,-100);
  34. lineTo(200+sw,100+sh);
  35. lineTo(-200,100+sh);
  36. lineTo(-200,-100);
  37. endFill();
  38. }
  39. //
  40. r1=50;
  41. r2=170;
  42. nu=32;
  43. //分离为中央圆的3个参数;
  44. cr=600;
  45. //cr是填色半径
  46. createTextField("te",5,75,100,160,100);
  47. te.textColor=0x9900ff;
  48. //创立文本显现下载的数据
  49. functionfo1(nam,de,ro){
  50. na=createEmptyMovieClip(nam,de);
  51. with(na){
  52. _y=40;
  53. lineStyle(0,0x000000,0);
  54. colors=[0x6666ff,0xffffff,0x660099];
  55. alphas=[130,130,20];
  56. ratios=[0,120,200];
  57. matrix={matrixType:"box",x:-cr/2,y:-cr/2,w:cr,h:cr,r:p/2};
  58. beginGradientFill("radial",colors,alphas,ratios,matrix);
  59. //这里用AS来突变添补
  60. moveTo(r1,0);
  61. varbl=Math.cos(p/nu);
  62. for(vari=1;i<=ro;i++){
  63. curveTo(r1*Math.cos(i*p/(nu/2)-p/nu)/bl,
  64. r1*Math.sin(i*p/(nu/2)-p/nu)
  65. /bl,r1*Math.cos(i*p/(nu/2)),r1*Math.sin(i*p/(nu/2)));
  66. }
  67. lineT</p>[align=center][b][1]200609/3221_2.html>[2]200609/3221_2.html>下一页[/b][/align]
  68. o(r2*Math.cos(ro*p/(nu/2)),r2*Math.sin(ro*p/(nu/2)));
  69. for(vari=ro;i>=1;i--){
  70. curveTo(r2*Math.cos(i*p/(nu/2)-p/nu)/bl,
  71. r2*Math.sin(i*p/(nu/2)-p/nu)
  72. /bl,r2*Math.cos((i-1)*p/(nu/2)),r2*Math.sin((i-1)*p/(nu/2)));
  73. }
  74. lineTo(r1,0);
  75. endFill();
  76. }
  77. }
  78. //此函数用来画两头的圆环,个中圆环是用curverTo的办法作出,
  79. //这里不作先容,我将鄙人个教程中胪陈
  80. onEnterFrame=function(){
  81. ab=_root.getBytesLoaded();
  82. bb=_root.getBytesTotal();
  83. //猎取数据
  84. sb=int(ab/bb*nu);
  85. fo1("di",4,sb);
  86. di._x=275;
  87. di._y=200;
  88. di._yscale=25;
  89. di._rotation=-30;
  90. //挪用函数作下面的圆环
  91. fo1("yz",3,sb);
  92. yz._xscale=100*Math.pow(3,0.5)/2;
  93. yz._yscale=25;
  94. yz._alpha=30;
  95. yz._x=275;
  96. yz._y=360;
  97. //鄙人面再作一个通明的圆环,作为上一个的影子
  98. if(ab>>>"
  99. di.onPress=function(){
  100. deleteonEnterFrame;
  101. te.removeTextField();
  102. di.removeMovieClip();
  103. yz.removeMovieClip();
  104. ln.removeMovieClip();
  105. bg.removeMovieClip();
  106. play();
  107. };
  108. }
  109. };
复制代码

  由于是纯AS的作品,就不再供应FLA文件了,上面是最终效果(JPG格局的,比起SWF的差多了。)





四.小郎的ASLoading


  1、翻开你要加Loading的动画,新建一个场景,并把它拖到最后面。
  2、新建一个空MC,并将其拖进新建的场景的第1帧上,并将实在例名定名为:ss
  3、在MC上到场以下代码(换句话说:单击MC,翻开AS面板,输出以下代码:)
  1. onClipEvent(load){
  2. this._x=180;
  3. this._y=300;
  4. _root.ss.createTextField("tt",1,70,50,100,20);
  5. _root.ss.tt.textColor=0xff0000;
  6. _root.ss.createEmptyMovieClip("louding",2);
  7. with(_root.ss.louding){
  8. lineStyle(0,0x0000ff,0);
  9. moveTo(0,0);
  10. //出发点
  11. beginFill(0xff0000,100);
  12. lineTo(0,10);
  13. lineTo(10,10);
  14. lineTo(10,0);
  15. endFill();
  16. }
  17. _root.ss.createEmptyMovieClip("loudingk",3);
  18. with(_root.ss.loudingk){
  19. lineStyle(0,0x000000,100);
  20. moveTo(0,0);
  21. //出发点
  22. lineTo(0,10);
  23. lineTo(200,10);
  24. lineTo(200,0);
  25. lineTo(0,0);
  26. }
  27. }
  28. onClipEvent(enterFrame){
  29. load=int(_root.getBytesLoaded()/_root.getBytesTotal()*100);
  30. _root.ss.tt.text="loading"+load+"%";
  31. _root.ss.louding._width=2*load;
  32. if(_root.getBytesLoaded()==_root.getBytesTotal()){
  33. _root.play();
  34. }
  35. }
复制代码

  效果如图:





  小提醒:本机测试Loading效果的复杂办法

  Ctrl+Enter以后常常看不到Loading效果就入手下手播放主体动画了,要想分明地预览到Loading的效果,一个很复杂的办法是:Ctrl+Enter以后在测试动画播放形态下再按一次Ctrl+Enter就能够分明地看到Loading效果了,别的能够改动摹拟Modem的速率,在测试动画的窗口中,从Debug菜单中可选择14.4、28.8、56K等几个速率,或自界说</p>
200609/3221.html>上一页200609/3221.html>[1][2]


flash影片的后缀名为.swf,该类型文件必须有flash播放器才能打开(包括各大浏览器,视频播放器),且播放器的版本须不低于FLASH程序自带播放器的版本。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-17 18:26:11 | 只看该作者
向量图有一个特点,就是放大后的图像是不会改变的.点阵图向量图Flash的应用,还有再不断在完善的ActionScript脚本语言。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-25 09:54:01 | 只看该作者
矢量图形有一些固有的限制。例如,照片由于包含太多的信息而不能使用矢量图形这 种形式。但是对于由实体颜色形状构成的图像,Flash很管用。
地板
 楼主| 发表于 2015-2-2 21:53:54 | 只看该作者
目前动画广告在各类电视节目中有着广泛的应用,在影视及广告中占有重要地位。广州形动数码是国内领先的动画设计制作,
飘灵儿 该用户已被删除
5#
发表于 2015-2-8 08:31:26 | 只看该作者
各类广告形式,相信大部分网民基本都关注过,而毋庸置疑,一个画面精美,生动活泼的互动Flash动画广告,比其他广告形式更加吸引你我的眼球。这就是Flash动画的优势。
再现理想 该用户已被删除
6#
发表于 2015-2-25 10:50:48 | 只看该作者
向量图有一个特点,就是放大后的图像是不会改变的. 点阵图 向量图Flash的应用,还有再不断在完善的Action Script脚本语言。
变相怪杰 该用户已被删除
7#
发表于 2015-3-7 20:40:14 | 只看该作者
Flash也支持alpha通道,这会使设计者高兴。没有太多的技术性,alpha通道是附加在图像上的信息 - 允许图像以不同的方式渲染。
分手快乐 该用户已被删除
8#
发表于 2015-3-15 16:27:00 | 只看该作者
动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-22 03:34:08 | 只看该作者
FLASH的优点~你用眼睛所看到的东西~都能用它来实现~一点不夸张~高楼大厦-花草树木-高山流水-天空白云-阿猫阿狗-一切活的东西都可以容入到FLASH里面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 20:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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