2011-04-25 18 views
0

我一直在嘗試在數字媒體上的課程中編寫遊戲,並且遇到了有關可拖動項目的巨大障礙。我首先設法使一個項目,可以使用此代碼鼠標拖動它(影片剪輯被稱爲「蜂蜜」):在Adobe Flash CS3中拖動多個項目Actionscript

//set listeners 
honey.addEventListener(MouseEvent.MOUSE_DOWN, startHoneyDrag); 
stage.addEventListener(MouseEvent.MOUSE_UP, stopHoneyDrag); 
honey.addEventListener(Event.ENTER_FRAME, dragHoney); 

//offset between sprite location and click 
var clickOffset:Point = null; 

//user clicked 
function startHoneyDrag(event:MouseEvent) { 
     clickOffset = new Point(event.localX, event.localY-7); 
} 

//user released 
function stopHoneyDrag(event:MouseEvent) { 
    clickOffset = null 
} 
//run every frame 
function dragHoney(event:Event) { 
    if (clickOffset != null) { // must be dragging 
    honey.x = mouseX - clickOffset.x; 
    honey.y = mouseY - clickOffset.y; 
    } 
} 

然而,讓不止一個可移動的短片已被證明是不可能的爲止。由於代碼的部分衝突,多次使用相同的代碼會產生錯誤。當我問一個更好的編程學生時,他告訴我要創建一個數組,我這樣做了;

var honeyBall:Array = new Array(); 
honeyBall = ["honey, honey1, honey2"]; 

但是現在我不知道如何製作一個引用影片剪輯的代碼來引用它們的數組。幫助會受到嚴重的讚賞,因爲這些問題一直給我帶來嚴重的麻煩。

回答

1
honeyBall = ["honey, honey1, honey2"]; 

這是包含一個字符串的數組。你應該讓你的剪輯實例到數組,像這樣:

honeyBall = [honey1, honey2, honey3]; 

然後你將它拖動

function dragHoney(event:Event) { 
    if (clickOffset != null) { 
     for each (var honey:DisplayObject in honeyBall) { 
      honey.x = mouseX - clickOffset.x; 
      honey.y = mouseY - clickOffset.y; 
     } 
    } 
} 

(將拖累數組的一切,無論是一個或幾個片段。)

相關問題