+ Trả lời
Hiển thị kết quả từ 1 đến 6 của 6 kết quả

Chủ đề: [Flash] Bài 25 : Nút bấm khởi động - Lập Trình Flash

  1. #1
    Thành viên sáng lập BlackSun is on a distinguished road BlackSun's Avatar
    Ngày tham gia
    Sep 2011
    Địa chỉ
    Thanh Pho Ho Chi Minh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    176
    Cảm ơn
    6
    Được cám ơn 15 lần trong 11 bài viết

    Post [Flash] Bài 25 : Nút bấm khởi động - Lập Trình Flash

    Bạn đã thấy cách thức tạo nút bấm rất đơn giản: chỉ cần định nghĩa hàm xử lý tình huống onPress của nhân vật được dùng làm nút bấm. Muốn cho nút bấm có vẻ “chuyên nghiệp” hơn, bạn đã tạo ra ba khung chốt liên tiếp trong thời tuyến của nút bấm, đặt tên là _up, _over, _down.
    Đó là các tên bắt buộc theo quy ước của Flash, bạn đừng đặt tên khác đi (chú ý đừng viết thiếu dấu gạch chân _). Quan sát thời tuyến của nút bấm, bạn thấy các khung đã được đặt tên đều có gắn cờ hiệu màu đỏ để phân biệt với khung không có tên.
    Hình ảnh ở khung _up chính là diện mạo của nút bấm ở trạng thái bình thường. Khi bạn trỏ vào nút bấm, Flash hiển thị hình ảnh ở khung _over của nút bấm. Khi bạn bấm nút, Flash chuyển qua khung _down của nút bấm. Ở mỗi khung _up, _over và _down, ta đều phải viết câu lệnh stop(); để ra lệnh ngừng, ngăn không cho hiển thị khung tiếp theo. Nếu không làm như vậy, các khung _up, _over và _down sẽ tự động được hiển thị liên tiếp, lặp đi lặp lại vào lúc chạy, khiến bạn thấy nút bấm nhấp nháy liên tục.
    Ta hãy dùng nút bấm Start hiện có làm nút khởi động trong trò chơi “bắt sao biển” trước đây. Nhờ nút khởi động Start, người chơi có thể chủ động bắt đầu trò chơi khi họ sẵn sàng (hình 1). Khi người chơi bị cá nóc bắt được, trò chơi cần kết thúc với trạng thái tĩnh. Muốn chơi tiếp, người chơi lại bấm nút Start. Nhờ vậy, người chơi kịp “hoàn hồn” để xem điểm số mà mình đạt được.

    Nếu đang mở tập tin chứa nút bấm Start, bạn hãy đóng tập tin đó. Bạn mở lại tập tin FLA của trò chơi “bắt sao biển” và ấn Ctrl+Shift+O (hoặc chọn File > Import > Open External Library). Trong hộp thoại Open as Library vừa hiện ra, bạn tìm tập tin FLA chứa nút bấm Start và bấm kép vào nó. Thao tác như vậy mở ra cửa sổ Library của tập tin đã chọn, trong đó có nút bấm Start cần dùng.
    Trong thời tuyến chính, bạn chọn khung 1 của lớp Layer 1 và mở bảng Actions – Frame (gõ phím F9). Bạn viết thêm như sau vào bên dưới đoạn mã hiện có:

    play = false;


    attachMovie("Button", "button1", 1);

    button1._x = 440;

    button1._y = 10;

    button1.onPress = function() {

    play = true;

    star.score = 0;


    }




    Để tạo ra nút bấm Start (nhân vật Button) trên sân khấu, bạn dùng hàm attachMovie đã biết và quy định tọa độ thích hợp cho nút bấm. Biến play đóng vai trò “cờ hiệu”, quy định trạng thái của trò chơi. Lúc đầu, ta gán trị false cho biến play. Trong hàm onPress của nút Start (hàm được gọi khi bấm nút Start), ta gán trị true cho biến play và cho điểm số trở lại trị 0. Điểm số được lưu giữ bởi biến star.score, tức biến score bên trong sao biển có tên là star.
    Tiếp theo, bạn cần chỉnh sửa hành vi của sao biển và cá nóc sao cho chúng “án binh bất động” khi biến play có trị là false. Bạn bấm vào đâu đó trên sân khấu, rồi bấm vào sao biển, quan sát chương trình của nó trong bảng Actions – Movie Clip và viết thêm vào hàm onClipEvent(mouseDown) như sau:
    ...


    onClipEvent(mouseDown) {


    if(!_root.play)

    return;

    if(hitTest(_root._xmouse, _root._ymouse, true)) {

    ...


    Khi biến play ở thời tuyến chính (biến _root.play) có trị là false, biểu thức !_root.play có trị là true, hàm onClipEvent(mouseDown) kết thúc ngay, không làm gì cả. Nghĩa là khi biến play có trị là false, sao biển sẽ không “nhúc nhích” chi hết dù bạn bấm trúng nó.
    Bạn bấm vào cá nóc để chuyển qua chương trình của nó và chỉnh sửa trong hàm onClipEvent(enterFrame) như sau:
    ...


    onClipEvent(enterFrame) {

    if(!_root.play)

    return;

    caught = false;

    if(_x + step < _root._xmouse)

    ...

    else if(caught == true) {

    //trace("Bắt được rồi nhé!");

    //_root.star.score = 0;

    _root.play = false;

    step = 5;

    }

    }




    Tương tự như trường hợp sao biển, câu lệnh điều kiện if vừa thêm nhằm kiểm tra biến play ở thời tuyến chính: nếu biến play có trị là false, hàm onClipEvent(enterFrame) kết thúc ngay. Khi biến play có trị là true, cá nóc mới rượt theo con trỏ chuột. Khi cá nóc bắt được con trỏ chuột, ta gán trị false cho biến play để trò chơi chuyển qua trạng thái tĩnh. Ngoài ra, câu lệnh _root.star.score = 0; được vô hiệu hóa để biến star.score giữ nguyên điểm số mà người chơi vừa đạt được, giúp họ đọc điểm dễ dàng hơn. Biến star.score chỉ trở lại trị 0 khi người chơi bấm nút Start để chơi lần nữa.
    Bạn ấn Ctrl+Enter để chạy chương trình, xem thử những sửa đổi vừa thực hiện có hiệu lực ra sao nha.
    Theo echip
    Đọc thêm : [Tổng Hợp] Hướng dẫn lập trình Flash từ căn bản đến nâng cao

  2. Thành viên cám ơn BlackSun cho bài viết này:

    jemappellelong (28-08-2012)

  3. #2
    Thành viên mới jemappellelong is on a distinguished road
    Ngày tham gia
    Aug 2012
    Bài viết
    8
    Cảm ơn
    5
    Được cám ơn 0 lần trong 0 bài viết
    Không thể thực hiện được code này "
    play = false;


    attachMovie("Button", "button1", 1);

    button1._x = 440;

    button1._y = 10;

    button1.onPress = function() {

    play = true;

    star.score = 0;


    }





    in assignment statement: found Boolean where Function is required.
    play = true;



    mong bạn xem lại

  4. #3
    Thành viên mới jemappellelong is on a distinguished road
    Ngày tham gia
    Aug 2012
    Bài viết
    8
    Cảm ơn
    5
    Được cám ơn 0 lần trong 0 bài viết
    chắc chắn code play= true, play = false có vấn đề,bạn có thể kiểm tra lại câu lệnh này trực tiếp trên main timeline của button,khi chưa nó vào trò cá nóc

  5. #4
    Thành viên mới jemappellelong is on a distinguished road
    Ngày tham gia
    Aug 2012
    Bài viết
    8
    Cảm ơn
    5
    Được cám ơn 0 lần trong 0 bài viết
    bài này câu lệnh phải là


    play1 = false;
    play = play1;

    attachMovie("Button", "button1", 1);

    button1._x = 440;

    button1._y = 10;

    button1.onPress = function() {
    play2 = true;

    play = true2;

    star.score = 0;


    }

    ............................................

    chạy luôn câu lệnh gán play = true, play = true ko được,mà phải dùng cách gán như mình đã thêm ở trên

  6. #5
    Thành viên mới jemappellelong is on a distinguished road
    Ngày tham gia
    Aug 2012
    Bài viết
    8
    Cảm ơn
    5
    Được cám ơn 0 lần trong 0 bài viết
    Chú ý: trong trò chơi bắt sao biển ,ta tạo theem1 layer mới rồi cóp cái code vào action của layer mới là ok

  7. #6
    Thành viên mới jemappellelong is on a distinguished road
    Ngày tham gia
    Aug 2012
    Bài viết
    8
    Cảm ơn
    5
    Được cám ơn 0 lần trong 0 bài viết
    2 code ở sau dùng cho cá nóc và sao biển,ko chạy đc
    ...


    onClipEvent(mouseDown) {


    if(!_root.play)

    return;

    if(hitTest(_root._xmouse, _root._ymouse, true)) {

    ...



    >>>

    ...


    onClipEvent(enterFrame) {

    if(!_root.play)

    return;

    caught = false;

    if(_x + step < _root._xmouse)

    ...

    else if(caught == true) {

    //trace("Bắt được rồi nhé!");

    //_root.star.score = 0;

    _root.play = false;

    step = 5;

    }

    }


    mong bạn cho í kiến

+ Trả lời

Các bài tương tự

  1. Trả lời: 0
    Bài mới nhất: 18-09-2011, 10:23 PM
  2. Trả lời: 0
    Bài mới nhất: 18-09-2011, 03:58 PM
  3. Trả lời: 0
    Bài mới nhất: 14-09-2011, 08:01 PM
  4. Trả lời: 0
    Bài mới nhất: 14-09-2011, 05:21 PM
  5. Trả lời: 0
    Bài mới nhất: 14-09-2011, 10:24 AM

Từ khóa cho bài viết này

Bookmarks

Quyền của bạn ?

  • Bạn không thể viết bài mới
  • Bạn không thể viết bài trả lời
  • Bạn không thể đính kèm tệp tin
  • Bạn không thể sửa bài viết của bạn
Hop am guitar | Xem phim online | Doc truyen tranh | seo | nuoc hoa hang hieu | nghe nhac mp3 | hung dong phan 2 | Micro Thu Am, Thiet bi game, dao hai tac (vua hai tac), nhac giang sinh Gangnam Style, nhac thieu nhi
lien khuc nhac vang, Phim tet 2013, phim nho em, Suzuki Axelo, Benh Tieu Duong, dịch vụ thẻ giảm giá, mua laptop duoi 10 trieu, laptop cu acer giá rẻ