Aloflash

 

 

Tìm
Aloflash Diễn đàn Hỏi đáp hỏi về button trong flash
Xem: 12561|Trả lời: 22
go

hỏi về button trong flash

˲!
       
Thành viên thứ:: 42
Nick: phamphuoc2038
Cấp: Binh nhì
Bài viết: 9 (0)
Online: 4 giờ
Số điểm: 94
0
85
0


Đăng lúc 2010-10-14 22:51 |Hiện toàn bài
Em mới tìm hiểu về flash (trái tay), nên chưa biết nhiều, mong các anh-chị giúp đỡ.
Hiện tại em có một số file flash, em không biết liên kết các file đó lại với nhau bằng button là như thế nào cả, mong các anh chị có thể giúp em.

                    Nếu bạn thấy hay hãy Click vào +1 để diễn đàn ngày 1 phát triển hơn cảm ơn:                                        
                                                 
˲!
       
Thành viên thứ:: 6
Nick: aloflash
Cấp: Super Moderator
Bài viết: 879 (0)
Online: 450 giờ
Số điểm: 17264
2
16379
2


Đăng lúc 2010-10-15 10:17 |Hiện toàn bài
Bài viết của aloflash trong 2010-10-15 11:34 chỉnh sửa

Chào bạn.

Mình hiểu nôm na ý câu hỏi của bạn là: Ví dụ bạn có 6 file flash, bạn muốn đặt các button để khi click vào nó nó sẽ chuyển sang flash khác dạng Next hoặc bạn có 6 file thì sẽ có 6 button rồi click vào button nào sẽ gọi ra file đó.

Mình làm 1 ví dụ như thế này, các file mình gọi ra đều là những tut mình từng làm hướng dẫn:



Mình sẽ hướng dẫn cụ thể cho bạn nhé.

Bước 1:

Tạo 1 tài liệu Flash mới, nhấn Ctrl + N chọn loại ActionScript 2.0.

Bước 2:

Bạn nhấn Ctrl + J để mở bảng tùy chỉnh kích thước và tốc độ frame cho Flash, Bạn xem các kích thước của những file bạn làm lớn nhất là bao nhiêu mà đặt kích thước của file này cho hợp lý, và tốc độ frame bạn sử dụng những file của bạn là bảo nhiêu. (file này có kích thước to hơn kích thước lớn nhất của những file kia, để có chỗ thêm button)

Bước 3:

Tạo các button, bạn có thể sắp xếp nó thành dạng menu. (có thể thao khảo các tạo button trong flash ở đây).

Đặt tên các button lần lượt là bt1 bt2 bt3 bt4... có bao nhiêu button thì bạn đặt theo thứ tự đó. Công đoạn chuẩn bị như vậy là tạm ổn. Giở thì bắt đầu đến phần bạn cần chú ý:

Bước 4:

Tạo 1 layer mới. Bạn sử dụng công cụ Rectangle Tool (R), vẽ 1 hình có kích thước bằng với kích thước file flash lớn nhất của bạn.

Bước 5:

Sử dụng công cụ Selection Tool (V), Click vào hình bạn vừa tạo nhấn phím F8 để convert nó sang dạng Movie Clip, nhớ đặt tên cho movie clip này là: main nhé.

Bước 6:

Tạo 1 layer mới, click vào frame đầu tiên của layer mới này nhấn F9, bạn chèn vào đoạn code này nhé:
  1. stop ();
  2. bt1.onPress = function ()
  3. {
  4. var _loc2 = _root.createEmptyMovieClip("main", 0);
  5. _loc2.loadMovie("ten-file.swf");
  6. };
  7. bt2.onPress = function ()
  8. {
  9. var _loc2 = _root.createEmptyMovieClip("main", 0);
  10. _loc2.loadMovie("ten-file.swf");
  11. };
  12. bt3.onPress = function ()
  13. {
  14. var _loc2 = _root.createEmptyMovieClip("main", 0);
  15. _loc2.loadMovie("ten-file.swf");
  16. };
  17. bt4.onPress = function ()
  18. {
  19. var _loc2 = _root.createEmptyMovieClip("main", 0);
  20. _loc2.loadMovie("ten-file.swf");
  21. };
Sao chép mã

Trong đó main là tên của movie clip bạn tạo, thì khi bạn gọi file mới ra nó sẽ đè vào movie clip này. Còn giá trị o là giá trị tọa độ X của file sẽ chèn vào. ten-file.swf là đường dẫn đến file flash của bạn.

Sau khi đã OK hết. nhấn Ctrl + Enter để xem thử nhé.

Chúc bạn thành công.

aloflash.com

Download:
Đính kèm: Bạn phải đăng nhập mới xem được nội dung bài viết này, nếu bạn chưa có tài khoản? hãy Đăng ký

Nhận xét

hoanghieu754  nice :)  Đăng lúc 2014-7-15 16:24
˲!
       
Thành viên thứ:: 42
Nick: phamphuoc2038
Cấp: Binh nhì
Bài viết: 9 (0)
Online: 4 giờ
Số điểm: 94
0
85
0


Đăng lúc 2010-10-15 13:34 |Hiện toàn bài
Em cảm ơn anh aloflash.
Nhưng nếu 6 file kia không cùng trên 1 menu, mà phân chia theo dạng hình tree thì làm như thế nào ạh (3 cấp). Em gởi anh mấy cái flash, anh coi giúp em  được không ạh.
˲!
       
Thành viên thứ:: 42
Nick: phamphuoc2038
Cấp: Binh nhì
Bài viết: 9 (0)
Online: 4 giờ
Số điểm: 94
0
85
0


Đăng lúc 2010-10-15 13:37 |Hiện toàn bài
Em cảm ơn anh aloflash.
Nhưng nếu 6 file kia không cùng trên 1 menu, mà phân chia theo dạn ...
Trích từ $thaquote[author] vào lúc $time



http://www.mediafire.com/?aartfm0eijscalc
˲!
       
Thành viên thứ:: 6
Nick: aloflash
Cấp: Super Moderator
Bài viết: 879 (0)
Online: 450 giờ
Số điểm: 17264
2
16379
2


Đăng lúc 2010-10-15 13:48 |Hiện toàn bài
Trả lời phamphuoc2038 Đăng bài

Ok bạn, hiện giờ mình đang ở công ty, công ty chặn hết các Post của các trang download nên mình không download được file của bạn về, có gì tối mình sẽ xem và trả lời bạn.

Chúc vui vẻ.


   
˲!
       
Thành viên thứ:: 42
Nick: phamphuoc2038
Cấp: Binh nhì
Bài viết: 9 (0)
Online: 4 giờ
Số điểm: 94
0
85
0


Đăng lúc 2010-10-17 23:21 |Hiện toàn bài
anh có thể chỉ em cách viết code, để khi click vào ô buttton, nó sẽ chuyển đến frame cần chạy và dừng lại ngay khi nhấn ô button luôn nha anh aloflash
˲!
       
Thành viên thứ:: 6
Nick: aloflash
Cấp: Super Moderator
Bài viết: 879 (0)
Online: 450 giờ
Số điểm: 17264
2
16379
2


Đăng lúc 2010-10-17 23:56 |Hiện toàn bài
Hi bạn, mình xin trả lời bạn, Để dùng button để chuyển frame thì có 2 cách. Cách thứ nhất là cho button chuyển đến 1 frame bắt buộc, cách 2 chuyển frame theo dạng Next hoặc Previous.

Đầu tiên để làm theo cách 1 thì bạn có bao nhiêu frame thì cần tạo bấy nhiêu button. Ví dụ bạn có 6 frame thì bạn cần tạo 6 Button, như mình hướng dẫn ở trên những bài trước mà bạn đã hỏi, bạn đặt tên cho button lần lượt là. bt1 bt2 bt3 bt4 bt5bt6 Như hình dưới:



Bạn sẽ có 3 layer, layer dưới cùng sẽ chứa các frame, layer thứ 2 sẽ chứa các button và layer trên cùng chứa code actionscript.

Đoạn code actionscript ở layer thứ 3 bạn sẽ chè vào là:
  1. stop();
  2. bt1.onPress = function()
  3. {
  4.         gotoAndStop(1);
  5. }
  6. bt2.onPress = function()
  7. {
  8.         gotoAndStop(2);
  9. }
  10. bt3.onPress = function()
  11. {
  12.         gotoAndStop(3);
  13. }
  14. bt4.onPress = function()
  15. {
  16.         gotoAndStop(4);
  17. }
  18. bt5.onPress = function()
  19. {
  20.         gotoAndStop(5);
  21. }
  22. bt6.onPress = function()
  23. {
  24.         gotoAndStop(6);
  25. }
Sao chép mã


Ta được kết quả:



Sau đây mình sẽ gửi bài hướng dẫn cụ thể cho bạn.

1) Ra lệnh cho movie clip :

Một movie chính có thể rất đơn giản. NÓ chỉ cần 1 frame và một movie clip. Nhưng bản thân movie clip lại có thể là một animation dài. Việc này dễ dàng thực hiện mà ko cần Actioncript.

Để điều khiển được movie, bạn phải đặt tên cho movie clip. Chú ý rằng một movies clip có 2 tên, một tên sử dụng cho timeline . Một tên sử dụng cho actioncript. 2 tên này có thể đặt trùng tên nhau hoặc khác tên nhau.

Làm sao để đặt tên cho movie clip :
Chọn insert -----> New Symbol (hoặc bấm Ctrl F8), đặt tên cho movies clip
(nhớ lựa chọn option movies clip, chứ ko phải là button hay graphic)
Tên này được sử dụng cho timeline. vd: gear animation

Thả movie gear animation vào cửa sổ thiết kế.. PHía dưới cửa sổ properties, ban sẽ thấy box instance name.. Đặt tên cho movie
tên này được sử dụng cho Action script , vd : gears

và như vậy, khi bạn lập trình , tên sử dụng là gears , chứ ko phải gear animation.
bạn có thể sử dụng dấu chấm để đưa ra các lênh cho movie của bạn. ví dụ

Trích:

gears.stop();
gears.gotoAndStop(5);


Nhớ rằng movie clip luôn có level. Nếu đoạn mã được đặt trên chính movieclip, bạn ko cần sử dụng tên movies, chỉ cần gotoAndStop();. Nếu bạn đặt cả tên movie vào, Flash sẽ tìm movie của bạn từ timeline chính.. Tức là sẽ phải qua 2 level. ---> chậm hơn chút.

2)Animation Playback Controller
Hãy down load source code từ trên phần download và xem. Về cơ bản, chúng ta làm các việc sau:
- Tạo một Movie ,đặt tên là gear animation
- Đặt instance name là gear(hướng dẫn ở trên)
- Frame đầu tiên của time line chính, chèn code

Trích:

gears.stop();


-Tạo các button Advance, Previous, Play, Stop, and Rewind
-Code cho các button lần lượt là

+ Advance
Trích:

on (release) {
gears.nextFrame();
}


+ Previous
Trích:

on (release) {
gears.prevFrame();
}


+ Play
Trích:

on (release) {
gears.play();
}


+ Stop
Trích:

on (release) {
gears.stop();
}


+ Rewind
Trích:

on (release) {
gears.gotoAndStop (1);
}


3) Target một movie

Level cơ bản đầu tiên của Flash là time line chính(Level 0). Nếu bạn muốn ra lệnh cho time line này, bạn dùng code sau

Trích:

_root.gotoAndStop();


Trích:



thậm chí nếu bạn đặt code ở time line chính, bạn ko cần _root. Chỉ cần
Trích:
gotoAndStop();

Giả sử nếu bạn có một movie trên time line, tức là bạn có một level sâu hơn(level 1). Nếu bạn từ time line chính, muốn goi movie gears , bạn phải dùng câu lệnh
Trích:

gears.gotoAndStop(7);
_root["gears"].gotoAndStop(7);
this["gears"].gotoAndStop(7);


Cả 3 cách trên đều giống nhau.. Tuy nhiên
this có nghĩa là level hiện hành. VÍ dụ trên, level hiện hành của this là level 0. Nhưng nếu code đặt trong movie, level hiện hành sẽ là level 1. Bạn phải chú ý.

Giả sử bạn có một movie khác bên trong movie, tức là bạn có level 2. Nếu bạn muốn từ level 1 gọi đến level 2, bạn phải dùng
_parent.
Parent dùng giống như root, nhưng khác ở chỗ, nó được gọi từ level ở trên. Còn root được gọi từ level 0 (tức là level gốc).

Thuận lợi từ việc sử dụng root, this là bạn có thể gán biến cho movie clips

Trích:

var whichClipToUse = "gears";
this[whichClipToUse].stop();


Thuận lợi của vịệc sử dụng this nhiều hơn root ở chỗ , ko phải lúc nào mọi thứ cũng xảy ra ở time line chính, đôi khi ta chỉ muốn nó xảy ra ở một level nhất định. Bởi vậy this là cách tốt nhất để goi level của một movie. Tuy nhiên trong những trương hợp đơn giản, hay nhất là cứ đặt tên cho movies.

4) Mã cho movie clip
Chúng ta đã bàn về button ở trên, vậy về cơ bản movie clip script cũng giống button, đó là

Trích:

onClipEvent (load) {
trace("This clip has been loaded.");
}


onClipEvent: key word gọi sự kiện (giống on của button)
load : sự kiện này xảy ra khi movie clip xuất hiện lần đầu tiên trên màn hình . NÓ chỉ xảy ra một lần.

Nhớ rằng ngay cả khi time line chính bị đừng, movie clip nằm trên time line vẫn tiếp tục chạy. Sự kiên enterFrame xảy ra liên tục bên trong movie clip mỗi khi đến một frame mới. Sự kiện này sẽ thực thi đoạn mã một cách liên tục cho đến khi nó bị kết thúc.

Trích:

onClipEvent (enterFrame) {
trace("This clip has entered a new frame.");
}


bây giờ hãy copy 2 đoạn code trên vào của sổ action của timeline chính và run .. bạn sẽ thấy
Trích:

This clip has been loaded
This clip has entered a new frame
This clip has entered a new frame

This clip has entered a new frame
This clip has entered a new frame


dòng chữ sẽ tiếp tục hiện ra cho đến khi bạn tắt movie.



Download file:
Đính kèm: Bạn phải đăng nhập mới xem được nội dung bài viết này, nếu bạn chưa có tài khoản? hãy Đăng ký
˲!
       
Thành viên thứ:: 42
Nick: phamphuoc2038
Cấp: Binh nhì
Bài viết: 9 (0)
Online: 4 giờ
Số điểm: 94
0
85
0


Đăng lúc 2010-10-18 00:06 |Hiện toàn bài
em cảm anh nhiều nha.
˲!
       
Thành viên thứ:: 1206
Nick: dung2vt
Cấp: Binh nhì
Bài viết: 16 (0)
Online: 4 giờ
Số điểm: 70
0
54
0


Đăng lúc 2011-2-13 16:23 |Hiện toàn bài
Bài rất bổ ích, em thấy trang v5design làm theo một cách khác, vậy anh có thể chỉ em làm giống như vậy được không, link: www.v5design.com/
˲!
       
Thành viên thứ:: 1209
Nick: bardock_boss
Cấp: Binh nhì
Bài viết: 12 (0)
Online: 7 giờ
Số điểm: 64
0
52
0


Đăng lúc 2011-2-14 09:51 |Hiện toàn bài
chưa biết làm...chưa làm thử.! nhưng mà đang quan tâm....thanks for share.! :D
Bạn phải đăng nhập mới được đăng bài Đăng nhập | Đăng ký

Webmaster giới thiệu Đóng


Đi đến fanpage


Xem

aloflash.com

GMT+7, 2017-2-19 18:48 , Processed in 0.068186 second(s), 24 queries .

Diễn đàn aloflash

© 2010 tunglinhonline