2014-02-10 5 views
1

저는 학생들이 a-z (영화 클립)의 모든 글자를 스테이지 중간까지 드래그하여 단어를 만들 수있는 간단한 Flash AS3 게임을 만들기 위해 노력하는 선생입니다.드래그 앤 드롭 및 복제 - Flash AS3

나는 플래시를 사용하는 총 아마추어이므로 코드 스 니펫을 사용하여 사용자가 글자를 끌어다 놓을 수있게 허용했지만 사용자가 글자를 끌어서 놓기를 원할 경우 사용자가 원본을 놓고 글자를 끌어다 놓을 수 있습니다. 편지 동영상 클립을 제자리에두고 필요한만큼 여러 번 복제하십시오.

이 작업을 수행하는 데 필요한 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; 

을 클릭하면

다음 orginal 한 편지에 대한 사용자의 클릭이 복사본을 만들어 이동하거나 복사를 클릭하면 바로 이동하는 경우 다음 확인할 수 있습니다 사용하는 빈 개체 변수를 초기화

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; 

코드 플로우에이 코드 플로우를 구현할 수없는 경우 여기에 직접 코드를 작성하여 올바르게 도울 수 있습니다.