이번에 나온 플래시8.0에서는 자체적으로 필터를 적용할수 있는 기능을 지원합니다..
즉 이팩트자체에 인터렉션을 줄수 있다는 장점을 가지고 있습니다.
이런 장점을 아직까지는 회사 자체에서 라이센스를 사질 않아서 프로젝트간엔 사용할 기회가 없었지만 얼마전에 라이센스를 산걸로 알기 때문에 8.0을 적극 활용해볼 생각으로 필터를 프로토 타입화 해서 사용을 해보려고 합니다....
원래 액션을 공부한지 이제 일년정도 되가기에 코딩 스타일이 한없이 바뀌고 있는제가 회사를 옮기면서 또한번 스타일이 바뀌게 되는 일이 생겼네요 회사자체적으로 거의 프로토 타입을 쓰는지라 가급적 as2.0을 지향했지만 병행하기고 맘먹게 되었습니다...흐흐
머 class스타일이 전더 맘에 들지만 편한게 좋은거라고 편해질려고 맘먹으니 런타임에 변수만드는것도 그리 나쁘지 않더라구요...>_<
//
import flash.display.*;
import flash.geom.*;
//
img = BitmapData.loadBitmap('tahee');
mc = this.createEmptyMovieClip("holder", this.getNextHighestDepth());
mc.attachBitmap(img, 1);
//
/////////////////////////////////////////////////////////
MovieClip.prototype.imgTransition = function() {
//
var quality:Number = arguments[0];
var speedX:Number = arguments[1];
var speedY:Number = arguments[2];
var mySpeedX:Number = 100;
var mySpeedY:Number = 100;
/////////////////////////////////////////////////
if (speedX == undefined || speedX == "") {
speedX = 0;
mySpeedX = 0;
}
if (speedY == undefined || speedY == "") {
speedY = 0;
mySpeedY = 0;
}
/////////////////////////////////////////////////
var myFilter = new flash.filters.BlurFilter(0, 0, quality);
var myFilterList:Array = this.filters;
myFilterList.push(myFilter);
///////////////////////////////////////////////////
this.onEnterFrame = function() {
if (mySpeedX<=0 && mySpeedY<=0) {
delete this.onEnterFrame;
} else {
////////////////////////
mySpeedX -= speedX;
mySpeedY -= speedY;
myFilterList[0].blurX = mySpeedX;
myFilterList[0].blurY = mySpeedY;
this.filters = myFilterList;
}
};
//trace(myFilterList)
};
mc.imgTransition(2, 10, 20);
요 프로토 타입은 jpg파일을 라이브러리 상에서 직접 가져다 쓰는 방식을 사용하고 있습니다.
imgTransition()요 프로토타입은 세가지의 파라미터를 가지며 처음부터 퀄리티 x좌표로 변화
y좌표로 변화를 하게 됩니다.참고로 값이 없을경우는 "" 빈파라미터로 넘겨야 합니다...0을주면 에러가 나게 제작한 관계로 기차니즘으로 걍사용을 하는 중이라..^^;;
제작 당시엔 0을 주면 증가가 안한다는걸 깜빡하고 이프문에 추가를 안해서리..흐흐


::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::