MiniASVol9Banner.as
MapImage.as
package
{
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
public class MiniASVol9Banner extends Sprite
{
public var main:Sprite;
private var _map:MapImage;
private var _dmf:DisplacementMapFilter;
private var _p:Point = new Point(0, 0);
public function MiniASVol9Banner()
{
init();
}
private function init():void
{
_map = new MapImage(stage.width, stage.height, stage);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
main.buttonMode = true;
main.addEventListener(MouseEvent.CLICK,
function(e:MouseEvent):void {
navigateToURL(new URLRequest("http://www.wcan.jp/index.php?ID=212"), "_brank");
});
_dmf = new DisplacementMapFilter(
_map.bitmapData, _p, 4, 1, 50, 50, "clamp"
);
}
private function enterFrameHandler(e:Event):void
{
_dmf.mapBitmap = _map.bitmapData;
filters = [_dmf];
}
}
}
MapImage.as
package
{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.filters.*;
public class MapImage extends Sprite
{
private var _back:Sprite;
private var _ball:Sprite;
private var _ballContainer:Sprite;
private var _ballBmpd:BitmapData;
private var _mapBmpd:BitmapData;
private var _blur:BlurFilter;
private var _stage:Stage;
private var _targetWidth:Number;
private var _targetHeight:Number;
private var _tmpPoint:Point = new Point();
public function get bitmapData():BitmapData { return _mapBmpd; }
public function MapImage(w:Number, h:Number, __stage)
{
_targetWidth = w;
_targetHeight = h;
_stage = __stage;
_ball = new Sprite();
_ballContainer = new Sprite();
_back = new Sprite();
_ballBmpd = new BitmapData(_targetWidth,
_targetHeight+50,
true,
0x00FFFFFF);
_mapBmpd = _ballBmpd.clone();
_ballContainer.addChild(_ball);
// init back
with(_back.graphics)
{
beginFill(0x800080);
drawRect(0, 0, _targetWidth, _targetHeight);
endFill();
}
// init blur
_blur = new BlurFilter(8, 8, 4);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
_stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
updateBall();
_ball.alpha = 0;
}
private function enterFrameHandler(e:Event):void
{
_ball.x = mouseX;
_ball.y = mouseY+25;
_ballBmpd.draw(_ballContainer)
_ballBmpd.applyFilter(_ballBmpd,
_ballBmpd.rect,
_tmpPoint,
_blur);
_mapBmpd.lock();
_mapBmpd.draw(_back);
_mapBmpd.draw(_ballBmpd);
_mapBmpd.unlock();
if (_ball.alpha > 0) _ball.alpha -= 0.1;
}
private var _count:int = 0;
private function mouseMoveHandler(e:MouseEvent):void
{
e.updateAfterEvent()
if (_ball.alpha < 1) _ball.alpha += 0.3;
if (_count > 10)
{
updateBall();
_count = 0;
}
_count++;
}
private var _colorArray:Array = [0xFF0000, 0x0000FF];
private function updateBall():void
{
with(_ball.graphics)
{
clear();
beginFill(_colorArray[Math.floor(Math.random()*(_colorArray.length))]);
drawCircle(0, 0, 20);
endFill();
}
}
}
}




