如何清除 Flash XFL 格式的 DOMDocument 元素的 sharedLibraryURL 属性?

Posted

技术标签:

【中文标题】如何清除 Flash XFL 格式的 DOMDocument 元素的 sharedLibraryURL 属性?【英文标题】:How do I clear the sharedLibraryURL attribute of the DOMDocument element of the Flash XFL format? 【发布时间】:2017-02-20 09:28:04 【问题描述】:

我遇到了一个非常奇怪的问题,我无法导入特定符号,我最终通过将 FLA 保存到 XFL 并检查 DOMDocument.xml 以发现有问题的符号定义在sharedLibraryURL 属性。如果我手动清除此属性,它会解决问题,但我找不到在 Flash CS6 中检查此值的方法。

在将其他一些 FLA 文件转换为 XFL 后,我可以看到它们都充满了看似随机的 sharedLibraryURL 值,这意味着这个问题可能发生在我们项目的任何地方。

有谁知道这个属性是干什么用的?更重要的是,是否有某种方法可以在 Flash CS6 中对其进行修改并阻止其被填充,而无需转换为 XFL 并返回?

作为参考,这里是 DOMDocument.xml 的开始元素(我将 swf 重命名为 problem_file.swf):

<DOMDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/"
backgroundColor="#666666"   frameRate="30" currentTimeline="1" xflVersion="2.2"
creatorInfo="Adobe Flash Professional CS6" platform="Windows" versionInfo="Saved by Adobe Flash Windows 12.0 build 537"
majorVersion="12" buildNumber="537" pixelSnap="true" viewAngle3D="122.353661987282"
sharedLibraryURL="problem_file.swf" nextSceneIdentifier="12" playOptionsPlayLoop="false"
playOptionsPlayPages="false">

编辑:我部分想通了。当您创建符号并选中属性中的“导出以用于运行时共享”复选框时,该属性会被添加。您为 URL 指定的任何值都会保存为 sharedLibraryURL。问题是一旦这个属性存在,就没有明显的方法可以清除它。如果我删除该符号,它只会留在那里。它在 FLA 中具有如此随机值的原因是因为我们在创建新 FLA 时倾向于从现有 FLA 复制,这会复制死属性值并导致此问题。

所以现在我知道了原因,但我仍然不知道如何清除它......

【问题讨论】:

【参考方案1】:

通过执行以下操作可以“修复”此问题:

    在“库”面板中,右键单击并选择“新建符号...”。 单击“导出以供运行时共享”复选框,它应该会自动填充 URL 字段,向您显示当前值。 填写一些可能不会与其他内容冲突的不同值。我输入了“1.swf”。 单击“确定”创建符号。 从库中删除符号。

这会将 sharedLibraryURL 的值更改为您指定为新 URL 的任何值,让您可以毫无问题地导入。

这是一个非常愚蠢的解决方案,但这是我短期内唯一能想到的。我希望其他人有更好的方法来处理这个问题。

【讨论】:

以上是关于如何清除 Flash XFL 格式的 DOMDocument 元素的 sharedLibraryURL 属性?的主要内容,如果未能解决你的问题,请参考以下文章

BASH:如何将终端设置为flash?

在Flash中清除文本

FLASH AS3图片内存清除方法

如何让 ngrok 客户端监听特定的主机名而不是 localhost?

esp32如何给外部flash下载程序

如何使用没有 Flash 的网络浏览器捕获和存储 h.264 格式的视频?