所以我有一个非常复杂的结构。我将尝试简单地解释它,足以了解代码......
我有一个包含几个步骤的应用程序:
预加载启动屏幕构建/显示启动屏幕按启动加载相当大的应用程序构建应用程序
最后一部分是我担心的根源,因为应用程序的构建可能需要 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 都会得到很多回报!
提前致谢