Прошло много времени с тех пор, как я коснулся as2. Очевидно, я не мог заставить вещи работать без хаков.
Обычно вы должны иметь возможность обходиться без dg.dispatchEvent ({type: "headerRelease"}), но нет, похоже, это не работает Я использовал опцию Debug> List Objects, чтобы получить имя заголовка столбца, затем вызвал для него функцию onRelease (). Видимо, это работало только в onEnterFrame, который я позже удалил.
Вот мой код, собранный с помощью документации:
//hacky boolean to check if what we asked for was done
var selfClicked:Boolean = false;
myDP = new Array({name:"Chris", price:"Priceless"},{name:"Daisy", price:"Adequate"}, {name:"Nigel", price:"Cheap"});
dg.dataProvider = myDP;
onEnterFrame = function(){
if(!selfClicked){
//ask nicely
dg.dispatchEvent({type:"headerRelease"});
//no ? oh well...
dg.content_mc.header_mc.hO0.onRelease();
//fix for header label
dg.content_mc.header_mc.fHeaderCell0._y = dg.content_mc.header_mc.fHeaderCell1._y;
selfClicked = true;
delete onEnterFrame;
}
}
this.headerRelease = function(eventObject){
//nicely hidden debugging gem here, thanks Jen deHaan!
trace(mx.data.binding.ObjectDumper.toString(eventObject));
}
dg.addEventListener("headerRelease", this);
НТН,
George