2012-03-22 4 views
0

せずに何かを彼らは、α= 0[AS3]はランダムに私はMC1、MC2、MC3 が最初にあるステージで3ムービークリップをした繰り返し

私は私が、revealBtnにそれらの1をクリックされたときに何をしたいですアルファ= 1として表示されます。

しかし、以下のコードでは、約5回以上クリックする必要がある場合があります。

私が欲しいものはありますか?スプライスを試しましたが、まだうまくいきません。

var mcArray:Array = [mc1,mc2,mc3]; 
for (var j:int = 0; j < mcArray.length; j++) 
{ 
    mcArray[j].alpha = 0; 
} 

revealBtn.buttonMode = true; 
revealBtn.useHandCursor = false; 
revealBtn.addEventListener(MouseEvent.CLICK, revealClick); 

function revealClick(event:MouseEvent):void 
{ 
    var i:Number = Math.floor(Math.random() * mcArray.length); 
    var movieClipToEdit:MovieClip = mcArray[i] as MovieClip; 
    movieClipToEdit.alpha = 1; 
} 
+0

あなたが持っている問題は、すでにアルファ1を持つランダムなリターンムービークリップをクリックしたときので、あなたは、α= 0 – mgraph

+0

を持っていた1つのムービークリップは、あなたが少なくとも応答できるようになるまでクリックしなければならないということです – mgraph

+0

申し訳ありませんが、まだ試しスクリプト。 私は自分が望むものを達成する方法を理解しています。 しかし、@Nox Noctisからの回答もうまくいっています!みんなありがとう!!! – pizza0502

答えて

1

これは、さまざまな解決策の1つです。しかし、それは最初の配列を破壊します。最初の配列を変更したくない場合、残りは実際に何を達成したいかによって異なります。

var invisibleList:Array = [mc1,mc2,mc3]; 
for (var j:int = 0; j < invisibleList.length; j++) 
{ 
    invisibleList[j].alpha = 0; 
} 

revealBtn.buttonMode = true; 
revealBtn.useHandCursor = false; 
revealBtn.addEventListener(MouseEvent.CLICK, revealClick); 

function revealClick(event:MouseEvent):void 
{ 

    if (invisibleList.length == 0) { 
     return; 
    } 
    var i:Number = Math.floor(Math.random() * invisibleList.length);  
    var movieClipToEdit:MovieClip = invisibleList[i] as MovieClip; 
    invisibleList.splice(i, 1); 
    movieClipToEdit.alpha = 1; 
} 
0

選択ソースとして使用する2番目の配列を作成します。アイテムを選択するたびに、Splice 2番目の配列からそれを選択します。また、すべてのアイテムがMovieClipsであるため、代わりにVectorを使用する必要があります。

var mcVector:Vector.<MovieClip> = [mc1,mc2,mc3]; 
var vector2:Vector.<MovieClip> = mcVector.Slice(0); // This just copies the Vector 
for (var j:int = 0; j < mcVector.length; j++) 
{ 
    mcVector[j].alpha = 0; 
} 

revealBtn.buttonMode = true; 
revealBtn.useHandCursor = false; 
revealBtn.addEventListener(MouseEvent.CLICK, revealClick); 

function revealClick(event:MouseEvent):void 
{ 
    var i:Number = Math.floor(Math.random() * mcVector.length); 

    // Retrieves and deletes the item in one step: 
    var movieClipToEdit:MovieClip = vector2.Splice(i, 1); 
    movieClipToEdit.alpha = 1; 
} 
関連する問題