首页 | CG软件 | CG信息 | CG教程 | 三维作品 | 设计理论 | CG加油站 | 设计鉴赏 | 社区图库 | Flash | 专题 | 顶客 | 论坛 | 博客 | 导航 | 下载 | 高级搜索
RSS
热门: 3D Total  RPC  Evermotion  效果图  创意  装修  优秀作品  Vray  艺术  欣赏

Flash AS教程:填色游戏的制作

来源:arting365 作者:FL基理大师 时间:2008-10-03 点击:
影片   剪辑   实例   坐标     调色盘   先试试效果:

在本次课程中我们将学习使用 Color 类来制作一个填色游戏,并通过本实例复习 for...in 及 SharedObject 的应用。

思路:
1.使用脚本代码创建一个调色盘,鼠标点击色块后进行取色;
2.绘制作为填充的影片剪辑并把每一部都存为影片剪辑。例如:填充对象是一个人物,那么要把他的头发,眼睛,脸等部分都保存成影片剪辑;
3.最后把各部分影片再统一保存到一个影片剪辑(mc)中;
4.为了保存和读取mc中各影片中的颜色,所以要加入两个按钮 save_btn 和 load_btn 。

步骤1:
绘制作为填充的影片剪辑并把每一部都存为影片剪辑;
最后把各部分影片统一保存到一个影片剪辑中,实例名mc;
绘制两个按钮实例名分别为 save_btn 和 load_btn 。步骤2:
加入AS代码:

//===== 绘制一个正方形作为色块以备调用 =====
_root.createEmptyMovieClip(\"box\", -1);
var box_size:Number = 12;
var TheCol = 0x0;
//用于存储所取的色彩值
with (box) {
beginFill(TheCol);
moveTo(0, 0);
lineTo(box_size, 0);
lineTo(box_size, box_size);
lineTo(0, box_size);
lineTo(0, 0);
endFill();
}
box._visible = false;
//============================================
//************* 下面生成一个调色盘 *************
var panex:Number = 3;
var paney:Number = 3;
var column:Number = 18;
//起点 x 坐标为 3, 起点 y 坐标为 3, 总行数为 18
var i = 0;
for (var r = 0; r<=0xFF; r = 0x33) {


for (var g = 0; g<=0xFF; g = 0x33) {
for (var b = 0; b<=0xFF; b = 0x33) {
var p:MovieClip = box.duplicateMovieClip(\"box\" i, i);
new Color(p).setRGB(r*256*256 g*256 b);
//new Color(p).setRGB(r << 16 | g << 8 | b);
//RGB转换公式,以上两种都可以使用
p._x = panex Math.floor(i/column)*(box_size 1);
p._y = paney i%column*(box_size 1);
//设置每个色块的坐标 行坐标: [i/column], 列坐标: i%column
p.onRelease = function() {
TheCol = new Color(this).getRGB();
new Color(curser.BG).setRGB(TheCol);
//点击到该色块后进行取色于保存到TheCol变量中
};
i ;
}
}
}
//******************************************
//===== 判定点击到图案上以后对哪个影片剪辑填色 =====
mc.onRelease = function() {
var flag:Boolean = true;
//增加一个flag为了避免一次对多个影片进行填色
for (var k in mc) {
if (mc[k].hitTest(_xmouse, _ymouse, true) && flag) {
new Color(mc[k]).setRGB(TheCol);
flag = false;
}
}
};
//============================================
//************* 对mc中所有填充色的读取和保存 *************
save_btn.onRelease = function() {
var so:SharedObject = SharedObject.getLocal(\"Color_save\");


for (var k in mc) {
so.data[k] = new Color(mc[k]).getRGB();
}
};
load_btn.onRelease = function() {
var so:SharedObject = SharedObject.getLocal(\"Color_save\");
for (var k in mc) {
new Color(mc[k]).setRGB(so.data[k]);
}
};
//******************************************

Flash充电:例举 Color 类中常用方法简介
请注重:我们在舞台中所绘制出的影片剪辑即使给他是填充了纯色影片,使用getRGB()也不会取得其RGB值。我们只有对其使用过setColor()后,才能用getRGB()获取该影片的颜色值。

例1:为影片剪辑 mc 创建一个名为 m_Col 的 Color 对象,并将其RGB值设置为橙色:
var my_color:Color = new Color(my_mc);
my_color.setRGB(0xff9933);

例2:获取影片剪辑 mc 的RGB值并以16进制显示出来:

var m_Col:Color = new Color(mc);
m_Col.setRGB(0xff9933);
var myValue:String= m_Col.getRGB().toString(16);


本文地址:http://www.cg3000.com/html/cgTutorials/Website/Flash/20081003/Flash_ASjiaocheng_tianseyouxidezhizuo_183594.shtml
上一篇:Flash贪吃蛇游戏AS代码翻译
下一篇:Flash教程:花吃蝴蝶的动画演示
关键字:迅雷 快车 Baidu 教程 游戏
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
图腾CG联盟免责声明:本网站转载纯粹出于为网民传递更多信息之目的,无任何商业目的。如本网站转载稿件涉及版权等问题,请作者速来函admincg3000@163.com联系,在此,我们首先向您表示诚挚的歉意,并将尽快予以改正。本网站上发表的内容只代表作者本人之观点,本网站只出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
赞助广告