hitAreaに指定するobjectの検証 [blendMode=multiply]
参考http://barmamutha.net/?p=59
*
*alpha=0版
* http://wonderfl.net/code/d9dea1ea00fb3b345097eb0958eff5fc756a5ec7
*SimpleButton版
*http://wonderfl.net/code/82eed0fb28114b5ed8d46f125991649e058d194e
♥0 |
Line 74 |
Modified 2009-12-11 13:36:48 |
MIT License
archived:2017-03-10 12:55:07
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/Aty9
*/
/*
*参考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();
}
}