gpt4 book ai didi

javascript - 使用多层时,KineticJS/Canvas 会使 ipad 上的 safari 崩溃吗?

转载 作者:行者123 更新时间:2023-11-28 08:22:36 25 4
gpt4 key购买 nike

这让我发疯。如果我运行下面的简单 HTML,它可以在我的 iPad2 (A1396) 上运行,但不能在我的 iPad 3 (A1416) 上运行。每当我将 iPad 3 从纵向旋转为横向时,Safari 就会崩溃。我看起来添加的层数和(每层)的宽度/高度之间存在关系。

<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<div id="container"></div>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v5.0.2.min.js"></script>
<script defer="defer">
var stage = new Kinetic.Stage({
container: 'container',
width: 580,
height: 400
});
var NrOfAttribute = 50;
for (var AttributeNo = 0, NrOfAttribute; AttributeNo < NrOfAttribute; AttributeNo++) {
var layer = new Kinetic.Layer();

var rect = new Kinetic.Rect({
x: 20*AttributeNo,
y: 20*AttributeNo,
width: 50,
height: 10,
fill: 'green',
stroke: 'black',
strokeWidth: 4
});

// add the shape to the layer
layer.add(rect);

// add the layer to the stage
stage.add(layer);
}
</script>
</body>
</html>

这是 iPad 上的错误还是内存问题?任何帮助将不胜感激,因为我真的需要这个工作。

谢谢!

编辑:我刚刚测试过对“常规” Canvas 执行相同的操作,如果我增加层数,它也会崩溃(所以它似乎不是动力学特定的)。如果层数增加得足够多,它在 Ipad2 上也会崩溃。

最佳答案

这可能不适合您,但是您是否需要为每个矩形创建一个单独的图层,或者您可以将它们全部放在同一图层中吗?我怀疑这将有助于减少内存使用,因为您最终不会得到 50 个 Canvas 元素。您可以给每个 Rect 一个唯一的 name然后仍然可以使用 rect = layer.find('.{name}'); # do something with rect 之类的内容单独操作它们

关于javascript - 使用多层时,KineticJS/Canvas 会使 ipad 上的 safari 崩溃吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com