flash - 使用 ActionScript 3.0 + Flash/Flex 链接 SWC 的运行时自省(introspection)

标签 flash actionscript-3 introspection swc embedded-fonts

哇,我在 Stack Overflow 上的第一篇文章。我“到达”了吗?

好吧,这是一个奇怪的问题。我正在尝试确定是否有某种编程方式可以在运行时自省(introspection)链接的 SWC 中的类。

为了提供更多背景知识(也许有一种完全不同的方式来做这件事),我正在考虑字体嵌入的一般框架。目前,要嵌入字体(使用链接的 SWC,而不是 [embed] 元标记),您需要使用 Flash IDE 将字体嵌入到您的 SWC 中,然后您需要在您的代码(可能由其他人创建,使用不同的 IDE - 例如 FlashDevelop)。

现在,如果可以在运行时内省(introspection) SWC 并遍历它公开的类,理论上可以以编程方式实例化/注册这些字体,而不必(在编译时)知道这些字体可能是什么。

因此,问题是:是否有人知道在运行时将 SWC 作为实体访问并内省(introspection)其暴露的类的任何方法?

顺便说一句,这种事情的基本原理是对设计和应用程序逻辑职责的清晰分离的简单愿望。设计师可以轻松嵌入字体、作者和 SWC,并编辑相应的外部 CSS 文件。指望他们更新代码中对类的硬引用,或者指望客户端在编译和发布作业后不会改变他们对字体使用的想法,这要危险得多。

最佳答案

您可以将文件作为二进制文件加载(或者如果它是主文件,则使用阶段的 LoaderInfo 的 bytes 属性),查看 ABC 数据的“标签”,解析它,然后查找您需要的数据。不过这很麻烦。

有诸如字体标签之类的东西。 DefineFont2(标签类型 48)包含 FontID 和 FontName,DefineFontName(标签类型 88)还包含 FontID 和 FontName。也许这就是您需要的数据。如果是这样,那么即使是最大的文件也可以非常快地浏览。

您可以在此处阅读 .swf 文件格式规范:http://www.adobe.com/devnet/swf.html

关于flash - 使用 ActionScript 3.0 + Flash/Flex 链接 SWC 的运行时自省(introspection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3868356/

相关文章:

flash - 在 Google Plus 的流中共享自定义视频播放器

javascript - 隐藏/封装 JavaScript 逻辑

python : Adding a code routine at each line of a block of code

python - Python可以确定访问方法的对象的类吗

actionscript-3 - TypeError 1009和AS3中的静音

python - Python 中函数的别名

ios - Flex iOS 应用程序在没有互联网连接的情况下无法启动,然后显示不需要的弹出窗口

flash - 如何为在线 Flash 游戏构建机器人?

jquery - 鼠标悬停时可展开的横幅

xcode - 快速将事件分派(dispatch)给父 ViewController