2014-02-10 80 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,你可以在這裏寫自己的代碼,以便我們能夠幫助您正確