2013-05-06 77 views
0

我正在嘗試做一個連接點的遊戲,我碰到了一個障礙。AS3檢查兩個電影剪輯是否是相同的顏色?

如何檢查兩個影片剪輯是否具有相同的顏色?使用colorTransforms,我已經做到這一點,當你將鼠標懸停在一個點上時,它會變成綠色,如果你將鼠標懸停在下一個正確的點上,該點也會變成綠色,其餘的變成紅色。

當兩個點是相同的顏色(綠色),我想要一個功能,將連接兩個點的線改變爲可見。我將如何編寫條件語句?

這裏是我的代碼:

line1.visible = false; 

var red:ColorTransform = new ColorTransform(); 
red.color = 0xFF0000; 

var green:ColorTransform = new ColorTransform(); 
green.color = 0x00FF00; 

dot1.addEventListener(MouseEvent.MOUSE_OVER, color1Toggle, false, 0, true); 
dot2.addEventListener(MouseEvent.MOUSE_OVER, color2Toggle, false, 0, true); 

function color1Toggle(event:Event):void{ 
    dot1.transform.colorTransform = green; 
    dot2.transform.colorTransform = red; 
} 

function color2Toggle(event:Event):void{ 
    dot2.transform.colorTransform = green; 
} 

所以當DOT1和DOT2是綠色的,我希望一號線的可見性更改爲true。

有什麼建議嗎? 謝謝:)

+0

我會在你的MC中使用一個自定義參數,或者支持的數據可以說MC是什麼顏色,沒有任何圍繞MC內容的鼓點。當您希望MC更改框架或顏色轉換時,可以更新該參數。只要其中一個MC的顏色發生變化,就爲任何一對MC提供一個檢查方法。 – Vesper 2013-05-06 12:24:12

回答

1
function color1Toggle(event:Event):void{ 
    dot1.transform.colorTransform = green; 
    dot2.transform.colorTransform = red; 
    checkSameColors() 
} 

function color2Toggle(event:Event):void{ 
    dot2.transform.colorTransform = green; 
    checkSameColors() 
} 

function checkSameColors():void { 
    if (dot2.transform.colorTransform.color == dot1.transform.colorTransform.color) { 
     //same color 
     if (dot1.transform.colorTransform.color == 0x00FF00 ) { 
      //both are 0x00FF00 
      line1.visible = true; 
     } 
    } 
} 

這不是通用的代碼,但它回答你的問題。

+0

謝謝!發揮魅力。我也設法讓它改變點的可見性,但我更喜歡這個。再一次感謝你! – 2013-05-06 13:51:08