1

我正在创建一个应用程序,当按下按钮时,会将一张非常大的图片添加到舞台上(它比屏幕大,但可以由用户拖动)

当按下按钮时,图片(好吧,movieClip)确实出现并且可以很好地拖动,其中的按钮可以工作。

但问题是在按钮按下和图像出现之间有大约 6 秒的暂停。我正在使用一个 .fla 文件进行发布和编译(我们暂时称它为 Main.fla),另一个用于保存所有图形。然后使用此嵌入命令添加图形:

[Embed (source = "assets/graphic.swf", symbol = "Content")]
private var Content:Class; 
private var _content:*;

我在这些行中声明了所有变量(在类定义和构造函数之间)我的印象是像这样嵌入它相当于在编译时加载它。这是真的?按下按钮时可能导致这种延迟的原因是什么?

如果我不能消除延迟,我的另一个想法是制作一些旋转的圆圈或其他东西来告诉用户,“嘿,别担心。它正在加载!”

4

2 回答 2

1

如果在 addChild 时速度较慢,您可以更早地将资产添加到舞台并将其可见性设置为 false,然后在单击按钮时将其设置回 true。显然这是一个小技巧,但对于您正在做的事情可能已经足够了。

var asset:MovieClip;

private function init():void
{
    asset = new Content();
    assset.visible = false;
    addChild(asset);

    button.addEventListener(MouseEvent.CLICK, onMouseClick);
}

private function onMouseClick(e:MouseEvent):void
{
   asset.visible = true;
}
于 2013-03-20T22:40:05.330 回答
0

嵌入您的 SWF 可能不是导致延迟的原因。或者如果您将 SWF 导入 FLA 可能不会更好。这是在设备上吗?您可能必须设计一种不同的加载资源的方式,或者对加载动画感到满意。

如果主要的 K 尺寸来自大图像,您可以考虑分段加载它,从最初可见的部分开始。

于 2013-03-20T23:28:43.157 回答