2009-11-30 125 views
0

我正在使用一個數組來填充flash 8 datagrid,很簡單。我也預先排列數組中的一個字段,也很簡單。flash 8 datagrid排序箭頭

我想排序箭頭出現第一填充網格時,但它不是!

用戶必須點擊標題單元格的箭頭變得可見。有什麼方法可以覆蓋這種行爲。

感謝

回答

0

這已經有一段時間,因爲我已經感動AS2。顯然,我不能讓事情沒有黑客的工作。

通常你應該已經能夠與dg.dispatchEvent脫身({類型:「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); 

HTH, 喬治

+0

喬治你好。 非常感謝,這真棒,確實強制在網格上放置箭頭。 幾個問題,如果我可以。 什麼是派遣事件行,因爲它似乎仍然工作時,它被刪除。 當我在代碼運行後點擊第1列時,標題文本的移動方式與其它列的移動方式不同(如果難以解釋,請參考參考資料!)。 無論如何非常感謝。 – Dave 2009-12-01 10:46:17

+0

嗨戴夫。通常你應該能夠從組件發送一個事件並且應該修復它。你可以把它擦掉,我想表現出試圖用一種不太古怪的方式去做。我明白你的意思,標題文字對角線而不是水平移動。我認爲這可能是因爲在按下標題之前不會創建排序箭頭剪輯,並且因爲我們正在黑客攻擊它,所以文本會稍微移動一點(不確定爲什麼),但是如果添加以下行之後第hO0.onRelease(): dg.content_mc.header_mc.fHeaderCell0._y = dg.content_mc.header_mc.fHeaderCell1._y; – 2009-12-01 14:19:58

+0

謝謝喬治。我發現這個作品也是如此 dg.content_mc.header_mc.hO0.onPress(); dg.content_mc.header_mc.hO0.onRelease();它似乎做了完整的新聞和發佈,並修復了它。太好了!再次感謝 – Dave 2009-12-01 16:01:28