0

让我稍微解释一下我的问题。

我正在创建一个 Flash 网站,我正在使用一个小的外部预加载器 swf 来加载主 swf。我已经能够让我的预加载器 swf 占据整个浏览器窗口,但是一旦它加载到主 swf 中,它只会以它内置的正常尺寸显示。

我在主 Flash 应用程序中确实有一个调整大小的侦听器,一旦我更改浏览器的大小,主 swf 就会占据整个浏览器。但是我怎样才能让它以这种方式开始呢?

-我尝试使用 ENTER_FRAME 处理程序,但这破坏了我的一些动画。- 我尝试在预加载器中设置加载器对象的宽度和高度,但这似乎也不起作用。- 我也尝试向加载器添加一个 ADDED_TO_STAGE 监听器,但这似乎并没有改变任何东西。-我还尝试让预加载器在一个场景中,而主应用程序在另一个场景中,这样我只加载了一个 swf,但这似乎不起作用,我不喜欢这种预加载方法。

我无法在任何地方找到解决方案。有什么容易我想念的吗?让我知道你们的想法。预加载器代码如下:

import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;

var request:URLRequest = new URLRequest("flashNew.swf");
var loader:Loader = new Loader();


loader.load(request);
this.addChild(loader);


function loadProgress(event:ProgressEvent):void
{
    var percentLoaded:Number = event.bytesLoaded / event.bytesTotal;
    var percentLoadedBar:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
    percentLoaded = Math.round(percentLoaded * 100);

    this.percentLoaded.text = String(uint(percentLoaded)) + "%";

    progressBar.width = percentLoadedBar * 3.36;
}

function loadComplete(event:Event):void
{
    //loader.content.height = stage.stageHeight;
    //loader.content.width = stage.stageWidth;
}

function setDimensions(event:Event):void
{
    loader.width = stage.stageWidth;
    loader.height = stage.stageHeight;
}

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.contentLoaderInfo.addEventListener(Event.ADDED_TO_STAGE, setDimensions);

有没有办法可以通过 javascript 或其他方式进行更改?我在这里不知所措,我已经坚持了几个小时。任何帮助,将不胜感激。谢谢!

更新 这是我的调整大小功能的代码。

function resizeListener(e:Event):void
{
    background_mc.width = stage.stageWidth;
    background_mc.height = stage.stageHeight;
    //The rest of the function is omitted. It is if's and else-if's that just reposition various elements.
    //That's really all this function does is re-position elements with the exception of the above code which resizes the background.
}

这是事件侦听器调用。

stage.addEventListener(Event.RESIZE, resizeListener);
4

1 回答 1

0

尝试这个:

删除了这行代码: this.addChild(loader);

然后将您的loadComplete功能调整为:

function loadComplete(event:Event):void
{
    addChild(loader.content);
    loader.content.height = stage.stageHeight;
    loader.content.width = stage.stageWidth;
}
于 2012-08-14T22:38:48.593 回答