我想通過單擊按鈕重新初始化一個權限。我使用下面的代碼,但似乎沒有任何事情發生。重新初始化一個權限
protected function createItem(event:MouseEvent):void
{
this.currentState="Viewer";
this.initialize();
}
爲什麼?
我想通過單擊按鈕重新初始化一個權限。我使用下面的代碼,但似乎沒有任何事情發生。重新初始化一個權限
protected function createItem(event:MouseEvent):void
{
this.currentState="Viewer";
this.initialize();
}
爲什麼?
是的我指的是Flex組件的生命週期。我知道flex有四個步驟來創建組件,但是有沒有方法 來強制Flex再次執行那些步驟?
實際上,Flex組件生命週期中的步驟要多於四個步驟。有關更多信息,請參見here和here。
您可能的意思是,有四種方法作爲Flex Component LifeCycle的一部分運行;那些是createChildren(),commitProperties(),updateDisplayList()和measure()。在MX體系結構中,還有一個layoutChrome()方法,但不常用。
在Flex 4 Spark體系結構中;還有很多其他的鉤子(partAdded(),partRemoved()),但它們都是從MX架構擴展而來的。
您可以使用失效方法中受益:在組件上
在FLE x 4,Spark組件,運行invalidateSkinState()以強制getCurrentSkinState()方法在下一次呈現事件期間重新執行。
您還可以使用removeChild() - removeElement()作爲Spark容器,然後使用addChild() - addElement作爲Spark容器,從舞臺中刪除組件。這基本上會迫使組件重新啓動它的過程。
您也可以創建一個全新的組件實例並刪除舊的實例。
雖然我的bug可能通過重新初始化組件來解決。是的,任何方式謝謝你的答案,我知道我的問題很混亂。 – Samuel
我已經解決了我的問題。如果我在這裏張貼我的方法,可能會更好。
我只是添加兩行來調用服務,並將其放置到Compenent正在使用的變量中,並且一切正常。
protected function createItem(event:MouseEvent):void
{
this.currentState="Viewer";
this.initialize();
countResult.token = productdetailService.count();
countResult2.token = getNewProductIDService.count();
}
您試圖重新啓動哪個組件或類型的組件? this.initialize()方法做了什麼?你如何定義重新初始化?您是指Flex組件的生命週期;並且想要重新創建組件的所有子項?或者這意味着什麼? – JeffryHouser
是的,我指的是Flex組件的生命週期。我知道Flex有四個步驟來創建組件,但是是否有強制Flex再次執行這些步驟的方法? – Samuel
並且initialize()是初始化此組件內部結構的方法。 – Samuel