我一直在使用FlashDevelop开发基于Web的纯ActionScript-3(不涉及MXML)视频游戏,到目前为止还没有真正的惊喜。
我最近尝试将我的项目转移到Intellij-Idea的试验(但功能齐全)并且发现虽然Intellij生成的.swf仍然起作用,但它已经以某种方式按比例放大,以便所有元素都是两次尺寸。这是我没有对进行任何代码更改。
我知道stage.scaleMode,但我的代码中没有使用它。
我想强调的是,我不是在讨论通常呈现.swf的HTML包装器的任何属性,因为即使我将裸.swf加载到浏览器中,这种行为也很明显。
我能想到的唯一变量是传递给Adobe flex编译器的参数 - 但我查看了可用的参数,但没有看到任何可能的参数。
有没有人想过这里会发生什么?
答案 0 :(得分:0)
我们可以看到HTML包装器和一些代码示例吗?你是如何嵌入瑞士法郎的? stage.scaleMode
应设为StageScaleMode.NO_SCALE
;如果设置了它并且它正在缩放那么其他东西就是错误的。如果没有一些片段,很难说清楚。
答案 1 :(得分:0)
我不熟悉IntelliJ,但在Flash术语中,是否适应了您的发布设置帮助?
答案 2 :(得分:0)
解决方案是将以下两行添加到程序的开头:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
(使用适当的StageScaleMode和StageAlign导入)
请注意,我没有在从FlashDevelop运行项目时需要添加这些内容。
scaleMode可以设置为以下四个值之一: NO_SCALE 无边界 显示所有 EXACT_FIT Intellij似乎默认使用EXACT_FIT的行为,而FlashDevelop默认为NO_SCALE的行为。
可以将舞台对齐设置为 最佳 左上方 剩下 BOTTOM_LEFT等 我不确定如何描述默认的Intellij行为 - 它看起来部分但不完全居中。 FlashDevelop默认为TOP_LEFT。
如果不在代码本身中,这个隐式行为存储在哪里?我没有线索 - 也许在一些.swf文件头信息中。
我当然更喜欢FlashDevelop的默认行为。