えーと、Flexは触ったこと無いのでわからないです、すいません
掲示してもらったソースで検証しました。
一部手を加えてしまったので書いておきますね。
import mx.core.UIComponent
import mx.controls.ComboBox
class ExtraComboRenderer extends UIComponent
{
var Combo : MovieClip;
var listOwner : MovieClip; // the reference we receive to the list
var getCellIndex : Function; // the function we receive from the list
var getDataLabel : Function; // the function we receive from the list
var cards2 = [ {label:"test1", data:1}, {label:"test2", data:2}, {label:"test3", data:3} ];
var layoutHeight = 22;
var layoutWidth = 100;
function ExtraComboRenderer()
{
}
function createChildren(Void) : Void
{
Combo = createClassObject(ComboBox, "ComboBox", 1, {styleName:this, owner:this});
Combo.addEventListener("change", this);
Combo.dataProvider = cards2;
size();
}
// note that setSize is implemented by UIComponent and calls size(), after setting
// __width and __height
function size(Void) : Void
{
Combo.setSize(100, layoutHeight);
Combo._x = (layoutWidth-100)/2;
Combo._y = (layoutHeight-16)/2;
}
function setValue(str:String, item:Object, sel:Boolean) : Void
{
Combo._visible = (item!=undefined);
Combo.editable=true;
Combo.selectedIndex=Number(str);
}
function getPreferredHeight(Void) : Number
{
return 16;
}
function getPreferredWidth(Void) : Number
{
return 100;
}
function change()
{
listOwner.editField(getCellIndex().itemIndex, getDataLabel(), String(Combo.selectedIndex));
}
}
まず、Changeのスペルが違いました(笑)
あとeditFieldでセットする値を選択されている番号にしています。
これでうまく動いてしまいました
これでもだめかなぁ。