override public function set data(value:object):void {
super.data = value
}
僅當我有一個itemRenderer時才調用此函數,或者我可以在任何其他頁面或組件中重寫此方法以獲取以前的數據。在Flex中設置數據方法
override public function set data(value:object):void {
super.data = value
}
僅當我有一個itemRenderer時才調用此函數,或者我可以在任何其他頁面或組件中重寫此方法以獲取以前的數據。在Flex中設置數據方法
在更基本的術語中,您可以覆蓋存在於擴展類中的任何public
或protected
函數。這包括公共財產的制定者和吸收者。
上面的代碼實質上是無用的。你基本上想要使用setter和getters,當你想要根據屬性的設置發生其他事情時 - 例如,當你設置itemRenderer
的data
屬性,你想要檢查數據,並且它是否符合某個標準,你想改變渲染器的樣式。
以下是壓倒一切的工作的一個例子 - 什麼工作/什麼不會的工作:
package
{
public class SomeClass
{
public var someProp:Object; // can be overridden using setter and/or getter in sub-class
private var otherProp:Object; // cannot be accessed or overridden by sub-class
public function doSomething():void // can be overridden in sub-class
{
// ...
}
protected function doSomethingElse():void // can be overridden using in sub-class
{
// ...
}
private function doSomethingPrivate():void // cannot be accessed/called nor overridden in sub-class
{
// ...
}
}
}
package
{
public class SomeClassSub extends SomeClass
{
public var someProp:Object; // throws exception
private var otherProp:Object; // this will work
public function doSomething():void // throws exception
{
// ...
}
override public function doSomething():void // this will work
{
// ...
}
protected function doSomethingElse():void // throws exception
{
// ...
}
override protected function doSomethingElse():void // this will work
{
// ...
}
private function doSomethingPrivate():void // this will work
{
// ...
}
override private function doSomethingPrivate():void // throws exception
{
// ...
}
}
}
這被稱爲任何時候有人試圖撥打x.data = foo
;您可以手動調用它,但某些組件(如ItemRenderer)具有需要存在的接口定義。 (IDataRenderer
)。