window.temporaryLayer的坑
起源是应用了半透明退出询问窗口MyYesNodialog.tjs的情况。
在使用了[pimage layer=%layer page=back storage=char_b visible=true dx=0 dy=0 opacity=100 mode=mul]
类似这样的代码之后,再次打开询问窗口的时候,询问窗口的底板会直接消失。
pimage的mode实现是在AnimationLayer.tjs里面。
然后注意到MyYesNodialog.tjs和AnimationLayer.tjs都引用到了temporaryLayer。
AnimationLayer里面将其用于给图片添加类似特效。
其他Layer类class在应用temporaryLayer之后都会好好的处理掉,
然而AnimationLayer在游戏中随时要用,于是即使用到temporaryLayer,也并不会做任何还原处理。
最终导致mainwindow里面的property temporaryLayer实际上被多个地方引用并且效果互相干扰。
处理方法:
为mainwindow添加一个单独的temporaryLayer_animation,供AnimationLayer专用。
在使用了[pimage layer=%layer page=back storage=char_b visible=true dx=0 dy=0 opacity=100 mode=mul]
类似这样的代码之后,再次打开询问窗口的时候,询问窗口的底板会直接消失。
pimage的mode实现是在AnimationLayer.tjs里面。
然后注意到MyYesNodialog.tjs和AnimationLayer.tjs都引用到了temporaryLayer。
AnimationLayer里面将其用于给图片添加类似特效。
其他Layer类class在应用temporaryLayer之后都会好好的处理掉,
然而AnimationLayer在游戏中随时要用,于是即使用到temporaryLayer,也并不会做任何还原处理。
最终导致mainwindow里面的property temporaryLayer实际上被多个地方引用并且效果互相干扰。
处理方法:
为mainwindow添加一个单独的temporaryLayer_animation,供AnimationLayer专用。