Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB Deutsch|INB 國語|INB 中文|INB 日本语|INB 한국어|INB ภาษาไทย|INB tiếng Việt||FL 教程Flash 填色游戲的設計
INB 國語論壇
歡迎光臨(工業與草根研究員)對工業時代充滿了戰鬥精神,你和我都通過網絡空間與當地草根精神研究員來到瘋狂實驗室。家inbforum.com,永久名稱:tw-inbforum.forums2u.com
INB 國語論壇
歡迎光臨(工業與草根研究員)對工業時代充滿了戰鬥精神,你和我都通過網絡空間與當地草根精神研究員來到瘋狂實驗室。家inbforum.com,永久名稱:tw-inbforum.forums2u.com
INB 國語論壇

歡迎光臨(工業與草根研究員)對工業時代充滿了戰鬥精神,你和我都通過網絡空間與當地草根精神研究員來到瘋狂實驗室。家inbforum.com,永久名稱:tw-inbforum.forums2u.com


您沒有登錄。 請登錄註冊

《《《《《《《上一页INBforum   向下

上一页INBforum》》》》》》》上一篇主題 下一篇主題 向下  內容 [第1頁(共1頁)]

1FL 教程Flash 填色游戲的設計 Empty FL 教程Flash 填色游戲的設計 周四 3月 03, 2011 7:01 am

Admin

Admin
Admin
先試試效果:
























































在本次課程中我們將學習使用 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://tw.inbforum.com

上一页INBforum   向下

上一页INBforum上一篇主題 下一篇主題 回頂端  內容 [第1頁(共1頁)]

這個論壇的權限:
無法 在這個版面回復文章

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Free forum | ©phpBB | 免費論壇互助中心 | 違法舉報 | Latest discussions