1
7
唯一的打击应该是编译时,但是 星期天 写下有一个表面上的小打击。但这应该是Adobe将来要解决的问题。 import语句不应该被视为实际的导入,它只是编译器了解您所引用的类的一种方法。
如果你拥有
另一种方法是每次引用类时都编写完全限定名。
如。
正如所指出的 加州胡安·帕布罗 在注释中,这实际上不适用于编译器(尽管我认为它可能适用于AS2)。我只是想指出为什么我们要从进口声明开始。 在任何情况下,如果导入一个完整的包,它都不应该影响编译后的文件(尽管它表面上是这样)。它将如何影响编译时间,因为你给了编译器更多的东西,它需要查看。 至于“导入”同一个类多次。这不会有什么不同。编译器将只包含同一个类一次。否则,编译后的文件大小将很快失去控制,因为大多数类引用了许多类,而这些类又引用了其他类等,但同样,Adobe可能需要对此进行优化。 归根结底,你应该只进口你需要的东西,没有真正的优势,进口一个完整的包。只需使用适当的编码工具,如 FlashDevelop (这是免费的)而且您甚至不必自己编写导入语句。 另一方面,如果您正在编译一个库(其中还包括一个未引用的类),我不确定导入的外部包是否可能包含在您编译的文件中。这可能会产生实际的影响;不过希望Adobe不会搞砸;) |
2
5
在谈到Ryanday的观点时,我无法解释额外的3个字节,但需要注意几点…
是的,在115页,但我认为这是错误的,并提交了相关的勘误表。
是的,但我不同意重新解释和点击。上面写着:“包裹成员的名字是 看得见的 ……” in full )在本文中,它指的是为成员命名 看得见的 对于编译器和编辑器工具,在已编译的SWF中不可见。也就是说 不 表示类被编译到SWF中,除非它们被实际使用(声明为该类型的变量)。
另一种方法是,您可以手动导入
为了让自己满意,我用3种方式编译了下面的helloworld,输出@secoif建议的链接报告…
首先,如文所述,链接报告:
其次,删除链接报告文件并将导入更改为:
清除生成,链接报告看起来完全相同。大小相同,优化大小相同,链接类相同。 第三,删除链接报告文件并将导入更改为:
清除生成,链接报告看起来完全相同。大小相同,优化大小相同,链接类相同。 在每种情况下,只有sprite和textfield类才能到达SWF。 从磁盘上的实际SWF文件大小来看,与3个版本相比,似乎存在细微的(1或2字节)变化。不比Ryanday的帖子中提到的更大的SWF更糟糕。 |
3
1
这个 ActionScript 3 spec 表示如果使用“*”,将导入包中的所有公共名称。所以有一个打击,虽然它可能不是一个大的,取决于包的大小。这个 ActionScript Design Patterns 由于行李过多,书籍也不鼓励这样做,还有一些 Adobe ActionScript tips . 也就是说,我在自己编写的应用程序中使用了一个组件,
而不是单个类名。我的大小增加了3个字节。现在,整个应用程序的容量是935Kb,所以我可能把这些类导入了其他地方,但点击率并不是很大。我敢打赌,应用程序越小,对编译大小的影响就越大(按百分比计算)。 |
4
1
无论是导入整个包还是只导入正在使用的类,编译后的代码都完全没有区别。导入对于编译器查找类的位置非常重要。 您可以尝试在前后对字节码进行反编译或查看。 |
5
1
您可以使用 'link-report' compiler option 编译器可能需要更长的时间来整理要包含的内容和不包含的内容,但是如果您查看链接报告,您会发现它只包含它使用的内容。:) |
6
0
与大多数语言一样,导入整个包(而不是单个类)几乎没有或根本没有性能开销。 然而,这是一个更好的实践,因为它为类提供了更简洁的依赖性。 |
7
0
好的实践通常是让代码可读…以200个import语句开头的类将是非常糟糕的做法… 在AS3中,import语句只将新的作用域添加到编译器的标识符解析中…编译成SWF的内容和不编译成SWF的内容不是由导入语句决定的,而是由实际依赖性决定的,即使用B类的A类代码… 所以在运行时,它没有任何区别,你如何导入你的类… 尔兹 后台操作系统 |
8
0
我发现,与AS3相比,仅仅使用import语句将在输出中包含类,而不管这些类是否在实际代码中被引用。将此与Java进行对比,Java只包含实际使用的类,而不仅仅是导入语句中提到的。但在设计FlashAPI时,我发现这一点很有用,只要在import语句中提到这些类,它们就会包含在内。 |
nabster023 · 拉伸和旋转电影剪辑而不失真 6 年前 |
BadmintonCat · 获取数组排序的索引 6 年前 |
Dimentio · 无限循环(动作脚本3) 6 年前 |
steph45 · 它们是一种在数组中找到最接近0的数字的方法吗? 7 年前 |
AeroKLiam · AS3-使用组合框进行真/假测验 7 年前 |