1

配列の最後の要素(comboBoxにあります)を取得するためにpop()を使用する必要がありましたが、これは機能しません...助けてください!

psエラーは発生せず、コードを実行すると他のすべてが正常に機能し、ボタンも正常に機能します。

私のコード:

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();
} 
4

1 に答える 1

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);
} 

コメントごとに編集

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);
} 
于 2012-11-07T20:38:05.187 に答える