2014-08-28 160 views
1

我是使用閃光燈的新手,非常抱歉,如果這是一個常見問題 - 但我找不出要搜索的內容。組合框重複選項

我創建了一個非常基本的電影 - 它使用組合框在一些圖像之間切換。 See Here

問題是當您點擊第一個選項(「性別」)到另一個選項,然後返回性別,組合框中的選項列表重複。

我想知道是否有辦法阻止這種情況發生? 我的瀏覽器和Flash Professional CS5.5中都有這個問題

我現在的動作代碼是;

import flash.events.Event; 

stop(); 

combobox.addItem({ label: "Gender" }); 
combobox.addItem({ label: "Ethnicity" }); 
combobox.addItem({ label: "Religion" }); 

combobox.addEventListener(Event.CHANGE, changeimage); 

function changeimage (event:Event):void{ 
    if (combobox.selectedItem.label == "Gender") gotoAndStop(1); 
    if (combobox.selectedItem.label == "Ethnicity") gotoAndStop(2); 
    if (combobox.selectedItem.label == "Religion") gotoAndStop(3); 
} 

謝謝。

回答

1

您可以在Main Class中創建您的ComboBox。執行文件>新建> ActionScript文件,然後將以下代碼複製/粘貼到此新文件中。將其命名爲:Main

Main.as

package 
{ 
    import flash.display.MovieClip; 
    import flash.events.Event; 
    import fl.controls.ComboBox; 

    public class Main extends MovieClip 
    { 
     private var cb:ComboBox; 

     public function Main() 
     { 
      cb = new ComboBox(); 
      cb.addItem({label:'Gender', data:1}); 
      cb.addItem({label:'Ethnicity', data:2}); 
      cb.addItem({label:'Religion', data:3}); 
      cb.move(120, 160); 
      cb.addEventListener(Event.CHANGE, labelSelected); 
      addChild(cb); 
     } 
     private function labelSelected(e:Event):void 
     { 
      gotoAndStop(cb.selectedItem.data); 
     } 
    } 
} 

在您的Flash文檔,這樣做:文件> ActionsScript設置>類取首:Main


否則,你可以在你的ComboBox「創建標籤■occurence物理上存在於使用窗口Properties階段。

您只需在ComboBoxProperties面板中使用Component菜單。您選擇屬性DataProvider前面的鉛筆。它會打開一個窗口Values ...

enter image description here

...在這你可以用按鈕plus添加標籤。

enter image description here

+0

感謝您的幫助。您的第一個建議是,組合框不再重複 - 但是,新的組合框位於左上角,並且不像前一個框那樣出現在舞臺上 - 所以我無法單擊並將其移動到適當的位置。你知道這是爲什麼嗎?我已經上傳了一個與上面相同的鏈接。 – SamPassmore 2014-08-29 05:26:00

+0

@SamPassmore - 你只需要使用'move'方法:cb.move(x,y)。我用任意座標編輯了我的答案。第二種解決方案也適用於舞臺上的ComboBox。 – helloflash 2014-08-29 06:15:01

0

您可以封裝你的addItem在一個函數:

import flash.events.Event; 

stop(); 
function initializeComboBox(){ 
    combobox.addItem({ label: "Gender" }); 
    combobox.addItem({ label: "Ethnicity" }); 
    combobox.addItem({ label: "Religion" }); 

    combobox.addEventListener(Event.CHANGE, changeimage); 
} 

function changeimage (event:Event):void{ 
    if (combobox.selectedItem.label == "Gender") gotoAndStop(1); 
    if (combobox.selectedItem.label == "Ethnicity") gotoAndStop(2); 
    if (combobox.selectedItem.label == "Religion") gotoAndStop(3); 
} 

當初始化事件被觸發調用這個函數。 我希望我很清楚。