Thứ Tư, 8 tháng 6, 2011

Control movie clip

Tutorial - action script 3 (AS3) - control movie clip


Bài này sẽ giúp các bạn tạo và attach các button và movie clip lên scene của mình đồng thời tạo các event để quản lí các button và movie clip...





Đầu tiên mở Flash lên và new file as3...

Như đã nói ở as3 này... chúng ta chỉ viết action script trên frame mà thôi...không thể viết script lên object như ở as2...

bạn hãy chọn frame 3 và f6 để tạo 1 keyframe ở frame 3....chúng ta sẽ viết script ở frame này chứ không viết ở ngay frame đầu tiên...đây sẽ là 1 thói wen tốt cho chúng ta sau này.....

Chọn frame 3 và mở action script window lên type vào dòng script đầu tiên: stop();

figure_01

Stop sẽ ra lệnh FLash ngừng ngay frame này....mọi diễn tiến sắp tới sẽ chỉ diễn ra ở trong frame số 3 này thôi.

Kế đến là bạn cần tạo các button và movie clip cần thiết cho scene của mình...ở đây sẽ cần có 5 button: play, stop, home, end, và pause...cùng với 1 movie clip ( movie clip này sẽ chịu sự điểu khiển của các button.

Tạo các button và movie clip bằng cách vào menu Insert/New Symbol...(ctrl + f8)...có 1 bước quan trọng là khi tạo bất cứ button hay movie clip nào thì bạn cũng phải check vào cái option Export for Actionscript ở phần Linkage...như vậy sau này các tên của button và movie clip mới được sử dụng trong script.

figure_02


Sau khi tạo xong thì các button và movie clip sẽ hiện diện trong library của bạn....

figure_03

Bây giờ bạn hãy mở bảng Action Script của frame 3 lên và viết tiếp các đoạn script để tạo và attach button và movie vào scene nhé.

figure_04

Copy và paste đoạn code dưới đây vào ngay dưới dòng stop();

//tao button home va attach button nay vao scene
var mybutt_home:butt_home = new butt_home;
mybutt_home.x = 100;
mybutt_home.y = 350;
addChild(mybutt_home);

//tao button stop va attach button nay vao scene
var mybutt_stop:butt_stop = new butt_stop;
mybutt_stop.x = 250;
mybutt_stop.y = 350;
addChild(mybutt_stop);

//tao button play va attach button nay vao scene
var mybutt_play:butt_play = new butt_play;
mybutt_play.x = 350;
mybutt_play.y = 350;
addChild(mybutt_play);

//tao button end va attach button nay vao scene
var mybutt_end:butt_end = new butt_end;
mybutt_end.x = 450;
mybutt_end.y = 350;
addChild(mybutt_end);

//tao button pause va attach button nay vao scene
var mybutt_pause:butt_pause = new butt_pause;
mybutt_pause.x = 480;
mybutt_pause.y = 220;
addChild(mybutt_pause);

//tao movie clip va attach movie clip nay vao scene
var mymc_test:mc_movie = new mc_movie;
mymc_test.x = 300;
mymc_test.y = 150;
addChild(mymc_test);


Để tui giải thích 1 số dòng code cho dễ hiễu:
-- var ... --> tạo 1 variable mới
-- mymc_test.x = 300; --> quy định vị trí x của mymc_test.
-- addChild(mymc_test); --> attach mymc_test vào scene.

Như vậy là bạn đã tạo được initial scene cho Flash của mình rồi...nói nôm na là bối cảnh ban đầu của Flash... bạn có thể thay đổi vị trí x, y của từng object trong script theo ý mình.... bấm ctrl + enter đẻ kiểm tra thử flash của mình.

Típ theo là bạn cần tạo các event cho các button và movie clip.
Bạn hãy cho nốt tiếp đoạn script sau này vào ngay theo dưới đoạn script của frame 3.


//Bat dau vao phan action + events

//tao event tu dong loop tai cac frame mong muon cua movie
mymc_test.addEventListener("enterFrame",mymc_enterFrame_handler);
function mymc_enterFrame_handler(e:Event):void {
//loop cho phan chay chu home
if (mymc_test.currentFrame == 5) {
mymc_test.gotoAndPlay(1);
}
//loop cho phan chay chu playing
if (mymc_test.currentFrame == 15) {
mymc_test.gotoAndPlay(6);
}
//loop cho phan chay chu end
if (mymc_test.currentFrame == 20) {
mymc_test.gotoAndPlay(16);
}
}

//tao event cho button home khi no duoc click
mybutt_home.addEventListener(MouseEvent.CLICK, click_to_home);
function click_to_home(event:MouseEvent):void {
mymc_test.gotoAndPlay(1);
}

//tao event cho button stop khi no duoc click
mybutt_stop.addEventListener(MouseEvent.CLICK, click_to_stop);
function click_to_stop(event:MouseEvent):void {
mymc_test.gotoAndStop(1);
}

//tao event cho button play khi no duoc click
mybutt_play.addEventListener(MouseEvent.CLICK, click_to_play);
function click_to_play(event:MouseEvent):void {
mymc_test.gotoAndPlay(6);
}

//tao event cho button end khi no duoc click
mybutt_end.addEventListener(MouseEvent.CLICK, click_to_end);
function click_to_end(event:MouseEvent):void {
mymc_test.gotoAndPlay(16);
}

//tao event cho button pause khi no duoc click
//tao them 1 variable de kiem tra tinh trang pause cua movie
var mc_is_pause:Boolean = false;
mybutt_pause.addEventListener(MouseEvent.CLICK, click_to_pause);
function click_to_pause(event:MouseEvent):void {
var mymc_current_frame:Number = mymc_test.currentFrame;
if(!mc_is_pause) {
mymc_test.gotoAndStop(mymc_current_frame);
mc_is_pause = true;
}
else {
mymc_test.gotoAndPlay(mymc_current_frame);
mc_is_pause = false;
}
}


Tui cũng xin giải thích 1 số dòng script bên trên để bạn hiểu rõ hơn tác dụng của nó:

-- mymc_test.addEventListener("enterFrame",mymc_enterFrame_handler); --> add 1 event listener cho mymc_test object. "enterFrame" chỉ ra là khi object này được attach vào scene thì lập tức nó sẽ chịu ảnh hưởng của event này suốt quá trình nó hiện diện trên scene. mymc_enterFrame_handler sẽ là tên của event này...bạn có thể đặt tên theo ý muốn của mình.

-- function mymc_enterFrame_handler(e:Event):void {...các câu lênh...} --> viết function cho event có tên mymc_enterFrame_handler...object nào add event listener có cùng tên sẽ chịu ảnh hưởng của các lệnh nằm trong ngoặc đơn.

-- mybutt_play.addEventListener(MouseEvent.CLICK, click_to_play); --> dòng event này có điểm khác biệt so với trên là...object này chỉ thưc hiện các lệnh của event này khi object bị CLICK.

Với cái script trên thì khi play flash bạn sẽ điều khiển được movie clip như sau:
-- bấm play --> movie clip chạy đoạn motion của nó từ frame 6 tới 15 và tự động loop lại.
-- bấm stop --> movie clip sẽ nhảy về frame đầu tiên của nó và stop luôn.
-- bấm home --> movie clip sẽ nhảy về frame 1 và loop từ frame 1 tới 5
-- bấm end --> gần tương tự như home
-- bấm pause --> movie clip sẽ dừng ngay tại frame nó đang chạy... bấm pause nữa thì movie clip tip tục chạy từ frame nó đang pause.


Bài hướng dẫn tới đây là hết.... nếu có thác mắc gì thì đừng ngại hỏi nhe...hehe
Bạn có thể down file flash của cái tutor này về mà xem thêm. link: http://www.mediafire.com/download.php?iywmzwjnvvt
Have fun!

0 nhận xét:

Đăng nhận xét

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | 100 Web Hosting