2012-01-20 3 views
0

初心者のFlash devはこちらです。私はステージ上の既存のMCの名前を新しい変数に渡してトゥイーンするのに少し問題があります。私は見つけることができるすべてを試しました。 ここにセットアップがあります:AS3 currentLabelを使用して既に名前の付いたMCを参照しています

3つのレベルの難易度:Easy、Moderate、Hard。各質問は図書館の別々のMCです。 各質問には、通常のテキストと変更されたテキストの2つの文字列があります。 container_MCにはすべての質問が含まれています。
container_MCの内側には、各フレームに質問MCの1つとハイライトという2番目のMCが含まれています。 これらのフレームのそれぞれは、質問の難易度と質問番号、すなわちeasyQuestion1でラベル付けされます。 ハイライトは、変更を囲むボックスを含むMCです。これは、フレーム+「ハイライト」、つまりeasyQuestion1Highlightと同じようにラベリングされます。 各ハイライトボックスはAlpha = 0です。 各フレームには、正解と問題の難易度を決定する変数も含まれています。 ステージ上のオブジェクトのどれもがaddChildで動的に追加されていません(私のイントロの初心者の部分に注意してください:D)。

私のmaintimelineには、container_MCのインスタンスが1つあります。プレーヤーが正しい回答を選択した場合、現在のフレームハイライトボックスはアルファ= 0からアルファ= 1に変わります。 私がしようとしているのは、MCの名前の一部としてframeLabelを渡すことです。ここでいくつかのコードを調べます。

import com.greensock.* 

container_MC.addEventListener(Event.ENTER_FRAME,continueQuestions); 

function continueQuestions(evt:Event){ 
    evt.target.removeEventListener(Event.ENTER_FRAME,continueQuestions); 
} 

var myVar:String=(container_MC.currentLabel);//Trace returns easyQuestion1. 
var myVar2:String=(myVar+"Highlight");//Trace returns easyQuestion1Highlight. 
var highlightVar:MovieClip= MovieClip(container_MC.myVar2);//Trace returns null. 

nextQuestion_btn.addEventListener(evt:MouseEvent.CLICK, nextQuestion); 

function rightAnswer(e:Event):void{ 
    tweenMax.to(highlightVar, 1, {autoAlpha:1}); 
} 

function nextQuestion(e:Event):void{ 
    tweenMax.to(highlightVar, .25, {autoAlpha:0}); 
    container_MC.nextFrame(); 
} 

実際のコードでは、nextQuestionには、プレーヤがどこに行くかを制御するif条件else ifのグループがあります。しかし、私たちの目的のためには、次のフレームのハイライトボックスで作業する必要があります。

答えて

1

優秀な質問!この代わりに...

var highlightVar:MovieClip= MovieClip(container_MC.myVar2); 

:何をする必要があると、この行を変更している、コンテナの」「container_MC.myVar2」の手段を表現するmyVar2というプロパティを探しので、これは

var highlightVar:MovieClip= MovieClip(container_MC.getChildByName(myVar2)); 

"したがって、" myVar2 "getはリテラルStringとして使用され、可変参照としては使用されません。お役に立てれば!

+0

パーフェクト!それはまさに私が必要としたものでした。あなたは学者と紳士です! – ersellix

+0

ありがとう!これが問題を解決するなら、Plzを答えとしてマークしてください。 :) –

関連する問題