Apache flex 是否使File.nativePath可绑定?或者如何扩展flash.filesystem.file

Apache flex 是否使File.nativePath可绑定?或者如何扩展flash.filesystem.file,apache-flex,file,air,Apache Flex,File,Air,我最终希望使.nativePath可绑定,或者在Adobe Air中更改时触发事件。我想我应该扩展File类,做个好人 但是我在任何地方都找不到它的来源(所以我知道如何扩展它)。我翻了好几遍,什么也没看到 有没有办法使.nativePath可绑定或扩展文件?是Flash软件包的一部分,因此它不是开源的,您将无法获得代码(除非您深入Adobe开发人员的内部圈子) 理论上,您可以扩展该类,因为它没有标记为final,并以这种方式使nativePath可绑定,但我不确定其好处。您必须扩展您的用例来评估

我最终希望使.nativePath可绑定,或者在Adobe Air中更改时触发事件。我想我应该扩展File类,做个好人

但是我在任何地方都找不到它的来源(所以我知道如何扩展它)。我翻了好几遍,什么也没看到

有没有办法使.nativePath可绑定或扩展文件?

是Flash软件包的一部分,因此它不是开源的,您将无法获得代码(除非您深入Adobe开发人员的内部圈子)


理论上,您可以扩展该类,因为它没有标记为final,并以这种方式使nativePath可绑定,但我不确定其好处。您必须扩展您的用例来评估它

您不需要源代码来对某些东西进行子类化。只要不是最终版本,只需扩展它并覆盖您需要的内容:

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");
    }
}

未经测试,但看起来很现实:)

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"));
        }
    }

我的计划是将两个不同的项目链接到myFile.nativePath。特别是来自as3corelib的标签、文本输入和文件监视器的源。两个不同的函数可能会影响myFile,所以我认为将其他项绑定到myFile.nativePath是最容易的;这和子类化不一样吗?