установить метод данных во Flex - PullRequest
0 голосов
/ 23 октября 2009
override public function set data(value:object):void {

super.data = value 

}

Эта функция вызывается только тогда, когда у меня есть itemRenderer, или я могу переопределить этот метод на любой другой странице или компоненте, чтобы получить данные предыдущих.

Ответы [ 2 ]

1 голос
/ 23 октября 2009

В более простых терминах вы можете переопределить любую функцию public или protected, которая существует в расширенном классе (ах). Сюда входят сеттеры и геттеры общедоступных свойств.

Код выше по сути бесполезен. В основном вы хотите использовать сеттеры и геттеры, когда хотите, чтобы что-то происходило на основе настройки свойства - например, когда вы устанавливаете свойство data для itemRenderer, вы хотите проверить данные, и если соответствует определенным критериям, вы хотите изменить стиль рендерера.

Вот пример того, как работает переопределение - что будет работать / что не будет работать:

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
        {
            // ...
        }
    }
}
0 голосов
/ 23 октября 2009

Это вызывается каждый раз, когда кто-то пытается позвонить x.data = foo;Вы можете вызвать его вручную, но некоторые компоненты, такие как ItemRenderer, имеют определение интерфейса, которое требуется для существования.(IDataRenderer).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...