/* *参考http://barmamutha.net/?p=59 * *alpha=0版 * http://wonderfl.net/code/d9dea1ea00fb3b345097eb0958eff5fc756a5ec7 *SimpleButton版 *http://wonderfl.net/code/82eed0fb28114b5ed8d46f125991649e058d194e */ package { import flash.display.Sprite; import flash.display.Loader; import flash.net.URLRequest; import flash.system.Security; import flash.events.*; import net.hires.debug.Stats; public class ButtonTestBlend extends Sprite { private var loader:Loader = new Loader(); private var xN:uint = 0; private var yN:uint = 0; public function ButtonTestBlend() { Security.loadPolicyFile("http://5ivestar.org/proxy/crossdomain.xml"); loader.load(new URLRequest("http://5ivestar.org/proxy/http://barmamutha.net/swf/pigeon.jpg")); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); } private function onLoaded(e:Event):void { addChild(loader); while (yN<93) { addChild(new ButtonClip(xN*5,yN*5)); xN++; if (xN==93) { xN=0; yN++; } } addChild(new Stats()); } } } import flash.display.Sprite; import flash.display.Shape; import flash.display.BlendMode; import flash.text.TextField; import org.libspark.betweenas3.BetweenAS3; import org.libspark.betweenas3.easing.*; import org.libspark.betweenas3.tweens.ITween; import flash.events.MouseEvent; class ButtonClip extends Sprite { private var hitarea:Shape=new Shape(); private var mouseEffect:Sprite=new Sprite(); private var _t:ITween; public function ButtonClip(X:uint,Y:uint) { mouseEffect.graphics.beginFill(0xffffff, 1); mouseEffect.graphics.drawRect(0, 0, 5, 5); mouseEffect.graphics.endFill(); mouseEffect.width=1; mouseEffect.alpha=0; addChild(mouseEffect); //hitAreaをmultiplyにして見た目はalpha0と同じ状態にする hitarea.graphics.beginFill(0xffffff, 1); hitarea.graphics.drawRect(0, 0, 5, 5); hitarea.graphics.endFill(); hitarea.blendMode="multiply"; addChild(hitarea); addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); x=X; y=Y; } public function mouseOverHandler(event:MouseEvent):void { if (_t != null) { _t.stop(); } _t = BetweenAS3.tween(mouseEffect, {width:30,alpha:1},null,0.5, Sine.easeOut); _t.play(); } public function mouseOutHandler(event:MouseEvent):void { if (_t != null) { _t.stop(); } _t = BetweenAS3.tween(mouseEffect, {width:1,alpha:0},null,0.5, Sine.easeIn); _t.play(); } } hitAreaに指定するobjectの検証 [blendMode=multiply]