转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 电脑应用 >> 电脑技术 >> 正文
Document Class特色带来了什么?         ★★★

Document Class特色带来了什么?

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1106 更新时间:2006/7/4

ActionScript 3.0系列教程(2):AS3.0的类及绑定

ActionScript 3.0系列教程(3):Document Class特色为我们带来了什么?

Document Class,中文直译为“文档类”。顾名思义,就是和文档绑在一起的类。
文档是啥?就是要和这个类绑在一起的Fla文件。

什么用处
这个玩意儿根本目的就是想把AS代码和Flash设计完全剥离。
从此,Fla里面只管设计,逻辑代码全部由外部的类来包办。

对于设计者和新手,黑羽可以打个比方,就好比三步走:

1.把Fla里面所有代码集中到第一帧,
2.再把第一帧里的代码拷贝到外部的一个as文件里。
3.再按照AS3.0的形式,把这些代码放到这个类的构造函数里去。再根据这些个代码抽出一些类的属性和方法就OK了。

唔,这个比喻有很多小毛病。但比较直观,比较好理解,一步步来。
等你明白有哪些小毛病了,你已经不需要这个破比喻了。

对于程序开发者(比如c#)
Document Class就好比一个Entry,它的构造函数就相当于一个main函数。

教程相关例子下载点击下载

先来一个例子:

上次建立的KingdaMC.fla和KingdaMC.as还在吧?
删了?重来一遍吧,本次要用到fla里面的加好链接类的元件,以及相关的KingdaMC类文件。

我们干两件事:

1.新建一个Document Class类。
2.用上之前的那个Kingda.fla,绑定Document Class

1.新建一个as文件,命名为KingdaMCDocumentClass,记得要和fla在同一目录下:
输入如下代码:

//因为在统一目录下,所以package后面没有路径
package {
   import flash.display.MovieClip;
  
   public class KingdaMCDocumentClass extends MovieClip {
      private var tempMC:KingdaMC; //临时变量,持有当时创建的KingdaMC的引用。
      private var MAX_MCS:int = 10;  //最多创建的KingdaMC数目
     
     //构造函数,和类同名,在AS3.0中必须为public。不能用private,protected或者自定义的namespace
      public function KingdaMCDocumentClass() {
         var i:int;  //新的数据类型int,只要是整数,就请用int。效率快过Number。
         for (i = 0; i < MAX_MCS; i++) {
            tempMC = new KingdaMC ();
           
           //以下两行定义创建的KingdaMC形状大小随机
            tempMC.scaleX = Math.random();
            tempMC.scaleY = tempMC.scaleX;
           //以下两行定义创建的KingdaMC位置在舞台上随机。
            tempMC.x = Math.round(Math.random() * (this.stage.stageWidth - tempMC.width));
            tempMC.y = Math.round(Math.random() * (this.stage.stageHeight - tempMC.height));
            addChild(tempMC);
         } 
      }
   }
}

它要干的事很简单,就是用我们之前的KingdaMC类在舞台上创建十个KingdaMC实例,大小随机,位置随机。

2.用上之前的Kingda.fla,绑定KingdaMCDocumentClass。
确保库中已有设好KingdaMC类链接的symbol。

设置方法如图:


点击放大

先把第一帧代码全部删掉。Ctrl+Enter测试一把。是不是有十个MC出来啊。
然后再像图中那样加上第一帧代码,和舞台元件乐一乐。就是不按照Document Class规矩干干,呵呵。

那么它到底是什么?
简单的说,是一个用来取代原有散乱的时间轴代码的标准解决办法。
当一个Fla文件被编译时,Document Class就被主动建立了。我们可以理解为Flash IDE偷偷加上了如下代码:

//path表示Document Class的包,如上一节中说过的org.kingda;
//DocClass是指Document Class的名字
import path.DocClass; 
var TouTouDe:DocClass = new DocClass();
//实例名TouTouDe是我乱写的,哈哈。可能是默认的instance1之类的名字

这样的好处是所有的时间轴逻辑都剥离到Document Class类文件中,一旦成为一个独立的类文件,那么很方便的可以和CVS软件结合起来。对团队合作(Designer + Coder)来说是一大利好。对新手和小项目来说,没什么优点和必要。

下面说点高级讯息和运用:
有什么坏处?
坏处大大的有。那是相当的不习惯。
所有的舞台上的元件都别直接用属性来命名(比如说随便命名为BigKingda),不然就会出现以下出错讯息:

ReferenceError: Error #1056: 无法为 KingdaMCDocumentClass 创建属性 BigKingda。

当然这个限制只在与舞台上的元件,在元件类部直接命名子元件没有问题,在Timeline写相关的代码没问题。

重要:Document Class初始化顺序怎样?
黑羽个人的研究结果:一旦设置了Document Class,那么初始化顺序如下:
Document Class初始化 > 主时间轴代码执行 > 舞台元件绑定的类初始化 > 元件的时间轴代码初始化 >..

下面的层次按这样的规律循环。

Ok了,三大特色到此详细介绍完了。
尽量讲的浅俗易懂,大家明白就好。而且黑羽也加上了一些高级讯息供老鸟参考。喜欢的顶一把!^_^

下次开始AS3.0的本质之旅:AS 3.0的新数据类型及本质


[Web开发]document.getElementById详解  [系统软件]delphi2005帮助系统使用了microsoft document exp…
[Delphi程序]Creating a real singleton class in Delphi 5  [网页制作]DIV+CSS布局-- 关于ID和CLASS
[网页制作]认清CSS的类class和标识id选择符  [网页制作]Document 和 Document.all 分别什么时候用
[网页制作]对CSS的Class及Id的规范化命名  [网页制作]关于CSS中的类-CLASS
[Web开发]JavaScript脚本语言描述:document 文挡对象详解  [Web开发]ASP发送邮件的class(完)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 电脑技术  · 操作系统
    · 磁盘工具  · 视音频技术
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台