2012-11-07 30 views
1

我需要使用pop(),以便取出最後一個元素數組(它位於組合框中),但這不起作用...請幫助!我需要使用pop()來取出一個組合框(數組),我已經創建了一個選項...但被卡住了

p.s.我沒有得到任何錯誤,當我運行的代碼一切工作正常,所以不會按鈕:

我的代碼:

var barColours:Array = new Array(); 
barColours = ["red", "green", "blue", "orange", "purple"]; 

comboBox.dataProvider = new DataProvider(barColours); 
comboBox.addEventListener(Event.CHANGE, onChange); 
comboBox.x = 670; 
comboBox.y = 55; 

minus_btn.addEventListener(MouseEvent.CLICK, takeAwayCol); 

function takeAwayCol(ev:MouseEvent):void 
{ 
     barColours.pop(); 
} 

回答

0

修改數組不「通知」的變化的列表,則」我們需要重新分配dataProvider。

var barColours:Array = new Array(); 
barColours = ["red", "green", "blue", "orange", "purple"]; 

comboBox.dataProvider = new DataProvider(barColours); 
comboBox.addEventListener(Event.CHANGE, onChange); 
comboBox.x = 670; 
comboBox.y = 55; 

minus_btn.addEventListener(MouseEvent.CLICK, takeAwayCol); 

function takeAwayCol(ev:MouseEvent):void 
{ 
     barColours.pop(); 
     comboBox.dataProvider = new DataProvider(barColours); 
} 

根據註釋EDITED

var barColours:Array = ["red", "green", "blue", "orange", "purple"]; 
var removedBarColours:Array = new Array(); 

comboBox.dataProvider = new DataProvider(barColours); 
comboBox.addEventListener(Event.CHANGE, onChange); 
comboBox.x = 670; 
comboBox.y = 55; 

minus_btn.addEventListener(MouseEvent.CLICK, takeAwayCol); 

function takeAwayCol(ev:MouseEvent):void 
{ 
//if you need to pull from the beginning of the list instead of the end use shift/unshift method(s) of Array 
     removedBarColours.push(barColours.pop()); 
     comboBox.dataProvider = new DataProvider(barColours); 
} 

function addCol(ev:MouseEvent):void 
{ 
     barColours.push(removedBarColours.pop()); 
     comboBox.dataProvider = new DataProvider(barColours); 
} 
+0

太感謝你了!非常感謝 –

+0

對不起,還有一種方法可以點擊另一個按鈕來添加那些已經取回到數組末尾的元素嗎? –

+0

沒問題,是的,你不得不保留另一個數組與刪除的值,所以你只是將他們從一個列表轉移到另一個,我會盡快更新上面的代碼。 – shaunhusain

相關問題