-- 作者:卡西莫咄
-- 发布时间:2008/6/20 11:37:30
-- 《翻牌游戏》制作过程
一、设置舞台
打开 Flash MX 2004 ,新建文档,背景色自定,其他默认,确定。建立四个图层,从下往上分别命名为“说明”、“按钮”、“ AC ”、“标题”。
二、制作元件
1 、制作影片剪辑元件“图片 mc ”:( 1 )建立两个图层,从下往上分别命名为“图片”和“ AC ”。( 2 )在“图片”图层的 2 至 11 帧插入空白关键帧。在第 1 、第 2 两帧画上相同的图片,在 3 至 11 帧再画九幅不同的图片,图片大小均为宽 45 、高 60 ,且都用对齐面板进行左对齐、上对齐。( 3 )在“ AC ”图层的第 1 帧输入如下语句: gotoAndStop(_parent.face+1);
2 、制作影片剪辑元件“卡片背面”:( 1 )在图层 1 的第 1 帧画一个宽 45 、高 60 的无边框矩形,填充黑色,也用对齐面板左对齐、上对齐。
3 、制作“隐形按钮”:在第 4 帧也画一个宽 45 、高 60 的无边框矩形,颜色随意,左对齐上对齐。
4 、制作影片剪辑元件“卡片”:( 1 )建立四个图层,从下往上分别命名为“正面”、“背面”、“隐形按钮”和“ AC ”。( 2 )在“背面”图层第 1 帧放置“卡片背面”实例,使其左对齐上对齐,然后在第 5 帧把图片的宽度设为 1 ,创建补间动画。在第 6 帧插入空白关键帧。( 3 )在“正面”图层的第 5 帧拖入“图片 mc ”实例,左对齐上对齐;在第 10 帧、第 15 帧、第 20 帧均插入关键帧,分别把第 5 、第 15 两帧上的矩形宽度设为 1 ,为各段创建补间动画。( 4 )在“背面”图层上,把第 1 帧复制到第 20 帧,把第 5 帧复制到第 15 帧,在 15 至 20 帧创建补间动画。( 5 )在“隐形按钮”图层第 1 帧拖入“隐形按钮”实例,左对齐上对齐,然后在此隐形按钮上输入如下动作语句: on (release) { cardOpened = _root.exposedCard.length/2; if (cardOpened<2) { _root.exposedCard.push(cardNum, face); gotoAndPlay(2); } } ( 6 )在“ AC ”图层第 1 帧输入如下语句: var face; var cardNum; if (_global.first!= true) { stop (); } ( 7 )在“ AC ”图层第 10 帧输入如下语句: function clearExposedCard() { while (_root.exposedCard.length != 0) { _root.exposedCard.pop(); // 一个一个从最后删除数组元素。 } } num = _root.exposedCard[0]; if (_global.first == true) { gotoAndPlay("delay"); // 这个只在开始游戏的时候调用。 } if (cardOpened == 0) { //cardopened 在点击隐形按钮时产生。 stop(); } if (cardOpened == 1) { // 第二次点击变成 1 ,此时 _root.exposedCard.length 为 4 if (_root.exposedCard[3] == _root.exposedCard[1]) { // 第二号和第四号值一样,及值 face 一样时。第一号和第二号值 cardNum 值,及数值 1 , 2 , 3 等。 _root.score += 10; _root["newcard"+num].removeMovieClip(); clearExposedCard(); this.removeMovieClip(); } else { _root["newcard"+num].play(); _root.score -= 5; clearExposedCard(); } } ( 8 )在第 11 帧、第 21 帧分别建立帧标签“ turnBack ”和“ delay ”。 ( 9 )在第 20 帧输入如下动作代码: _global.first=false; gotoAndStop (1); ( 10 )在第 55 帧输入如下动作代码: gotoAndPlay ("turnBack"); ( 11 )把“背面”图层延长到第 55 帧。 ( 12 )在库面板中右击影片剪辑“卡片”,点链接,勾选“为动作脚本导出”,将标识符改为“ card ”,其他默认,点确定。
5 、制作一个按钮元件“开始、或重新开始”。
三、布置场景
1 、返回场景 1 ,在说明图层的第 1 帧放置一个动态文本,将其变量命名为“ score ”,在第 3 帧插入帧。 2 、在“按钮”图层第 1 帧拖入“开始”按钮,选中按钮实例,输入如下语句: on (release) { gotoAndPlay(2); } 3 、在“ AC ”图层的第 1 帧输入如下动作代码: stop(); 4 、在“ AC ”图层的第 2 帧输入如下动作代码: cardFront = new Array(); for (i=1; i<=20; i++) { cardFront[i] = Math.round(i/2); // 产生一数组, 0 号和 1 号值一样, 2 号和 3 号值一样,依此类推。 } for (i=1; i<=20; i++) { tem = cardFront[i]; k = Math.floor(1+20*Math.random()); cardFront[i] = cardFront[k]; cardFront[k] = tem; // 随机交换值, cardFront[i] 与 cardFront[k] 交换值 } for (i=1; i<=20; i++) { _root.attachMovie("card", "newcard"+i, i); with (_root["newcard"+i]) { _x = 265+((i-1)%5)*50; _y = 80+Math.floor((i-1)/5)*65 } _root["newcard"+i].cardNum = i; _root["newcard"+i].face = cardFront[i]; } _global.first=true; score = 0; exposedCard = new Array(); 5 、在第 3 帧输入如下动作代码: stop(); 6 、在“标题”图层第 1 帧键入作品的标题、作者名及相关说明文字等。
四、测试存盘。
|