快速业务通道

《 Essential ActionScript 2.0 》中文精华版 第 13 期

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12
的影片剪辑
private var container_mc:MovieClip;
//
// 构造函数
//
public function Box(w:Number, h:Number, x:Number, y:Number, target:MovieClip, depth:Number) {
// 创建用于保存Box可视实例的容器
container_mc = target.createEmptyMovieClip("boxcontainer" + depth, depth);
// 初始化尺寸
setWidth(w);
setHeight(h);
// 初始化位置
setX(x);
setY(y);
}
// 得到 width
public function getWidth():Number {
return width;
}
// 为 width 赋值
// 这个版本不但为 width 赋新值,而且根据新的 width 值重新绘制 Box 实例
public function setWidth(w:Number):Void {
width = w;
draw();
}
// 得到 height
public function getHeight():Number {
return height;
}
// 为 height 赋值
// 这个版本不但为 height 赋新值,而且根据新的 height 值重新绘制 Box 实例
public function setHeight(h:Number):Void {
height = h;
draw();
}
// 得到 x
// 为了方便,x 和 y 坐标直接存储影片剪辑容器的坐标。
// 如果关注数字的准确度,我们应该将 x 保存为一个独立的Box属性,
// 以便它不会被MovieClip类四舍五入。
public function getX():Number {
return container_mc._x;
}
// 为 x 赋值
public function setX(x:Number):Void {
container_mc._x = x;
}
// 得到 y
public function getY():Number {
return container_mc._y;
}
// 为 y 赋值
public function setY(y:Number):Void {
container_mc._y = y;
}
// 在屏幕上显示 Box 实例。使用 MovieClip 绘图方法在 container_mc 中画线。
public function draw():Void {
// 清除前一个Box
container_mc.clear();
// 使用 1-point 的黑线
container_mc.lineStyle(1, 0x000000);
// 定位画笔
container_mc.moveTo(0, 0);
// 开始白色填充
container_mc.beginFill(0x0000FF, 50);
// 绘制 Box 的边界
container_mc.lineTo(width, 0);
container_mc.lineTo(width, height);
container_mc.lineTo(0, height);
container_mc.lineTo(0, 0);
// 正式停止填充
container_mc.endFill();
}
}以下代码展示了如何将Box类用于一个Flash文件(.fla)时间线的一帧上:

// 创建一个250*260像素的Box实例,
// 并放置到当前影片剪辑(100, 110)坐标点上,深度为1
var b:Box = new Box(250, 260, 100, 110, this, 1);
在Box实例被创建后,我们可以调整起位置和尺寸,如下所示:
b.setX(400);
b.setY(400);
b.setWidth(10);
b.setHeight(20);

trace(b.getX( )); // 显示: 400
trace(b.getY( )); // 显示: 400
trace(b.getWidth( )); // 显示: 10
trace(b.getHeight( )); // 显示: 204.7 Putting Theory into Practice
(理论与实践相结合) 代码,就像艺术一样,是永远不会真正完成的。你应该探索你的思想,即使是本章讨论的一个简单的Box类也是如此。你能为它添加自由放置每个Box实例到舞台上的代码吗?或者改变Box实例的颜色?旋转一个Box实例或者延直线运动的动画又该怎么写?试着为每个Box实例添加文本域显示其宽度和高度以及面积。你甚至可以让文本域接受用户输入来改变Box的尺寸。 在下一章你将看到如何添加这些特色,我们将研究ImageViewer类。本章涉及了大量的理论基础,因此如果你有些吃不消,不要着急。下一章将涉及具体的实现,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号