• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • photoshop
  • Fireworks
  • CorelDraw
  • Illustrator
  • Painter
  • Freehand
  • Indesign
  • flash
  • maya
  • autocad
  • 3dmax
您的位置:首页 > 平面设计 >flash > Flash AS 教程:子类化显示对象

Flash AS 教程:子类化显示对象

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-24

佚名 向大家分享了Flash AS 教程:子类化显示对象,其中包含父类引用指向子类对象,父类指针指向子类对象,子类对象调用父类方法,父类指向子类对象,父类引用子类对象等知识点,遇到此问题的同学们可以参考下
子类化显示对象
前面已经讲过生成 Sprite 或 MovieClip 类的子类,对某个类进行子类化是非常有用的。首先,大家可能对 AS 3 取消 attachMovieClip 功能感到十分惊呀,如果这样的话,我们怎么才能在 Flash CS3 IDE 库中取出影片剪辑元件放入舞台呢?答案是,使用一个继承自 MovieClip 或 Sprite 的类。为了能够好地解释这个问题,简单地介绍一下 IDE:
    创建一个新的 FLA 文件,并在舞台上绘制一些图形。 选中图形按下 F8 键转换为元件。 在转换为元件窗口中输入一个名称,并设置为影片剪辑类型。 选择为 ActionScript 导出。
在以前的 Flash 版本中,可以自由地给出标识符或输入一个类名。而在 Flash CS3 中,标识符一栏不可用了,类一栏会自动地填入默认值。这里还多出了基类一栏,默认为 flash.display.MovieClip,这里也可以填入继承自 MovieClip 或 Sprite 的自定义类。
随意输入一个类名,不必担心没有这个类,然后点击确定。这个地方很有趣,Flash 找不到这个类,它就会自动生成一个类,并对其进行编译。并不是说 Flash 会创建一个 ActionScript 类文件,但它会在 SWF 中,生成一串字节代码表示一个继承自 Sprite 或 MovieClip 的类。除了继承了基类,它什么都不会做,但它已经与库中的元件连接上了。比如,你的类名为 Ball。在文档类或时间轴上,可以这么写:
var ball:Ball = new Ball();
addChild(ball);
这样就在舞台上创建了一个库中的元件,就像 AS 2 的 attachMovie 方法一样。我们要是能给出自定义的真正的类名及路径的话,那么就可以让元件附加很多功能。现在,我们跳出 Flash IDE 回到类的世界,看下一个示例。下面再看一个重定父级的示例,这里有一些重复的部分可以写入另一个类中。看一下示例,假设已经创建了一个名为 parent1 的 Sprite 实例,要里面绘制正方形:
parent1.graphics.lineStyle(1, 0);
parent1.graphics.drawRect(-50, -50, 100, 100);
下面再创建一个名为 parent2 的 Sprite 实例,同样也是绘制一个正方形。当然这个例子毫无意义,但它可以告诉我们 Sprite 的子类是多么的有用。首先,我们建立一个名为 ParentBox 的类,并继承自 Sprite,这样一来,就拥有了绘制正方形的代码:
package {
import flash.display.Sprite;
public class ParentBox extends Sprite {
public function ParentBox() {
init();
}
private function init():void {
graphics.lineStyle(1, 0);
graphics.drawRect(-50, -50, 100, 100);
}
}
}
然后,使用这个类创建两个 ParentBox,这样做比创建两个 Sprite 对象要好得多。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Reparenting2 extends Sprite {
private var parent1:ParentBox;
private var parent2:ParentBox;
private var ball:Sprite;
public function Reparenting2() {
init();
}
private function init():void {
parent1 = new ParentBox();
addChild(parent1);
parent1.x = 60;
parent1.y = 60;
parent2 = new ParentBox();
addChild(parent2);
parent2.x = 170;
parent2.y = 60;
ball = new Sprite();
parent1.addChild(ball);
ball.graphics.beginFill(0xff0000);
ball.graphics.drawCircle(0, 0, 40);
ball.graphics.endFill();
ball.addEventListener(MouseEvent.CLICK, onBallClick);
}
public function onBallClick(event:MouseEvent):void {
parent2.addChild(ball);
}
}
}
作为 ParentBox 的实例,它们仍是 Sprite ,因此还可以再增加子影片, init 方法直接进行绘图。虽然这个示例价值不大,但可以让你学会这种思想,往后,会在书中看到更多更复杂的示例。你也许想自己动手创建一个球(Ball)类,用于绘制小球,虽然这么做不会减少代码里,但是当你的类变得十分复杂时,把功能代码分离到不同的类中,这绝对是个好办法,它比将所有类写在一起要好得多,同时还促进了代码的重用性。那么现在就去创建这个 Ball 类吧,在日后的学习中还要用到呢。
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Flash AS 教程:子类化显示对象

相关文章

  • 2017-05-24flash怎么画一个可爱的企鹅?
  • 2017-05-24无法安装flash player该如何解决?
  • 2017-05-24FLASH中怎么制作用按钮控制一个动画的播放/暂停?
  • 2017-05-24在网页中用Flash动画直接播放MP3音乐
  • 2017-05-24Flash CS3墨水瓶工具创建轮廓线应用教程
  • 2017-05-2425个绝对让你应接不暇的Flash网站创意
  • 2017-05-24Flash CS6怎么设计一段引导层动画?
  • 2017-05-24flash怎么制作带阴影的文本?
  • 2017-05-24ColorTransform类调整显示对象的颜色值
  • 2017-05-24flash制作扇子张开收合的gif动画效果

文章分类

  • photoshop
  • Fireworks
  • CorelDraw
  • Illustrator
  • Painter
  • Freehand
  • Indesign
  • flash
  • maya
  • autocad
  • 3dmax

最近更新的内容

    • flash怎么制作指示箭头的动画?
    • Flash技巧教程:产品和文字扫光效果的几种方式
    • Flash模仿制作毛笔写字效果动画实例教程
    • flash脚本ROLL制作女孩在丛中笑的gif动画效果
    • Flash简单创建一个动画效果
    • Flash Web结构之背景层浅析
    • 如何把fla文件输出成和swf一样的gif文件
    • 几款经典Flash源文件集锦-导航篇
    • flash制作漂亮的变化汉字
    • flash利用钢笔工具与渐变填充绘制红心

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有