|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
占用硬盘空间少,所以被广泛应用于游戏、网络视频、网站广告、交互设计等。
poluoluo中心提醒:偶然候我们但愿加载PNG后其通明地区不呼应事务.
偶然候我们但愿加载PNG后其通明地区不呼应事务..
网上的一样平常的办法为~
先猎取其bitmapData工具..
当举行点击操纵时利用..
bitmapData.getPixel32(x,y)猎取..
点击地位的是不是通明..
然后再操纵...
而mosueOver与mouseOut等事务稍为庞大点..
必要侦听mouseMove..
然后对经由的坐标举行通明判别~~再抛出响应的事务...
明天先容的办法道理跟下面差未几..
不外我们利用Sprite的另外一个属性hitArea..(关于hitArea的申明请检察这里)
在图象加载终了后..
先绘制一个往除通明部分的Sprite..
然后把该Sprite指定为源工具的hitArea..
先看看效果:[media=wmv,600,300][/media]
代码也很复杂:main.mxml01.<?xmlversion="1.0"encoding="utf-8"?>02.<mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"xmlns:local="*">03.<mx:Script>04.<![CDATA[05.importmx.managers.CursorManager;06.privatefunctionabc(e:MouseEvent):void07.{08.if(e.type=="mouseOver")09.{10.CursorManager.setBusyCursor();11.}else12.{13.CursorManager.removeBusyCursor();14.}15.}16.]]>17.</mx:Script>18.<local:MyImagesource="/UploadTeach/200908/20090811213244572.png"mouseOver="abc(event)"mouseOut="abc(event)"y="25"/>19.<mx:Imagesource="/UploadTeach/200908/20090811213244572.png"mouseOver="abc(event)"mouseOut="abc(event)"x="344"y="25"/>20.</mx:Application>
MyImage.as,自界说Image类..01.package02.{03.importFlash.display.BitmapData;04.importflash.display.DisplayObject;05.importflash.display.Sprite;06.importflash.events.Event;07.importflash.geom.Matrix;08.importflash.utils.setTimeout;09.10.importmx.controls.Image;11./**12.*自界说Image类,使之疏忽PNG通明地区13.*@authorL4cd.Net14.*/15.publicclassMyImageextendsImage16.{17.privatevarht:Sprite=newSprite();18.publicfunctionMyImage()19.{20.addChild(ht);21.hitArea=ht;22.//指定hitArea为ht工具23.ht.visible=false;24.ht.mouseEnabled=false;25.mouseChildren=false;26.addEventListener(Event.COMPLETE,complete,false,99,true);27.setTimeout(update,50)28.}29.privatefunctioncomplete(e:Event):void30.{31.setTimeout(update,50)32.}33.privatefunctionupdate():void34.{35.if(!content)return;36.varloader:DisplayObject=content.parentasDisplayObject;37.varbit:BitmapData=newBitmapData(loader.width,loader.height,true,0x00000000);38.varmat:Matrix=newMatrix();39.mat.scale(loader.scaleX,loader.scaleY);40.bit.draw(loader,mat);41.//重画图象到bit42.ht.graphics.clear();43.ht.graphics.beginFill(0);44.for(varx:uint=0;x<bit.width;x++)45.{46.for(vary:uint=0;y<bit.height;y++)47.{48.if(bit.getPixel32(x,y))ht.graphics.drawRect(x,y,1,1);49.}50.}51.//以graphics画出bit的无通明地区52.ht.graphics.endFill();53.}54.}55.}
Flash可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。 |
|