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