《 Essential ActionScript 2.0 》中文精华版 第 13 期
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
说明:周日休息,停发一期。大家也整理一下两周以来所学知识,温故知新嘛! 大家可以到置顶索引贴中下载最新译文! 4.6 Completing the Box Class (完整的Box类)
通过本章我们学习了Box类的例子。在现实世界中,我们的Box类可能是纯概念上的(即,永远不显示在屏幕上)也可能是一种直观表示。由于大多数Flash应用程序都是可见的,因此我们将总结本章,来看一看如何使一个Box实例显示在屏幕上。
并非所有的Flash应用程序都以同一种方式在屏幕上显示内容。每个应用程序必须决定如何绘制屏幕、何时绘制、以及哪个类或者哪些类包含绘制代码。当设计一个应用程序系统时,主要应考虑以下几个问题:
? 首先决定显示的元素是否是自己渲染(render themselves)或是通过一个中心类渲染(be rendered by a central class)。例如,是为Box类提供一个自己的drawBox( )方法,还是在其他的某个类中有一个drawBoxes( )或drawScreen( )方法?
? 决定时隔多久更新一次显示的元素——或者当某些事件放生时(例如一次鼠标点击)或者反复刷新(于Flash Player的帧速一致)。
? 决定渲染技术(rendering technique)。Flash影片中的每个可见元素必须显示在一个影片剪辑中。然而,影片剪辑可以在创作时手工放置或者在运行时使用ActionScript添加到舞台上。一个影片剪辑的内容同样可以使用MovieClip绘图API勾勒出来。
? 决定屏幕刷新策略。将每个可见元素作为一个单独表示的影片剪辑(有规律地更新)来维护,或者在显示更新时将舞台上的全部内容统统清除、然后从新创建?
在我们的例子中,由Box类来负责其屏幕显示。当创建一个Box实例时,我们将添加一个空的影片剪辑(命名为container_mc),在那上面来绘制我们的Box实例。如果Box实例调整尺寸,我们将重新绘制container_mc中的内容。为了移动Box实例,我们将移动container_mc,而不是在container_mc中移动Box实例。这是我们免于重新绘制container_mc中的内容。
我们的Box显示策略是唯一的运行时策略(runtime-only strategy)。在Flash Player中出现的每个Box实例,在编辑一个.fla文件时都不能被放置到舞台上。在第十三章,我们将看到如何创建一个可见的类,在运行时以及在Flash创作工具中都可以将实例放置到舞台上。
例如4-6 给出了一个Box类的最终的、完全的、包括屏幕显示代码的样子,请注意以下几点:
? width和height属性(不是伪属性)
? 存取器getWidth( )和getHeight( ) 方法(不是getter和setter方法)
以下内容对于这个版本的Box类而言是完全陌生的:
? container_mc属性,存储一个用于绘制Box图形的影片剪辑的引用
? 存取器方法getX( ), setX( ), getY( ), setY( ),用于取得并设置container_mc影片剪辑的位置
? draw( )方法,用于在container_mc影片剪辑中绘制Box图形
最后,以下内容在这个版本的Box类中已经被改变:
? 构造函数使用了额外的参数,如下:x和y指定container_mc的初始水平和垂直位置;target指定container_mc影片剪辑添加到哪个影片剪辑中去;depth指定添加的深度。
? 在设置Box实例的高度和宽度后,setHeight( )和setWidth( )方法调用draw( )。(注意,存取器方法的灵活度为我们提供了:我们改变我们的类如何工作,而无须改变如何去使用它)。
详细的注释将帮助我们学习代码。
例4-6 一个具有完整绘图程序的Box类
class Box { |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 利用GOLDWAVE进行录音下一篇: 带转折的运动线
关于《 Essential ActionScript 2.0 》中文精华版 第 13 期的所有评论