代码之家  ›  专栏  ›  技术社区  ›  DanK

加载swf后调整加载程序大小时出现问题

  •  1
  • DanK  · 技术社区  · 15 年前

    我使用以下代码在纯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应用程序)

    然而,当我试图调整主权财富基金的规模,以便它将填补阶段,我有问题。

    我试过:

    • 在我的loader完整处理程序中设置loader.width和loader.height
    • 在我的loader初始化处理程序中设置loader.width和loader.height
    • 在我的loader完成处理程序中设置loader.content.width和loader.content.height
    • 在我的loader初始化处理程序中设置loader.content.width和loader.content.height

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

    你知道是什么引起的吗?

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   DanK    15 年前

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

    我可以向子swf添加以下事件处理程序:

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

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

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