Mask Effect

Xem kết quả tại đây!

Tạo Document Flash

1.Tạo 1 file document flash như sau:

_ ActionScript 3.0

_ Kích thướt : 640×480

_ Frame rate : 20

_ Màu nền : 0×000000

2. Import 1 tấm hình kích thướt 640×480

3. Convert hình vừa import vào thành movieClip

01

4. Tạo 1 layer mới để vẽ hình tròn vào

03

5. Chọn công cụ Oval Tool để vẽ 1 hình tròn như sau:

04

_ Kích thướt : 50×50

_ Màu : 0xFFFFFF

05

6. Convert hình tròn thành MovieClip đặt tên “circle mask” linkage “com.MaskEffect.MovieCircleMask”

06

* Lưu ý : Do file class “MovieCircleMask.as” nằm trong thư mục “com/MaskEffect” ta mới dùng “com.MaskEffect.MovieCircleMask”. Nếu file “MovieCircleMask.as” nằm cùng cấp với file FLA thì chỉ dung tên linkage là “MovieCircleMask”.

7. Xóa layer mask circle đi.

8. Chọn mục Document class gõ : com.MaskEffect.CreateMaskEffect

02

9. Lưu document flash lại với tên “maskEffect.fla”

Tạo các class

1.Tạo 1 file class “MovieCircleMask.as” nằm trong thư mục “com/MaskEffect”

Code:

code1

2. Tạo 1 file class “CreateMaskEffect.as” nằm trong thư mục “com/MaskEffect”

Code:

package com.MaskEffect {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;

public class CreateMaskEffect extends Sprite {

private var maskArr : Array = new Array();

private var maskContainer : Sprite = new Sprite();

private var circle : MovieCircleMask;

public function CreateMaskEffect() {
for(var i : uint = 0;i < numChildren;i++) {
var background : MovieClip = getChildAt(i) as MovieClip;
}

background.mask = maskContainer;

addChild(maskContainer);

maskContainer.cacheAsBitmap = true;
background.cacheAsBitmap = true;

circle = new MovieCircleMask(1);

circle.x = mouseX;
circle.y = mouseY;

maskContainer.addChild(circle);

var time : Timer = new Timer(200, 0);
time.addEventListener(TimerEvent.TIMER, timeEvent);
time.start();
}

private function timeEvent(evt : Event) : void {

var scale : Number = Math.random() * 1.5 + 0.5;

var newMask : MovieCircleMask = new MovieCircleMask(scale);

newMask.x = mouseX;
newMask.y = mouseY;

newMask.speedX = Math.random() * 20 – 10;
newMask.speedY = Math.random() * 20 – 10;

maskContainer.addChild(newMask);

maskArr.push(newMask);

addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}

private function enterFrameHandler(evt : Event) : void {
for (var i : uint = 0;i < maskArr.length; i++) {

var myMask : MovieCircleMask = maskArr[i];

myMask.x += myMask.speedX;
myMask.y += myMask.speedY;

myMask.scaleX += 0.1;
myMask.scaleY += 0.1;

myMask.alpha -= 0.01;

if (myMask.alpha < 0) {
maskArr.splice(i, 1);
maskContainer.removeChild(myMask);
}
}

circle.x = mouseX;
circle.y = mouseY;
}
}
}

Follow

Get every new post delivered to your Inbox.