- 浏览: 50370 次
- 性别:
- 来自: 武汉
最新评论
全屏观看地址:
[url=http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=14561576&uid=1053530897&pid=346&tid=1]
视频1地址
[/url]
[url=http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=14562838&uid=1053530897&pid=346&tid=1]
视频2地址
[/url]
[url=http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=14562439&uid=1053530897&pid=346&tid=1]
视频3地址
[/url]
源文件及 PPT 下载:
[url=http://www.fs2you.com/files/76b3bea8-41d3-11dd-ba6f-001143e7b41c/]
http://www.fs2you.com/files/76b3bea8-41d3-11dd-ba6f-001143e7b41c/
[/url]
[1b]代码公布(数字版):[/1b]
[1b]Card.as:[/1b]
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.filters.*;
import flash.events.MouseEvent;
public class Card extends Sprite {
public var id:int;
public var W:Number = 30;
public var H:Number = 40;
public var i:int;
public var j:int;
public var TargetCard:Card;
private var color:uint = 0xcccccc;
public var Path:Array = new Array();
private var pressed:Boolean = false;
public var line:Sprite = new Sprite();
public function Card(id:int) {
this.id = id;
init();
}
function init():void {
graphics.beginFill(color);
graphics.drawRect(0,0,W,H);
graphics.endFill();
var Text:TextField = new TextField();
Text.text = String(id);
Text.selectable = false;
Text.autoSize = "left";
var tf:TextFormat = new TextFormat(null,25);
// tf.size = 25;
Text.setTextFormat(tf);
addChild(Text);
addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
}
function setIndex(a:int, b:int):void {
i = a;
j = b;
}
function Pressed():void {
pressed = true;
}
function UnPressed():void {
pressed = false;
this.filters = null;
}
function MouseOver(evt:MouseEvent):void {
var blur:BevelFilter = new BevelFilter();
var shadow:DropShadowFilter = new DropShadowFilter(10);
var f:Array = new Array();
f.push(blur);
f.push(shadow);
this.filters = f;
}
function MouseOut(evt:MouseEvent):void {
if (pressed == false) {
this.filters = null;
}
}
}
}
============================================
[1b]Main.as[/1b]
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
public class Main extends Sprite {
var Row:uint = 4;
var Colum:uint = 5;
var MarginLeft:Number = 180;
var MarginTop:Number = 100;
var oldCard:Card;
var map:Array;
public function Main() {
init();
}
function init():void {
map = new Array(Row + 2);
var numArray:Array = new Array();
for (var i:uint = 0; i numArray[i] = new Array();
var num:uint = 0;
for (var j:uint = 0; j numArray[i][j] = ++num;
}
}
for (i = 0; i for (j = 0; j var Rani:uint = Math.floor(Math.random() * Row);
var Ranj:uint = Math.floor(Math.random() * Colum);
var temp:uint = numArray[i][j];
numArray[i][j] = numArray[Rani][Ranj];
numArray[Rani][Ranj] = temp;
}
}
for (i = 0; i map[i] = new Array(Colum + 2);
for (j = 0; j if (i ==0 || j ==0 || i == Row + 1 || j == Colum + 1) {
map[i][j] = 0;
} else {
map[i][j] = 1;
}
}
}
for (i = 0; i for (j = 0; j var card:Card = new Card(numArray[i][j]);
addChild(card);
card.x = MarginLeft + j * (card.W + 2);
card.y = MarginTop + i * (card.H + 2);
card.setIndex(i + 1, j + 1);
card.addEventListener(MouseEvent.CLICK, onClick);
}
}
}
function onClick(evt:MouseEvent):void {
try {
var currentCard:Card = Card(evt.target.parent);
} catch (error:Error) {
currentCard = Card(evt.target);
}
if (oldCard == null) {
oldCard = currentCard;
oldCard.Pressed();
} else {
oldCard.TargetCard = currentCard;
// successfully matched!
if (isMatched()) {
addChild(oldCard.line)
oldCard.line.graphics.clear();
oldCard.line.graphics.lineStyle(2);
var node:Object = oldCard.Path.shift();
oldCard.line.graphics.moveTo(MarginLeft + node.y * oldCard.W - oldCard.W / 2, MarginTop + node.x * oldCard.H - oldCard.H / 2);
oldCard.addEventListener(Event.ENTER_FRAME, ToLink);
oldCard = null;
} else {
// Can not Match!
oldCard.UnPressed();
oldCard = null;
}
}
}
function ToLink(evt:Event):void {
var card:Card = Card(evt.target);
if (card.Path.length > 0) {
var node:Object = card.Path.shift();
card.line.graphics.lineTo(MarginLeft + node.y * card.W - card.W / 2, MarginTop + node.x * card.H - card.H / 2);
} else {
map[card.i][card.j] = 0;
map[card.TargetCard.i][card.TargetCard.j] = 0;
card.removeEventListener(Event.ENTER_FRAME, ToLink);
removeChild(card);
removeChild(card.line);
removeChild(card.TargetCard);
}
}
function isMatched():Boolean {
if (oldCard == oldCard.TargetCard || oldCard.id != oldCard.TargetCard.id) {
return false;
}
var x1:uint = oldCard.i;
var y1:uint = oldCard.j;
var x2:uint = oldCard.TargetCard.i;
var y2:uint = oldCard.TargetCard.j;
var node:Object = new Object();
var tempPath:Array = new Array();
for (var i:uint = 0; i var count:uint = 0;
tempPath.splice(0);
var step:int = (y1 > i) ? -1 : 1;
for (var j = y1; j != i; j += step) {
count += map[x1][j];
node = {x:x1,y:j};
tempPath.push(node);
}
step = (x1 > x2) ? -1 : 1;
for (j = x1; j != x2; j += step) {
count += map[j][i];
node = {x:j,y:i};
tempPath.push(node);
}
step = (i for (j = i; j != y2; j+= step) {
count += map[x2][j];
node = {x:x2,y:j};
tempPath.push(node);
}
if (count == 1) {
if (oldCard.Path.length == 0 || tempPath.length oldCard.Path = tempPath.slice();
}
}
}
for (i = 0; i count = 0;
tempPath.splice(0);
step = (i for (j = x1; j != i; j += step) {
count += map[j][y1];
node = {x:j,y:y1};
tempPath.push(node);
}
step = (y2 > y1) ? 1 : -1;
for (j = y1; j != y2; j += step) {
count += map[i][j];
node = {x:i,y:j};
tempPath.push(node);
}
step = (x2 > i) ? 1 : -1;
for (j = i; j != x2; j += step) {
count += map[j][y2];
node = {x:j,y:y2};
tempPath.push(node);
}
if (count == 1) {
if (oldCard.Path.length == 0 || tempPath.length oldCard.Path = tempPath.slice();
}
}
}
if (oldCard.Path.length > 0) {
node = {x:x1, y:y1};
oldCard.Path.unshift(node);
node = {x:x2, y:y2};
oldCard.Path.push(node);
return true;
}
return false;
}
}
}
详细地址
http://blog.sina.com.cn/s/blog_3ecb9b110100a1wk.html
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/4875.html
发表评论
-
Flash站技术应用(7)—FileReference路径获取问题
2010-04-10 14:24 603关于flash后台通信问题,大家先看下 火山的Flash+a ... -
Flash站技术应用(7)—FileReference路径获取问题
2010-04-10 14:24 669关于flash后台通信问题,大家先看下 火山的Flash+a ... -
flash打造自动提交表单
2010-04-10 14:23 564[1b]方法一: [/1b] Unti ... -
flash打造自动提交表单
2010-04-10 14:23 789[1b]方法一: [/1b] Unti ... -
Flash 8打造的一个超酷的Flash Web站点
2010-04-10 14:23 680用Flash制作一个[1b]Flash web站点[/1b], ... -
flv文件格式解读之视频tags
2010-04-10 09:43 863视频tags的组成: //------------------ ... -
flv文件格式解读之视频tags
2010-04-10 09:43 760视频tags的组成: //------------------ ... -
flv文件格式解读之data tags结构及实例分析
2010-04-10 09:43 915data tag的组成 //----------------- ... -
flv文件格式解读之data tags结构及实例分析
2010-04-10 09:43 873data tag的组成 //----------------- ... -
减少fms对磁盘的损耗
2010-04-10 09:42 581使用fms的rtmp协议可以让用户更为流畅的接受音频或者视频流 ... -
我对as3声音架构的理解
2010-04-09 12:39 562一直都对as3的声音架构 ... -
as3.0游戏开发之打气球系列(一)
2010-04-09 12:39 487好久没有写正经的文章 ... -
as3按钮事件
2010-04-09 12:38 562在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 12:38 627很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 12:38 638[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 08:18 526很不错的视频教程 原文地址: http://blog.sina ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 08:17 484很不错的视频教程 原文地址: http://blog.sina ... -
BlazeDS入门及配置
2010-04-09 08:17 589无论是哪种服务器端技 ... -
BlazeDS入门及配置
2010-04-09 08:17 656无论是哪种服务器端技 ... -
卡通人物手脚的绘画方法和技巧
2010-04-08 08:18 657俗话说“画人难画手”,这说明画手是比较难的,为此我们应先了解手 ...
相关推荐
【Java毕业设计】基于Java的连连看游戏设计与实现(论文+答辩PPT+源代码+讲解视频).zip 【Java毕业设计】基于Java的连连看游戏设计与实现(论文+答辩PPT+源代码+讲解视频).zip 【Java毕业设计】基于Java的连连看...
Flash连连看游戏,Flash源码、源文件下载。学习编写Flash游戏制作的可参考这个flash源码,连连看在以前也是风靡一时的火爆游戏,用Flash做出连连看,其效果与原版游戏没什么区别。
图片汉字连连看(flash互动游戏)Flash课件.swf
基于JAVA的连连看游戏设计与实现.pdf
基于java的连连看游戏设计和实现,基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下: (1)消除模块: 完成连连看游戏消除动作的模块。 (2)重新开始模块: 完成...
基于java的连连看游戏设计与实现的部分文档和部分代码
Flash小游戏开发成本低,开发方便已经有很多游戏开发者专业从事Flash小游戏开发,开发Flash小游戏技术门槛低,需要的是创意。这也是Flash小游戏能够获得良好用户体验的根本原因。许多有想法有创意的年轻人投身于...
许多人在 PC 机或手机上都玩过图片连连看游戏,看着很简单,但自己真的动手设计,完成过程其实很艰辛.如果是制作手机连连看游戏,编译完成的连连看游戏需要将生成的安装包上传至手机,在生成的源文件里打开 bin ...
一个连连看游戏的flash源码,算法精典
基于Java的连连看游戏设计与实现毕业设计论文文档+软件源码+视频说明,基于java的连连看游戏设计和实现,基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下: (1)消除...
连连看小游戏设计毕业设计.pdf连连看小游戏设计毕业设计.pdf连连看小游戏设计毕业设计.pdf连连看小游戏设计毕业设计.pdf连连看小游戏设计毕业设计.pdf连连看小游戏设计毕业设计.pdf连连看小游戏设计毕业设计.pdf...
基于Qt的连连看游戏的设计
微信小游戏源码 奇葩连连看游戏源码(仅用于学习参考)微信小游戏源码 奇葩连连看游戏源码(仅用于学习参考)微信小游戏源码 奇葩连连看游戏源码(仅用于学习参考)微信小游戏源码 奇葩连连看游戏源码(仅用于学习...
java毕业设计——基于Java的连连看游戏设计与实现(论文+答辩PPT+源代码+讲解视频).zip java毕业设计——基于Java的连连看游戏设计与实现(论文+答辩PPT+源代码+讲解视频).zip java毕业设计——基于Java的连连看...
宠物连连看flash源文件,直接导出就可以运行,这个比较简单,对制作连连看得游戏比较有帮助,现在连连看的游戏很多!所以大家可以做的更好一些!
flash小游戏 源文件 连连看 主要运用actionscript 1.0~2.0 的技术,可用于初学者提交作业等用途。可以修改和学习。
这是用Flash编写的一个连连看小游戏,源代码,希望对大家的学习有所帮助!
基于java的连连看游戏设计和实现,基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下: (1)消除模块: 完成连连看游戏消除动作的模块。 (2)重新开始模块: 完成...
基于java的连连看游戏设计和实现,基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下: (1)消除模块: 完成连连看游戏消除动作的模块。 (2)重新开始模块: 完成...
基于flash cs5的连连看小游戏,通过面向对像思想的开发