0

所以我有一个非常复杂的结构。我将尝试简单地解释它,足以了解代码......

我有一个包含几个步骤的应用程序:

预加载启动屏幕构建/显示启动屏幕按启动加载相当大的应用程序构建应用程序

最后一部分是我担心的根源,因为应用程序的构建可能需要 2 秒!

所以让我们放大那部分......

建筑部分所做的是创建不同类型的视图。我有一个腿、头、手和整体视图的特写。每个视图都有不同的层。背景、前景、人物、物品等

所以应用程序包含不同的视图,每个视图都有自己的一组图层。

每一层都有自己的一组图像和热点。所有图像和命中点都被添加到图层中,事件将绑定到命中点。

视图的创建如下所示:

    function CreateTopFullTotalView() {
    //layers
    topfullTotalBackground = new SimulationDisplays.Background(_self, View.TopFullTotal);
    topfullTotalBystanders = new SimulationDisplays.Bystanders(_self, View.TopFullTotal);
    topfullTotalPatient = new SimulationDisplays.Patient(_self, View.TopFullTotal, _self.GetPatient('patient'));
    topfullTotalResponder1 = new SimulationDisplays.Responder(_self, View.TopFullTotal, _self.GetResponder('responder1'));
    topfullTotalResponder2 = new SimulationDisplays.Responder(_self, View.TopFullTotal, _self.GetResponder('responder2'));

    //add layers to view
    topFullTotalView = new Simulation.View(View.TopFullTotal, [topfullTotalBackground, topfullTotalBystanders, topfullTotalPatient, topfullTotalResponder1, topfullTotalResponder2]);

    //add view to controller
    _self.ViewController.AddView(topFullTotalView);

    var endTime = new Date().getTime();

}

创建每个视图实例后,都会创建一个层,并且将在构造函数中创建图像:

    _self.AddImage("Start", new Kinetic.Image(simulation.GetImage("topfullTotal", "patient_start_clothing")));
_self.AddImage("StartNoClothes", new Kinetic.Image(simulation.GetImage("topfullTotal", "patient_start_noClothing")));

_self.AddImage("RecoveryPosition", new Kinetic.Image(simulation.GetImage("topfullTotal", "patient_recoveryPosition")));

// Hitspot Head
_self.AddHitspot("Head", new Kinetic.Image(simulation.GetImage("topfullTotal", "victim_head")));
_self.GetHitspot("Head").on("click", function () {
    simulation.ShowContentMenu("victim_head", _view, _self.GetHitspot("Head"));
    Mouse("default");
});
_self.GetHitspot("Head").on("mouseover", function () {
    Mouse("pointer");
});
_self.GetHitspot("Head").on("mouseout", function () {
    Mouse("default");
});
etc...

现在我追踪了一些关于施工时间的信息:

跟踪:CreateTopFullTotalView 1018ms 跟踪:CreateBreathingView 273ms 跟踪:CreateThoraxView 197ms 跟踪:CreateNeckLeft 61ms 跟踪:CreateNeckRight 46ms 跟踪:CreateWristLeft 49ms 跟踪:CreateWristRight 50ms 跟踪:创建所有视图 1697ms

我来自 chrome 开发者工具的个人资料信息告诉我 Kinetic.Shape.drawImage 有大约 60% 的东西......(想想任何东西的前身)?

我还尝试将图像加载为精灵,没有任何区别。

我只是项目的一半。所以会及时添加很多图像,我不能有这么多的延迟..

任何 halp 都会得到很多回报!

提前致谢

4

0 回答 0