hitAreaに指定するobjectの検証 [alpha=0]

by barmamutha
参考http://barmamutha.net/?p=59
*
*blendMode版
* http://wonderfl.net/code/ffa5694100d03043ef9cbbbdf873435ce69c4eb5
*SimpleButton版
*http://wonderfl.net/code/82eed0fb28114b5ed8d46f125991649e058d194e
♥0 | Line 72 | Modified 2009-12-11 13:36:09 | MIT License
play

ActionScript3 source code

/**
 * Copyright barmamutha ( http://wonderfl.net/user/barmamutha )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/v5mB
 */

/*
 *参考http://barmamutha.net/?p=59
 *
 *blendMode版
 * http://wonderfl.net/code/ffa5694100d03043ef9cbbbdf873435ce69c4eb5
 *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 ButtonTestAlpha extends Sprite {
		private var loader:Loader = new Loader();
		private var xN:uint = 0;
		private var yN:uint = 0;
		public function ButtonTestAlpha() {
			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.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, 0);
		hitarea.graphics.drawRect(0, 0, 5, 5);
		hitarea.graphics.endFill();
		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();
	}
}