layaBox2018 我将Laya.init(500, 300)放置到DIV中,并且固定了DIV的位置(position: relative)。从而导致,我new了一个Text,再给Text绑定事件后,点击Text无法触发事件。
layaBox2018 自己顶一下,大概原因。 由于Laya.init初始化成功后,其位置是(0, 0),从而导致其绑定的事件位置是基于(0, 0)的,猜测事件的位置已被定位。而后将Laya.init的返回值Canvas标签 append进DIV,由于该DIV是做了页面定位,所以就强行的将Canvas放到了DIV中,而在后面异步创建的图片对象,虽然图片位置正常,但是其事件的位置没有变化。 以上是个人分析的结果,求大神指正并解答,谢谢。
layaBox2018 自己再顶一下,解决方案。 依据论坛里小伙伴们的问题,得出解决方案:由于事件的位置是基于Canvas的,因此我们想得到事件的准确位置,则需要对Canvas进行初始化定位。Laya.Render._mainCanvas.source.style.left = "190px"; Laya.Render._mainCanvas.source.style.top = "90px";因为我们的页面布局都是使用DIV+CSS布局的,而这种方法需要使用JS来动态计算Canvas尺寸、坐标,感觉对使用DIV+CSS布局的侵略性比较大,有没有更好的解决方案呢?ヾ(。 ̄□ ̄)ツ゜゜゜
layaBox2018 Monica 谢谢!我这边的需求是需要把Canvas进行定位,从而出现了事件偏移。如果使用Iframe那么可能就用不了Canvas里的事件。因为Iframe与Canvas是层级关系,对Canvas里的元素没有这种关系,会出现遮挡。