GraphicsやBitMap系のクラス、数学的な処理(三角関数とか)、PaperVison3D、tweener 、動画/音声+ インタラクションという組み合わせで面白いものを出来ないか、思案中です。
アイデアがいつかたちになるのかは不明ですが。。。。
今回はgraphics.lineToとMath.sin()を使ってサインカーブを書く、、、ってだけです。ちょっとした練習です。
eraseボタンで書いたものが消せます。
filterボタンでblurfilterのOn/Offを切り替えられます。
メインタイムライン用。
ボタンを3つ用意する必要有りです。
var xSpeed:Number;
var ySpeed:Number;
var xPos:Number;
var yPos:Number;
var amp:Number;
var angle:Number = 0;
var filterOn:Boolean = false;
var bmd:BitmapData
var bm:Bitmap
var bf:BlurFilter;
function drawSin(){
graphics.lineStyle(1,0xFFFFFF*Math.random());
graphics.moveTo(0, 200);
xPos = Math.random() * -50 -10;
xSpeed = Math.random() * 15+2;
ySpeed = Math.random() * 0.2;
amp = Math.random()*230 +40
addEventListener(Event.ENTER_FRAME, loop);
}
function bmdMake():void{
bmd = new BitmapData(550, 550, true, 0x000000);
bm = new Bitmap(bmd);
addChild(bm);
bf = new BlurFilter(5, 5, 3);
}
function loop(e:Event):void{
xPos += xSpeed ;
angle += ySpeed;
yPos = 200 + Math.sin(angle) *amp;
graphics.lineTo(xPos,yPos)
if(filterOn){
bmd.draw(this);
bmd.scroll(0, 3);
bmd.applyFilter(bmd, bmd.rect, new Point(0,0), bf);
}
if(xPos >= 450){
drawSin();
}
}
btn3.addEventListener(MouseEvent.CLICK,startFunction)
function startFunction(e:Event):void{
drawSin();
bmdMake();
btn3.removeEventListener(MouseEvent.CLICK,startFunction)
btn3.visible = false;
btn1.addEventListener(MouseEvent.CLICK,clickHandle)
btn.addEventListener(MouseEvent.CLICK,eraser)
}
function clickHandle(e:MouseEvent):void{
if(filterOn) filterOn = false
else filterOn = true
}
function eraser(e:MouseEvent):void{
graphics.clear();
removeChild(bm)
bmdMake();
}