2013-06-11 16 views
1

我正在創建一個遊戲,並且大部分都進​​展順利。然而,它往往在某個幀上有一個按鈕,應該讓它進入某個幀並播放。 在我的研究,我發現了以下解決方案如何在不同的框架上使用具有外部腳本/ documentclass ac3的按鈕

  1. 可能隱藏在第1幀和運行代碼按鈕(需要知道 如何做到這一點看)。
  2. 只添加框架上的按鈕的聽衆在 問題(我不明白這其中,沒有他們的意思是:內 編碼的時間線,而不是一個包內)

來源:a stackoverflow solved question

我還發現這個計算器的問題link 2 這個鏈接顯示了一些關於隱藏按鈕,但我認爲這不是意味着在包內。但我改變了下面的內容。

基於從第3幀以上鍊接

package 
    { 

import flash.display.MovieClip; 
import flash.events.Event; 

import flash.events.MouseEvent; 

    public class DocumentClass extends MovieClip 
{ 
    public var b1:Boolean = false; 
    public var b2:Boolean = false;   

    public function DocumentClass() 
    { 
     init(); 


    } 
    private function init():void 
    { 


    button1.addEventListener(MouseEvent.MOUSE_DOWN, checkButton); 

    button2.addEventListener(MouseEvent.MOUSE_DOWN, checkButton); 

    private function checkButton(e:MouseEvent):void 
    { 
     if(e.target.name == button1) b1 = true; 
     else b2 = true; 

     gotoAndPlay(3); 
    } 

例如然後我也許可以做同樣在上面的鏈接的例子從我的代碼片段:

buttonA.visible = false; 
    buttonB.visible = false; 

    if (b1) buttonA.visible = true; 
    if (b2) buttonB.visible = true; 

編輯:我嘗試了上面的代碼,它的工作原理,但我的問題還沒有解決(見下文)。

所以這裏是我的問題: 我需要關於如何更好地使用上述代碼的建議/信息。 原因是;我不認爲上面的代碼對於我想要的是正確的(見下文)。

上面的代碼不工作(我認爲)放置在幀1以外的幀上的按鈕是一個問題。

我需要有一些框架沒有(可見)按鈕的介紹,然後在框架5,例如一個菜單上的按鈕,進入下一幀,停止[停止();]和第6幀按鈕,播放下一幀直到結束。

回答

0

您可以做的是在開始時添加所有按鈕(第1幀)。然後,使用一個變量來跟蹤當前幀(currentFrame)。從這裏開始,您可以創建一個switch語句,以在需要時隱藏和顯示按鈕。每次更改幀時,我還會創建一個「hideAllButtons」函數。所以像這樣:

if(currentFrame!=prevFrame){ 

    hideAllButtons(); 
    prevFrame=currentFrame; 

    switch(currentFrame){ 
    case 1: 
    hideAllButtons(); 
    break; 
    case 2: 
    btn1.visible=true; 
    btn2.visible=true; 
    break; 
    } 
} 

使用一個變量來跟蹤前一幀。如果它是不一樣的當前(新)幀,隱藏所有的按鈕,然後通過switch語句運行,添加任何你需要的按鈕(設置爲true可見)根據框架上。

的hideAllButtons功能可以只通過按鍵循環,並設置所有的可見性爲false。

+0

excatly我需要什麼,不知道什麼突破和案例是,但是我會發現很快感謝 – Jacques

+0

開關罩:http://www.republicofcode.com/tutorials/flash/as3switch/ 我很高興它的工作。 – bandaro

相關問題