原文出处:http://blog.163.com/tinsgao@126/blog/static/21953712006910113758128
问题出处
http://www.riachina.com/showthread.asp?threadid=6388
动态加载图片到mc,mc调用rollOver方法时候热区确定问题!
帮我看看吧:
this.creatEmptyMovieClip("mm",1);
mm.loadMove(gg.png);
mm.onRollOver = function() { trace("yumen")}
我用脚本加载外部的png图片,这张png图带有_alpha通道,是背景透明,中间画了一个红色五角星.当使用onRollOver的时候我希望这张png图中的五角星成为mc的热区,而不是整张png图,也就是说透明的区域不作为热区,怎么办?
解决办法
使用BitmapData来解决
原理
1:BitmapData的hitTest支持忽略透明
2:使用MovieClip载入外部图片
3:使用BitmapData.Draw()把MvieClip转成BitmapData
发现问题:
如果把把MvieClip转成BitmapData的代码写在图片载和完成
后的事件中时,BitmapData无法得到载入的图片(不是路径问题,使用
with(_root)测试过).但,把MvieClip转成BitmapData的代码写在另外一
帧,然后在载入图片完成后跳转到该帧再执行.
原文处有原码下载
http://www.25swf.com