it167.com  设为主页
 收藏本站
 
  资讯:业界动态 | 软件动态 | 人物专栏 | 安全资讯 | 网络生活 | 电子商务 | 小游戏 | 视频 | 美女图片 | 音乐
  网络编程 | 网站运营 | 网页制作 | 图形图象 | 操作系统 | 媒体动画 | 软件教学 | 网络应用 | 邮件系统 | 网络安全 | 认证考试
asp | .net | php | jsp | Sql | java | Dreamweaver | FrontPages | Javascript | css | Coreldraw | photoshop | Flash | Coreldraw
当前位置: > 主页>网页设计>Flash>制作实例>打造成全球最完善的非Flash初学者loading教程
最新新闻

·机会与整合 边缘化互联
·TOM-Skype新增三大本地
·雅虎抢闸邮箱竞赛 网易
·新浪抢攻北京奥运
·洞悉网络口碑的掘金机会
·拆解网络病毒黑金交易
·木马下载器近期出现新变
·《互联网周刊》第17期文
·Web2.0是否催生自吹自擂
·三张宝宝裸照招来MSN封
热门新闻
·用FLASH MX制作动画卡通
·用FLASH MX制作动画卡通
·用FLASH MX制作动画卡通
·用FLASH MX制作动画卡通
·Flash制作空战游戏(一)
·Flash制作空战游戏(二)
·Flash制作空战游戏(三)
·Flash制作空战游戏(四)
·Flash MX 2004时间轴特
·Flash MX 2004时间轴特
推荐新闻
 
 

打造成全球最完善的非Flash初学者loading教程 

作者:   来源:   点击:   日期:2007-10-26

1、基础
  2、MovieClipLoader相关讨论(较深入)
  3、V2组件相关问题

一、基础

  很久没有发技术日志了,要来就来个完美的。您别激动,一个小小的loading谈什么完美,我想你看了就知道^_^
  我的口号,将此文打造成全球最完善的非Flash初学者loading教程贴。
  转载请保留原文地址:http://www.awflasher.com/blog/?id=444

  首先,想说一下我写此文的动机。记得很早之前我曾经说过“没有loading的flash,不是完整的flash”。我想那个句话可能偏激了。因为有时候一些不到10k的flash,确实不需要做什么loading。但我始终认为,做一个优秀的loading是衡量一个flasher水准,甚至态度的。你问我为什么,我可以告诉你,因为loading是唯一一个你不会多看而所有用户、客户会看的东西,所以你对loading的重视程度,甚至可以反衬你这个flasher的职业道德!

  有些做设计为主的朋友,我认识不少,他们对loading都是得过且过的态度,做一个loading,更多的是自己找一个现成的,然后每次去套用,我个人认为是很不好的习惯。并不是说我不提倡代码、元件的重用度,而是我觉得对于loading这种东西,套多了,是要出问题的。我强烈建议那些已经达到可以修改人家loading水平的flasher看看我的东西,当然,如果你连flash的as该写在哪都不知道,建议先入门了。

  好,下面切入正题,如何制作loading。

  首先要感激Macromedia的大智慧,提供了很好的两个函数使我们可以做出完美的loading,那就是getBytesLoaded和getBytesTotal。请不要再用你改来改去改了两三年的那个什么getFrameLoaded什么什么了,我都记不清楚怎么拼了。我只想说,Frame的观念将在真正的Interactive -Design中淡化。更别提什么Scene,那是Flash的败笔!

  那么loading如何工作呢?我们如何利用这两个函数呢?这里要提到一个重要的概念。就是间隔调用。间隔调用有多种方式,下面列举出来,并列举出其在loading制作中的地位和用法,欢迎补充:

  ·setInterval方式
  写法:
  function loadCheck()
  {
   var p = getBytesLoaded()/getBytesTotal();
   if (p==1)
   {
   clearInterval(intervalID); // 释放间隔调用
   gotoAndPlay(someFrame); // 开始播放
   }
  }
  var interval = 30; // 这个数值是刷新频率
  var intervalID = setInterval(loadCheck,interval);

  我个人并不推荐初学者用这种写法。因为很多人容易忽视clearInterval,而这个东西被忽视掉,是很恐怖的!如果你的setInterval没有给及时移除,意味着你将在整个swf的播放过程中增加一个没有必要的负担!
  而且这种方法很不适合控制MoiveClip的状况(因为初学者会发现MC的路径是个大问题,而loadCheck本身就是个函数,还是被 setInterval调用的,要在loadCheck中指一个路径出来,挺麻烦的,你不要指望_root,那样会让你的程序不规范;也不要指望 this,因为在函数中用this似乎不太理想;最好什么都不写,但往往你不敢不写),进而做出更好的效果。

  ·onEnterFrame方式
  我最喜欢的就是这种方法了。比较方便、直观。
  因为往往我们是要用一个MC体现一个loading的进度,比如,一个进度条,或者更有创意的东西,只有你不能想到的,没有你不能做到的。
  那么究竟如何用呢。首先,把创意定好。然后给你的MC一个实例名字,比如叫做loader_mc。这时候在timeline上写代码,记住,是 timeline而不是MC上。因为这样便于代码统一、便于路径统一、便于管理和寻找。别为了省几个字母就把代码通通搬到button,mc上面去,然后一个on(press)了事。除非你是在敷衍你的作品;或者你是在为了交作业。
  loader_mc.onEnterFrame = function ()
  {
   var getTar:MovieClip = this._parent;
   var p = getTar.getBytesLoaded()/getTar.getBytesTotal();
   trace(p);
   if(p==1)
   {
   this.onEnterFrame = null;
   gotoAndPlay(someFrame); // 开始播放
   }

  }

  就这么简单,记住,在MC的事件函数体内部引用MC,永远是一件很快的事情。因为this就可以指向这个MC本身,通过诸如this._parent之类的方法,可以找到你所有的MC!

  ·直接依赖于timeline的循环方式
  非常非常非常古老的方式了,不介绍了。不过你们可以去问问那些一直不喜欢自己动手做loading的flasher,他们也许在改的某一个版本就是这个,呵呵。

  以上算是比较简单的。比较容易出问题的,还有两个。
  第一、MovieClipLoader
  第二、含有多种V2组件的Loader

  ================================

共4页: 上一页 1 [2] [3] [4] 下一页
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·闪动的变色圆盘 ·鼠绘--柱顶红的画法
·鼠绘偏写实人物 ·Flash卡通景物绘制
·FlashMX2004精彩特效之阴影 ·FlashMX2004精彩特效:网格式复制

   文章评论:(0条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:it167  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。