2

所以我最近在我的应用程序中添加了 Kinetic.JS v4.6.0,并测试了一个简单的矩形拖放。

在网络浏览器上运行良好,但一旦我在手机上使用它,它就会出错并在拖动后留下矩形的幽灵。

我基本上使用与演示相同的脚本,没有 touchStart/touchEnd 事件,我也在使用 JQuery 1.9.1 和 JQueryMobile-1.3.2。

我怎样才能摆脱这种影响,我尝试在 touchStart 上清除图层并在 touch End 上再次绘制舞台,但幽灵仍然存在。

编辑 我的设备是运行 4.2.2 的 Galaxy S2 并且发生重影,但该应用程序在 Ipad 上运行良好。

/index.JS

$( window ).on( "pageinit", function ( event ) {
stage = new Kinetic.Stage( {
    container: "container",
    width: 500,
    height: 500
} );

MapLayer = new Kinetic.Layer()

var Rect = new Kinetic.Rect( {
    x: 0,
    y: 0,
    width: 100,
    height: 50,
    fill: 'green',
    stroke: 'black',
    strokeWidth: 4,
    draggable: true
} );

MapLayer.add( Rect );
stage.add( MapLayer );

索引.HTML

<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/jquery.mobile-1.3.2.min.js"></script>
<script src="js/kinetic-v4.6.0.min.js"></script>
<script src="js/index.js"></script>
<title>Mobile OneStop</title>

<div data-role="page">
    <div data-role="content">
        <div id="container">
        </div>
    </div>
</div>

(如果人们不理解,我可能会画一个糟糕的绘画图像来炫耀这一点)

编辑 http://imgur.com/a/HlNxj#0 - 自发布此代码以来,我已经更改了很多代码,但问题仍然存在。

4

1 回答 1

1

设法阻止重影的发生,我刚刚在我需要绘制的对象后面放了一个巨大的白色矩形,虽然不优雅,但它完成了工作。

于 2013-09-16T13:44:00.437 回答