Сделать File.nativePath привязываемым? или как расширить flash.filesystem.file - PullRequest
0 голосов
/ 23 ноября 2010

В конечном итоге я хотел бы сделать привязку .nativePath или запускать событие при его изменении в Adobe Air. Я решил просто расширить класс File и быть хорошим.

Но я нигде не могу найти его источник (поэтому я знаю, как его расширить). Я довольно долго копался в http://opensource.adobe.com/svn/opensource/flex/sdk/ и ничего не видел.

Есть ли способ сделать .nativePath привязываемым или расширять файл?

Ответы [ 3 ]

1 голос
/ 24 ноября 2010

alxx, ваш код определенно был близок.Спасибо - это дало мне представление о том, как его расширить.Рабочий код:

public class FileEx extends File
    {
        public function FileEx(path:String=null)
        {
            super(path);
        }

        [Bindable("nativePathChanged")]
        override public function get nativePath():String
        {
            return super.nativePath;
        }

        override public function set nativePath(value:String):void
        {
            super.nativePath=value;
            dispatchEvent(new Event("nativePathChanged"));
        }
    }
0 голосов
/ 23 ноября 2010

Вам не нужен исходный код для создания подкласса. Пока это не окончательно, просто расширьте его и переопределите то, что вам нужно:

public class BindableFile extends File {
    [Bindable(event="nativePathChanged")]
    override public function get nativePath():String {
        return super.nativePath;
    }
    override public function set nativePath(value:String):void {
        super.nativePath = value;
        dispatchEvent("nativePathChanged");
    }
}

Не проверено, но выглядит реалистично:)

0 голосов
/ 23 ноября 2010

Класс File Class является частью пакета Flash, поэтому он не является открытым исходным кодом, и вы не сможете достать код (если только вы не глубоко во внутреннем кругу Разработчики Adobe).

Теоретически вы можете расширить класс, так как он не помечен как финальный, и сделать nativePath Bindable таким образом, но я не уверен в преимуществе. Вы должны были бы расширить свой вариант использования, чтобы оценить это.

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