一个扩展InteractivePNG
有朋友问lufylegend中如何实现as3的InteractivePNG,即在相应鼠标事件的时候,过滤图片中的透明区域,鉴于这个需求有一定的泛用性,我暂时扩展了一个简单的InteractivePNG类,目前只包含最基本的过滤透明区域功能,以后可能会继续完善。下面是完整的InteractivePNG类
http://lufylegend.com/demo/test/InteractivePNG/InteractivePNG.js
使用方法,
http://lufylegend.com/demo/test/InteractivePNG/3.html
通过看代码,可以看到使用上和LSprite没有区别,因为透明区域的过滤都是在InteractivePNG内部自动执行的。
如果想用带透明区域的图片来给鼠标实现一定的遮挡,该怎么办呢?下面是例子
不使用鼠标容器的情况下
http://lufylegend.com/demo/test/InteractivePNG/1.html
使用鼠标容器的情况下
http://lufylegend.com/demo/test/InteractivePNG/2.html
暂时就这些了,如果想使用InteractivePNG类,有什么不明白的可以跟贴提问。
:loveliness: 强大! :)非常好! InteractivePNG.js 在使用过程,图片不显示,经测试pngLayer = new InteractivePNG(); 将InteractivePNG类换成LSprite类图片就出来了,请问下这是什么原因呢? Tedium 发表于 2015-9-9 16:27 static/image/common/back.gif
InteractivePNG.js 在使用过程,图片不显示,经测试pngLayer = new InteractivePNG(); 将InteractivePNG类 ...
对照我给的例子中的代码,看看能不能找到问题 恩恩,直接你的代码在本地测试的。:)
在使用new InteractivePNG()类时,我用Chrome调试时,报错:Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
只要将new InteractivePNG()类,换成new LSprite()类,图片出来了。报错也没了。但看你的测试网址上,一切正常。好奇怪! InteractivePNG,LSprite里面有两个不同类使用到的文件。 http://chuantu.biz/t2/13/1441790459x1822611351.png lufy 发表于 2015-9-9 16:37 static/image/common/back.gif
对照我给的例子中的代码,看看能不能找到问题
找到问题了,InteractivePNG里面用了bitmapData.lock(); 牵涉到getImageData()图片跨域问题。
应该是在本地测试不了,刚刚在localhost里面测试了下就可以了。
感谢大神!提供了好东西。:victory: 这个可不可以用在碰撞上:lol
页:
[1]
2