连连看图标其实四周有一圈为空的数组,相当于已经连接消除的样子。主要是用于连接成功边上的图标后,生成连接线的效果。

我们修改创建图标的方法:createIconArray(),根据判断来创建,四周不创建直接赋值为null

package com.llk.page
{import com.llk.play.ChooseCase;import flash.display.Sprite;import com.llk.icon.Icon;import com.llk.model.DataIcon;import com.llk.event.BaseEvent;import flash.events.Event;/*** ...* @author ragged*/public class PagePlay extends Sprite {/*** 游戏背景*/private var _bg:Sprite;/*** 连连看图标,二维数组*/private var _iconArr:Array = [];/*** x轴方向的图标数量*/private var _numX:uint = 10;/*** x轴方向的图标数量*/private var _numY:uint = 10;/*** 选择框*/private var _chooseCase:ChooseCase;/*** 第一次选择的图标*/private var _firstIcon:Icon = null;public function PagePlay() {super();this._bg = new ResPlayBg;this.addChild(this._bg);this.createIconArray();//this._chooseCase = new ChooseCase();this.addChild(this._chooseCase);this._chooseCase.visible = false;}/*** 当图标被点击时* @param  $evt*/private function whenClick($evt:Event):void{if (this._firstIcon){//第二次选择,开始判断相连消除}//第一次选择图标,记录选择,把选择框移到目标位置this._firstIcon = $evt.target as Icon;this._chooseCase.visible = true;this._chooseCase.x = $evt.target.x;this._chooseCase.y = $evt.target.y;}/*** 创建ICON二维数组*/private function createIconArray():void{//获取图标类型数组var typeArr:Array = DataIcon.gainIconArray([0, 1, 2, 3, 4, 5], 64, true);var k:uint = 0;var i:uint;var j:uint;//增加_numX,_numY全局变量for (i = 0; i < this._numX; i++){this._iconArr[i] = [];for (j = 0; j < this._numY; j++){if (i == 0 || j == 0 || i == this._numX - 1 || j == this._numY - 1){//数组最外围不创建图标this._iconArr[i][j] = null;}else{this._iconArr[i][j] = new Icon(typeArr[k], i, j);this._iconArr[i][j].addEventListener(BaseEvent.WHEN_CLICK, whenClick);this.addChild(this._iconArr[i][j]);//按数组顺序k++;}}}}}
}

然后为图标增加点击效果,点击后有个选择框在目标位置显示,选择框是不接收鼠标事件的。

图标被点击后,会发出点击事件,PagePlay在创建图标的时候会监听每个图标。

package com.llk.icon
{import flash.display.Sprite;import flash.events.Event;import flash.events.MouseEvent;import flash.utils.getDefinitionByName;import com.llk.event.BaseEvent;/*** ...* @author ragged*/public class Icon extends Sprite {/*** 图片类型*/private var _type:uint;/*** 图标*/private var _icon:Sprite;private var _i:uint;private var _j:uint;public function Icon($type:uint, $i:uint, $j:uint){super();this._type = $type;//记录图标在二维数组中的位置this._i = $i;this._j = $j;this.x = this._i * 51;this.y = this._j * 51;this.createIcon();this.mouseChildren = false;this.buttonMode = true;this.addEventListener(MouseEvent.MOUSE_DOWN, whenDown);}private function whenDown($evt:MouseEvent):void{this.dispatchEvent(new Event(BaseEvent.WHEN_CLICK));}/*** 根据类型创建图标*/private function createIcon():void{this._icon = new (getDefinitionByName("ResIcon" + this._type) as Class);this.addChild(this._icon);}}
}
package com.llk.event
{/*** ...* @author ragged*/public class BaseEvent {public static const WHEN_CLICK:String = "when_click";}
}
package com.llk.play
{import flash.display.Sprite;/*** ...* @author ragged*/public class ChooseCase extends Sprite {private var _display:Sprite;public function ChooseCase() {super();this.mouseChildren = false;this.mouseEnabled = false;//在fla中增加导出显示类:ResChooseCasethis._display = new ResChooseCase();this.addChild(this._display);}}
}

AS3连连看源码教程(三)相关推荐

  1. html5连连看源码解析,JS连连看源码完美注释版(推荐)

    JS连连看源码完美注释版 table{ border-collapse: collapse; } td{ border: solid #ccc 1px; height: 36px; width: 36 ...

  2. 宝塔安装授权源码教程

    宝塔安装授权源码教程 注意:3.0之后不支持从免费版升级到授权版. 授权源码购买后,大家登录Niushop官网,点击授权账号进入到个人中心,在首页就可以看到购买的授权信息,包括授权码和授权证书. 授权 ...

  3. 传奇h5私服源码+教程

    传奇h5私服源码+教程 这几天突然想拿服务器做些什么,就想到搭一个私服游戏,学习娱乐一下.废话不多说下面给教程和源码. 传奇h5源码:https://download.csdn.net/downloa ...

  4. 24 UsageEnvironment使用环境抽象基类——Live555源码阅读(三)UsageEnvironment

    24 UsageEnvironment使用环境抽象基类--Live555源码阅读(三)UsageEnvironment 24 UsageEnvironment使用环境抽象基类--Live555源码阅读 ...

  5. 试读angular源码第三章:初始化zone

    直接看人话总结 前言 承接上一章 项目地址 文章地址 angular 版本:8.0.0-rc.4 欢迎看看我的类angular框架 文章列表 试读angular源码第一章:开场与platformBro ...

  6. 龙格库塔法解微分方程组的matlab程序,MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc...

    MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc MATLAB实例源码教程龙格库塔法求解微分方程组源代码实例题目用经典 Runge-Kutta方法求下列一阶微分方程组的近似解y1 ...

  7. 畅玩mt3单机游戏服务器维护,【梦幻西游】MT3仿端手工游戏服务端源码[教程+授权物品后台]...

    [梦幻西游]MT3仿端手工游戏服务端源码[教程+授权物品后台] 架设教程 系统:CentOS 6.8  64位 1.关闭防火墙 chkconfig iptables off service iptab ...

  8. mybatis源码阅读(三):mybatis初始化(下)mapper解析

    转载自 mybatis源码阅读(三):mybatis初始化(下)mapper解析 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单. ...

  9. 【干货】顶级 Java 源码教程项目大汇总!

    大家好,我是鱼皮,今天分享几个 GitHub 上顶级的 Java 源码教程项目. 区别于书籍.文档.视频等形式的教程,这些项目几乎都是由 精简的代码片段 和 Demo 组成的,能够轻松地在本地执行,非 ...

最新文章

  1. KDD 2017奖项全公布,华人成最大赢家
  2. Python中斐波那契数列的四种写法
  3. 数位 dp 最低位最高位之差绝对值大于2_2020赛季30大球员系列:第27位 微笑刺客 肯巴沃克...
  4. WebService的相关概念1
  5. javascript php 传值,js 传值到 PHP 有关问题
  6. 牛客练习赛84F-牛客推荐系统开发之下班【莫比乌斯反演,杜教筛】
  7. raspberry pi_庆祝Raspberry Pi的14天
  8. 【转】网络安全-------防止被抓包
  9. MVC 之Action
  10. NFine.Framework框架去除cookie后门
  11. 利用canvas制作乱跑的小球
  12. 如何使iframe透明
  13. Python爬取句子迷-莎士比亚语录
  14. TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)
  15. html5学习计划,关于学习计划模板汇编5篇
  16. 力扣887题-鸡蛋掉落
  17. @Responsebody utf8 Chinese gibberish
  18. 今后,若你的公众号还按老方式发广告,罚款高的可达百万。有公众号已经被惩处了。
  19. 模拟QQ自动隐藏窗体
  20. 电大计算机理工英语19年秋季,国家开放大学2020年秋季学期电大《理工英语1》形成性考核答案...

热门文章

  1. 风云杯大学生信安大赛(Web部分题解)
  2. 微信朋友圈的实现(图片查看,手势放大、缩小)
  3. Android 基于MediaCodec开发抖音短视频录制(壹)
  4. java Mail imap协议获取到得邮件文件夹名称
  5. R语言某一年各省各月份天气数据爬取
  6. 4rx4 服务器内存2rx4_同样是容量4GB 服务器内存,2RX4和4RX8的有什么区别?
  7. 解决pip网速太慢而安装失败的问题
  8. 绝地求生6月28日服务器维护,绝地求生6月28日怎么进不去游戏_绝地求生6月28日停机更新公告_玩游戏网...
  9. MipMap的LOD实现原理
  10. python list 转数组assay