【发布时间】:2011-05-28 02:43:57
【问题描述】:
我正在使用 Flash Builder 4 并且需要一个与提示点一起使用的 VideoDisplay 组件。 Flex 的 VideoDisplay 所基于的OSMF 类的较新版本已经处理了这个问题。这个想法是推出我自己的 VideoDisplay 组件,而不是猴子修补现有的组件。为此,我创建了一个带有较新版本的 OSMF 类的项目,以及另一个用于构建新 VideoDisplay 的项目,它们的包名称分别为。
问题在于,由于 Flex 4.1 SDK 包含带有原始包名的大部分 OSMF 类,因此 import org.osmf.media.MediaPlayer; 之类的语句引用位于
C:\Program Files\Adobe\Adobe Flash 建造者 4\sdks\4.1.0\frameworks\projects
而不是较新版本的 OSMF 中的 MediaPlayer 类。
我尝试重命名 OSMF 项目中的包,以便明确命名,但我从 IDE 收到异常(前提条件检查期间发生意外异常。有关详细信息,请参阅错误日志)。
SDK 总是(正确地?)在战斗中获胜吗?是否有一些(肮脏的?)方法可以强制项目更喜欢对 swc/项目的引用而不是同名的 SDK 类?
欢迎提出任何建议。
编辑:鉴于 cmets,我显然在解释我的问题方面做得很差。所以又来了。
Flex 为其 VideoPlayer 使用了 OSMF 平台的旧版本、功能较弱的版本。我需要使用包含提示点支持的新版本。我已经下载了更新的 OSMF 源代码,它在它自己的项目中。为了将来的可维护性,我宁愿不必重命名此项目中的包。
我将实现的 VideoPlayer 位于第二个项目中,该项目不会与 Flex SDK 或 OSMF 的包名重复。冲突发生在 Flex SDK 和 OSMF 之间,而不是我要构建的类与 OSFM 或 SDK 之间。我的项目需要访问 OSMF 项目中的类,而不是来自 Flex SDK 的具有包/类名称的类。由于 Flex SDK 基于 OSMF,Flex 将包和命名空间标识保持不变,因此命名不明确。
【问题讨论】:
-
如果您为自己的类提供与 OSMF 类相同的包和名称,那么您的自定义类应该在您的项目中优先。我很惊讶你说他们不是。
标签: apache-flex packages flashbuilder4 osmf