MrSoya / soya2d

Soya2D is a web interactive animation(game) engine for modern web browsers
http://soya2d.com
MIT License
81 stars 21 forks source link

关于滚动的更好实现方式 #7

Open willove opened 8 years ago

willove commented 8 years ago

最近碰到一个问题,我需要在一个容器范围内实现滚动文字的效果,以前拿其他引擎实现的时候会使用一个clip的方法,可以直接在显示区域内裁剪容器,使得容器内的子元素不会“溢出”。

在soya2d中还没有找到直接的方法可以使用,如果直接设置子元素x,y为负值的话就会显示在父容器的外面(左/上)去。看了下示例发现可以使用卷轴精灵来实现,但是觉得有些奇怪,如果我给某个容器设置了宽高和坐标,然后在里面添加一个卷轴精灵,宽高继承容器,xy都为0,卷轴精灵里面放一张图,坐标xy都是0,按照想法来说应该是可以了,但是此时的效果是背景图只显示了部分,看起来效果就是背景图xy是在左上角坐标原点,而我期待的是xy坐标在父容器的左上角上,后来尝试将背景图xy坐标调整的和父容器一致,结果符合预期了。

我没有来得及仔细研究过卷轴精灵的源码,但是还是希望大大可以出个支持滚动容器,不需要太多的属性调整就OK了。

MrSoya commented 8 years ago

1.4的scrollSprite是一个实现错误,当时没有实现camera。2.0已经取消了scrollSprite,变成了全局的camera,就没有你说的问题了。2.0正在最后测试,会尽快放出

willove commented 8 years ago

期待新版本!我力排众议用了大大的引擎,希望不要失望啊。

还有个问题,就是音频播放的,我看源码是用的howler这个音频插件,我们游戏上上个版本就是用的这个插件,但是后来发现在微信还有其他某些浏览器上面会有无法播放的问题,还有的就是不停地“卡带”,只放一秒钟,后来好像解决了卡一秒这个问题。然后到上个版本就换了createjs的soundjs插件,搞了搞发现整体还可以,某些浏览器同时只能放一个音频的问题还是无法解决。在这个版本的开发里音频又遇到了卡一秒,公司的svn蛋疼的清理了记录,想不起来怎么解决的,蛋疼了。

MrSoya commented 8 years ago

新版本引擎升级了howler,用的最新版本。你的问题我还没遇见,遇见了可以把demo反馈给我。我check一下

willove commented 8 years ago

链接: http://pan.baidu.com/s/1gf8odEF 密码: 9exz UC浏览器特别蛋疼,我测试了声音都不出来。