我有一個簡單的問題。我想讓用戶能夠將一個或多個用戶從用戶列表(<s:List>
)拖放到公司樹上的所需公司<mx:Tree>
。如何以編程方式訪問樹上的節點?
我得到了所有拖放代碼,Flex應用程序根據需要執行,除非應用程序用戶將用戶對象拖動到他們希望添加的公司上時,它不會提供任何類型的視覺提示。綜觀Flex文檔,只有這樣,才能得到任何可視指示哪個公司的拖動的對象將被丟棄到在dragOver事件使用此:
CompanyTree.showDropFeedback(event);
上述代碼繪製上方或難看的線低於公司的名稱,這使得它看起來像將被放在公司的上方或下方,這不是我想要的。應用程序用戶應該清楚他們拖到公司的用戶是否在公司內部。
我想要做的就是讓公司成爲dragOver'突出顯示'效果的目標。但是這裏遇到了一個大問題:根據Flex文檔以及我的FlashBuilder和Flex SDK的幫助,無法訪問樹上的單個節點!
我可以在dragOver事件做的,就是讓用戶上被丟棄這個代碼項目的索引:
var index:int = CompanyTree.calculateDropIndex(event);
但我不能這樣做與該索引是使用它直接訪問節點並給它「高亮」效果或應用某種setStyle調用,以向用戶顯示它當前是放置的目標!
我希望能夠做的是這樣的:
var hoveredNode:UIComponent = CompanyTree.Nodes[index];
hoveredNode.setStyle("color",0xFF0000);
但似乎我不是因爲Flex的似乎可以不給任何方式訪問在一個樹節點。或者我錯過了什麼?
PS請注意,我無法在dragOver事件期間更改CompanyTree的selectedIndex,因爲我還必須保留已移動的用戶舊公司。
我一直在開發Flex超過一年,從字面上做了幾天的研究,以達到提問這一點。如果問題是:「如何將變量設置爲作爲拖放操作目標的樹中的節點,」Do Research「不是有用的答案,因此我可以將其設置爲」突出顯示「或執行setStyle調用它?「。據我所知,通過閱讀Adobe的文檔以及查看樹組件的EVERY屬性,Flex中沒有樹節點對象的概念,只有樹和它的dataProvider。 – Disease 2014-09-06 16:35:17