我有一个扩展 SWFLoader 的类,我像普通 SWFLoader 一样使用它:
var loader:MySWFLoader = new MySWFLoader();
loader.load("myFile.SWF");
myScene.addChild(loader);
加载工作正常,除了它保持为 0,因为宽度和高度从未从 0 改变。我不得不覆盖宽度/高度获取属性以使其工作:
class MySWFLoader extends SWFLoader
{
public override function get width():Number{ return contentWidth; }
public override function get height():Number{ return contentHeight; }
}
这不仅是一个大黑客,而且也不完全正确;特别是因为 SWF 有多个框架并且框架的宽度/高度不同。
为什么宽度/高度一开始就不起作用?它们不应该在加载过程中自动设置吗?问题是否可能出在 SWF 本身?
更新:将 scaleContent 更改为 true 或 false 没有区别。
最佳答案
我不确定这是否适用于 SWF 加载,但每当我加载内容时,我无法在加载整个内容之前访问宽度和高度。
所以做一个事件监听器,当加载完成时监听,然后读取高度/宽度。
另请看一下 AS3 中的 loaderInfo 类
关于apache-flex - 为什么加载的 SWFLoader 的宽度和高度为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208033/