1

我正在使用以下代码在纯 actionscript 项目(Flex Builder 3)中加载 swf

_loader = new Loader();

_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, Loader_Complete);
_loader.contentLoaderInfo.addEventListener(Event.INIT, Loader_Init);

var request:URLRequest = new URLRequest("Skins/TestSkin.swf");
_loader.load(request);

this.addChild(_loader);

这可以正常工作并在舞台上显示 swf(500x375 出于某种原因 - 不知道为什么,TestSkin.swf 是一个没有定义宽度和高度的 flex 应用程序)

但是,当我尝试缩放 swf 以使其充满舞台时,我遇到了问题。

我试过了:

  • 在我的 Loader_Complete 处理程序中设置 _loader.width 和 _loader.height
  • 在我的 Loader_Init 处理程序中设置 _loader.width 和 _loader.height
  • 在我的 Loader_Complete 处理程序中设置 _loader.content.width 和 loader.content.height
  • 在我的 Loader_Init 处理程序中设置 _loader.content.width 和 loader.content.height

我在网上看到过一些例子,人们说这些对他们有用,但是每当我以任何这些方式设置宽度或高度时,加载的 swf 根本不会显示。

知道是什么原因造成的吗?

调整加载了 Loader 对象的 swf 大小的正确方法是什么?

4

1 回答 1

1

我找到了解决当前问题的方法。

我可以将以下事件处理程序添加到我的子 swf:

public function AddedToStage():void
{
    this.width = this.stage.width;
    this.height = this.stage.height;
}

并将其附加到应用程序的 addedToStage 事件。

但是,我仍然想知道如何从父 swf 设置子 swf 的尺寸 - 有时我无法控制加载的 swf,因此我无法向其中添加此代码。

于 2010-05-06T11:06:38.773 回答