2014-02-10 70 views
1

我是老师试图使一个简单的Flash AS3游戏,学生可以拖动从A-Z(影片剪辑)的任何信件出舞台上创建单词中间。拖,放和克隆 - 闪光AS3

我是一个Flash业余爱好者,所以使用代码片段,我已经成功地允许用户拖放字母,但我真正喜欢的是用户能够拖放一封离开原件的信件有信件的电影片段,并根据需要多次克隆一个新片段。

有没有人能帮助我的AS3我需要做到这一点?非常感谢。

+1

我刚刚发现这个SWF,它提供了我想要实现的完美示例:https://dl.dropboxusercontent.com/u/418650/hype/08_Using_5_Frames.swf – James

回答

0

这里是一个快速的样品。 FLA | SWF

CODE:

import flash.display.MovieClip; 

for (var i=1; i<5; i++) 
{ 
    this["object" + i].addEventListener(MouseEvent.MOUSE_DOWN, onStart); 
    this["object" + i].addEventListener(MouseEvent.MOUSE_UP, onStop); 
}  

var sx = 0,sy = 0; 

function onStart(e) 
{ 
    sx = e.currentTarget.x; 
    sy = e.currentTarget.y; 
    e.currentTarget.startDrag(); 
} 

function onStop(e) 
{ 
    if (e.target.dropTarget != null && 
    e.target.dropTarget.parent == dest) 
    { 
     var objectClass:Class = 
     getDefinitionByName(getQualifiedClassName(e.currentTarget)) as Class; 
     var copy:MovieClip = new objectClass(); 
     this.addChild(copy); 
     copy.x = e.currentTarget.x; 
     copy.y = e.currentTarget.y; 
    } 

    e.currentTarget.x = sx; 
    e.currentTarget.y = sy; 
    e.currentTarget.stopDrag(); 
} 

希望你可以把它提前&转成你的孩子一些有用的东西。

+0

非常感谢您的帮助。 – James

+0

很高兴帮助。如果这个答案解决了你的问题,请检查绿色的勾号。 – loxxy

+0

非常感谢您的帮助@loxxy。目前为止,除了一件事情之外,它工作得很好。我希望孩子们能够在舞台上的主要部分周围拖放信件里,他们已经从左边或右边的底部取出后他们。有没有一种方法可以在AS3中添加此功能? [SWF(http://www.jamesjardine.net/ict/sample.swf)[FLA](http://www.jamesjardine.net/ict/sample.fla) – James

0

首先,您可以为您的信件使用名为“type”和“letter”的财产作为假设它是原件或副本以及哪个字母。

然后初始化一个空的对象变量使用点击

var draggingObj:Object; 

时,那么你就可以检查是否在原单信用户点击进行复制和移动或点击副本只是移动

if (Letter(clickedLetter).type == "original") 
{ 
draggingObj = new Letter(); 
draggingObj.type = "copy"; 
draggingObj.letter = Letter(clickedLetter).letter; 
} 
else draggingObj = Letter(clickedLetter); 

draggingObj.x = mousex; 
draggingObj.y = mousey; 

如果无法实现这codeflow您codeflow,你可以在这里写自己的代码,以便我们能够帮助您正确