package com{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.utils.Timer;
import flash.events.TimerEvent; public class SXPT extends MovieClip { private var mouseMc:MovieClip;
private var roundInt:int;
private var roundArr:Array;
private var startXYarr:Array;
private var newMc:MovieClip;
private var point:Point;
private var timer:Timer;
public function SXPT(_mouseMc:MovieClip) {
mouseMc=_mouseMc;
roundInt=0;
roundArr=[];
startXYarr=[];
while (roundArr.length<12) {
roundInt=1+Math.random()*12;
if (roundArr.indexOf(roundInt)==-1) {
roundArr.push(roundInt);
}
}
for (var i:uint=1; i<=12; i++) {
mouseMc["darg_"+roundArr[i-1]].x=mouseMc["di_"+i].x;
mouseMc["darg_"+roundArr[i-1]].y=mouseMc["di_"+i].y;
}
mouseMc.addEventListener(MouseEvent.MOUSE_DOWN,onMouseMc);
mouseMc.addEventListener(MouseEvent.MOUSE_UP,onMouseMc);
}
private function onMouseMc(e:MouseEvent) {
var str:String=e.target.name;
if (str.slice(0,2)=="da") {
if (e.type=="mouseDown") {
newMc=e.target as MovieClip;
mouseMc.setChildIndex(newMc,mouseMc.numChildren-1);
startXYarr.push(newMc.x,newMc.y);
newMc.startDrag();
} else if (e.type=="mouseUp") {
point=new Point(newMc.x+newMc.width/2,newMc.y+newMc.height/2);
point=mouseMc.localToGlobal(point);
for (var i:uint=1; i<=12; i++) {
if (mouseMc["darg_"+i].hitTestPoint(point.x,point.y)) {
if (newMc.name.slice(5,7)!=String(i)) {
newMc.x=mouseMc["darg_"+i].x;
newMc.y=mouseMc["darg_"+i].y; mouseMc["darg_"+i].x=startXYarr[0];
mouseMc["darg_"+i].y=startXYarr[1];
break
}
} else { newMc.x=startXYarr[0];
newMc.y=startXYarr[1];
}
}
stopDrag();
startXYarr=[];
}
}
}
}
}

as3.0拼图的更多相关文章

  1. [ActionScript 3.0] AS3.0和AS2.0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  2. 转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式

    Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式 出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html 关 ...

  3. as3.0 interface接口使用方法

    [转]as3.0 interface接口使用方法 AS在2.0的时候就支持接口了 接口能够让你的程序更具扩展性和灵活性,打个例如 比方你定义了一个方法 代码: public function aMet ...

  4. AS3.0定义变量的访问范围

    在AS3.0中变量的默认访问范围是:internal:包内成员可以访问,包外不可访问.AS2.0默认访问范围是public

  5. AS3.0函数定义的方法

    在AS3.0中函数的定义有两种方法: 函数语句定义法: function 函数名(参数1:参数类型,参数2:参数类型):返回值类型{ 函数折行的语句 } function testAdd(a:int, ...

  6. AS3.0下去除flash右键菜单

    这两天工作中遇到一个问题,就是网页中内嵌的flash小游戏的用户体验,当鼠标在flash上点击右键时,出现的右键菜单中会有播放,停止等选项,虽然不会造成什么漏洞,但是体验非常差.在寻找解决方案的时候, ...

  7. As3.0 类的【枚举】

    As3.0 类的枚举   “枚举”是您创建的一些自定义数据类型,用于封装一小组值.ActionScript 3.0 并不支持具体的枚举工具,这与 C++ 使用 enum 关键字或 Java 使用 En ...

  8. Java&&As3.0 中的final 关键字

    Java和AS3.0关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率.   可以修饰的对象:   fin ...

  9. “AS3.0高级动画编程”学习:第一章高级碰撞检测

    AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...

随机推荐

  1. Cannot invoke Tomcat manager: socket write error

    一开始, 参照 http://www.cnblogs.com/yezhenhan/archive/2012/07/17/2594684.html mvn tomcat:redeploy 出现: Can ...

  2. hdfs standby namenode checkpoint 的一些参数

    dfs.namenode.checkpoint.period --两次检查点创建之间的固定时间间隔,默认3600,即1小时.所以去ann snn 看到的fsimage 相隔1个小时. dfs.name ...

  3. 【3-28】JavaScript的DOM操作

    一.定义:DOM是一种用于HTML和XML文档的编程接口. 二.Windows对象操作: (一)Window.open(URL,name,features,replace) 1.URL;页面地址 2. ...

  4. linux 开关机指令

    shutdown -h now  现在关机 shutdown -h  1  1分钟后电脑关机 su  切换 用户 halt 关机 reboot 重启 sync :保存

  5. 20165304 实验二 Java面向对象程序设计

    一.面向对象程序设计1--单元测试和TDD 实验要求 1.参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习 2 ...

  6. flash builder的配色方案

    写代码的时候看着代码颜色不是特别好,于是研究了一下flash builder的配色方案. flash builder由eclipse开发,采用和eclipse相同的配置方法,这个网站上有很多配色模板: ...

  7. css:调整placeholder样式

    input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #C5CACF; } input:-moz ...

  8. Linux命令:ssh-copy-id

    ssh-copy-id帮助 SSH-COPY-ID() BSD General Commands Manual SSH-COPY-ID() NAME ssh-copy-id — use locally ...

  9. C# 泛型可能导致的装箱操作陷阱

    代码如下,已解释 public bool TryGetValue(K key, out V value) { //注意这里,如果key是普通值类型,如int,key == null的判断会导致int的 ...

  10. k8s删除一个Node并重新加入集群

    k8s删除一个节点使用以下命令 删除一个节点前,先驱赶掉上面的pod kubectl drain 172.17.3.51 --delete-local-data 然后我们来删除节点 kubectl d ...