2011-10-25 7 views
0

私はFlash CS5 AS3を使用して姉のための「シンプルな」スライドショーを作成しています。私はフラッシュプレゼンテーションテンプレートを使用しています。私は現在、プレゼンテーションを通してどの方向にナビゲートする既存の機能ボタンを持っています。唯一のことは、カバーページでは、フレーム> 1に移動するときに非表示にする「Enter」ボタンが必要です。私は現在、ボタンをすべて1つのレイヤーに、ムービークリップ(slides_mc)を別のレイヤーに、それに対するアクションは自分のレイヤーです。すべてがメインタイムライン上の1つのフレームだけで構成されています。 slides_mcにはactionscriptはなく、4つのフレームで構成されています。.currentFrameがムービークリップ内のフレームを見つけられないのはなぜですか?私のボタンは隠れていません。 Flash AS3

私はテストを実行するときに何のエラーもなくなりますが、ムービークリップ内の特定のフレームを見つけられないだけです。またはそれはフレームを見つけるが、.visible = falseを実行していない。

if(slides_mc.currentFrame>1) enter_btn.visible=false; 

またボタンは4つのすべてのフレームに表示されている:私は、次の使用している場合

私は、次を使用する場合:

if(slides_mc.currentFrame==1) enter_btn.visible=false; 

ボタンは、フレーム1に消えますが、他のフレームのいずれかで再び見えるようになることはありません。

次を使用する場合:ボタンが4つのすべてのフレームに表示されている

if(slides_mc.currentFrame==2) enter_btn.visible=false; 

これを呼び出して動作させるには、このコードを関数内に配置する必要がありますか?前もって感謝します。このボタンを隠す問題は私をナットにしています。私は本当にマルチメディア学校に戻る必要があります。

重要な情報に言及するのを忘れた場合や、結果に影響する可能性のある他のコードを確認する必要がある場合は、お知らせください。あなたの助けが大変ありがとうございます。

+0

すべてのコードは、メインタイムラインのフレーム1のactionscriptレイヤーにあります。 – Travis

答えて

0

また、行うことができます:

stage.addEventListener(Event.ENTER_FRAME, doThis); 

function doThis(){ if(slides_mc.currentFrame>1){enter_btn.visible=false;}} 

は次に機能はに、currentFrameのためにすべての時間をチェックすることになります。

+0

ありがとうSean!あなたは正しい軌道に乗っていた。私はちょうどカップルのものを微調整する必要があり、それはムービークリップにactionscriptを投げるのではなく、メインのactionscriptフレームから今すぐ欲しいものをやっています。前の一時点で "event.ENTER_FRAME"コールを試みましたが、私は関数の書式を正しく設定したとは思いません。正しい方向に私を指してくれてありがとう。 – Travis

+0

私にある方向性を与えてくれたSeanには大変感謝しています。上記の私の質問に対する完全に機能する答えがここにあります。 Seanが指摘したように、これはstage.addEventListenerと、タイムライン全体でslides_mcと通信するために必要な関数でした。 ここにあります: stage.addEventListener(Event.ENTER_FRAME、hidebtn); 関数hidebtn(イベント:イベント):ボイド {IF(slides_mc.currentFrame> = 2){ 偽= enter_btn.visible。 } else {enter_btn.visible = true} } は魅力的です。 – Travis

0

おそらく、最初のフレームにコードを入れます。 "if"を1回だけチェックし、次のフレームに移動するとこのコードは実行されません。 MovieClipを外部の.asファイルに拡張したくない場合は、フレームにコードvisible = falseを設定するだけです。非表示にするか、単にタイムラインからオブジェクトを削除する必要があります。

+0

ありがとうturbosqel、 – Travis

+0

私はあなたに感謝したいと思っています。私はボタンを隠すためにムービークリップ内にactionscriptを追加しましたが、メインタイムラインとムービークリップがその中をナビゲートしているにもかかわらず、actionscriptが一度だけチェックされる理由についてちょっと混乱しています。私は完璧に動作するメインタイムライン(frame1)のactionscript内に他のコードを持っています。 addEventListenerによって呼び出される関数である必要がありますか?混乱している。あなたが私を助けてくれてうれしい!ありがとう。 – Travis

+0

ええ、Flash IDEで自動的に生成されるコードであるイベントやイベントによって手動で呼び出されます...いくつかのフレームで新しいError( "bla")を投げてみると、関数の名前が表示されるはずですframe1()またはframe2()... – Neoraptor

-2
stage.addEventListener(Event.ENTER_FRAME, doThis); 

function doThis(event:Event){ if(slides_mc.currentFrame>1){enter_btn.visible=false;}} 
+0

この回答にはいくつかの説明が必要です。 –

関連する問題