【发布时间】:2015-03-10 11:04:00
【问题描述】:
import flash.events.MouseEvent;
stop();
btn1ileri.addEventListener(MouseEvent.CLICK, ileri1);
function ileri1(event:MouseEvent):void
{
nextFrame();
}
有 3 个目标 dogrucevap1、dogrucevap2 和 dogrucevap3。还有 28 个拼图。
目的是将拼图(cvp1,cvp2,..cvp28)拖到目标上。
拼图贴在目标上后不会碰撞,每个目标上只有一块拼图。因此,如果拼图块相互碰撞,它们将返回到它们的第一个位置。
我无法将这些碎片恢复到原来的位置。
请查看returnfirstposition()
var puzzle:MovieClip=new MovieClip();
var puzzleparcalari:String;
var ilkX:int;
var ilkY:int;
for (var i:int=1; i<=28; i++)
{
puzzleparcalari = "cvp" + i;
puzzle = this[puzzleparcalari];//this["cvp" + i].buttonMode = true;
this["cvp" + i].addEventListener(MouseEvent.MOUSE_DOWN,surukle);
this["cvp" + i].addEventListener(MouseEvent.MOUSE_UP,birak);
}
function kontrol(e:Event) // checking recording first positions as ilkX and ilkY
{
this["cvp" + i].addEventListener(Event.ENTER_FRAME , kontrol);
ilkX = this["cvp" + i].x;
ilkY = this["cvp" + i].y;//this["cvp" + i].removeEventListener(Event.ENTER_FRAME , kontrol);
}
function surukle(e:MouseEvent) // starting drag and tracing x position
{
e.currentTarget.startDrag();
ilkX = e.currentTarget.x;
ilkY = e.currentTarget.y;//e.currentTarget.buttonMode = true;
trace(e.currentTarget.x);
}
var kutucuk:MovieClip=new MovieClip();
var kutucukismi:String;//d1.addEventListener(MouseEvent.MOUSE_DOWN,surukle);
function returnfirstposition() /creating return first position function
{
this.puzzle.x = ilkX;
this.puzzle.y = ilkY;
}
function birak(e:MouseEvent)
{
e.currentTarget.stopDrag();
for (var k:int=1; k<=3; k++)
{
kutucukismi = "dogrucevap" + k;
kutucuk = this[kutucukismi];
if (e.currentTarget.hitTestObject(this.kutucuk))
{
e.currentTarget.x = ilkX;
e.currentTarget.y = ilkY;
trace("kutucuk");
for (var i:int=1; i<=28; i++)
{
puzzleparcalari = "cvp" + i;
puzzle = this[puzzleparcalari];
if (e.currentTarget.hitTestObject(this.puzzle))
{
e.currentTarget.x = this.kutucuk.x;
e.currentTarget.y = this.kutucuk.y;
trace("this puzzle a değdi");
}
else
{
returnfirstposition();
}
}
}
}
}
【问题讨论】:
标签: actionscript-3 actionscript