tiện ích online

TIỆN ÍCH ONLINE

Tin tức cập nhật

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • thống kê truy cập

    free counters

    HỌP MẶT VIOLET OPEN HÈ 2017

    Gốc > Lập trình Flash >

    Bài 57: Đối tượng Sound

    Đối tượng Sound
    [Hoàng Ngọc Giao]

    Trong trò chơi điền từ, mỗi lần người chơi điền từ vào chỗ trống và gõ Enter, bạn có thể cho phát ra âm thanh vui tai tùy theo từ được điền là đúng hay sai. Trong thư mục C:\Windows\Media có sẵn nhiều tập tin âm thanh ở dạng thức WAV, bạn có thể chọn hai tập tin âm thanh trong thư mục đó để thử nghiệm việc sử dụng âm thanh trong trò chơi của mình. Chẳng hạn, bạn có thể chọn hai tập tin âm thanh nhỏ gọn ringin.wav và ringout.wav.

    Cụ thể, trong cửa sổ Flash, từ thanh trình đơn, bạn chọn File > Import > Import to Library. Trong hộp thoại Import to Library, bạn tìm đến thư mục C:\Windows\Media, giữ phím Ctrl, bấm chọn lần lượt hai tập tin ringin.wav và ringout.wav, rồi bấm Open. Thao tác như vậy "nhập khẩu" hai tập tin âm thanh vào thư viện. Bạn thấy rõ điều này khi nhìn vào bảng Library (nếu chưa thấy bảng Library, bạn gõ phím F11).
    Trong bảng Library, bạn bấm-phải vào ringin.wav, chọn Linkage trong trình đơn vừa hiện ra. Trong hộp thoại Linkage Properties, bạn bật ô duyệt Export for ActionScript và bấm OK. Thao tác này nhằm thông báo cho Flash rằng bạn muốn âm thanh ringin.wav được đưa vào tập tin SWF cuối cùng vì bạn có dùng đến âm thanh đó trong mã ActionScript. Đối với âm thanh ringout.wav, bạn cũng làm như vậy.
    Trong bảng Actions - Frame ở khung 1, bạn viết thêm vào chương trình của mình như sau:

    ...

    var score = 0;

    var sound1 = new Sound();

    var sound2 = new Sound();

    sound1.attachSound("ringin.wav");

    sound2.attachSound("ringout.wav");

     

    function check() {

      position = 0;

      if(chars == words[index][1]) {

        score++;

        sound1.start();

      }

      else {

        sound2.start();

      }

      selectQuestion();

    }

    ...

    Các câu lệnh vừa thêm thể hiện cách thức tiêu biểu để sử dụng âm thanh khi lập trình Flash. Để sử dụng âm thanh nào đó trong thư viện, trước hết bạn tạo ra đối tượng thuộc lớp Sound, gọi hàm attachSound của đối tượng đó để "gắn" âm thanh cụ thể cho nó. Tiếp theo, muốn âm thanh phát ra ở chỗ nào đó trong chương trình, bạn chỉ việc gọi hàm start của đối tượng Sound đã có. Âm thanh sẽ được phát ra một lần rồi ngưng. Theo cách viết trong đoạn mã nêu trên, bạn hiểu ngay: tùy theo người chơi điền từ đúng hoặc sai, chương trình của ta phát ra âm thanh ringin.wav hoặc ringout.wav.
    Bạn ấn Ctrl+Enter để biên dịch chương trình thành tập tin SWF, dùng trình duyệt mở tập tin SWF vừa thu được để thử nghiệm xem sao.
    Nếu thấy âm thanh ringin.wav phát ra hơi dài, muốn âm thanh đó phát ra ngắn gọn hơn, bạn sửa câu lệnh sound1.start() thành sound1.start(0.6). Thêm đối mục 0.6 cho hàm start nghĩa là yêu cầu phát ra phần âm thanh còn lại sau 0.6 giây đầu. Nói khác đi, thời gian phát âm thanh ringin.wav bớt đi 0.6 giây đầu.
    Có thêm âm thanh, trò chơi tỏ ra sinh động hơn. Tuy nhiên, âm thanh cũng có thể gây phiền cho người chơi (và cả người chung quanh). Do vậy, ta cần làm giống như trong nhiều trò chơi khác: có một "công-tắc" hình cái loa để người chơi bật/tắt âm thanh.
    Để có thêm nhân vật hình cái loa trong chương trình, thay vì tự vẽ, bạn có thể lấy hình cái loa có sẵn trong phông chữ Webdings (H1). Trong Microsoft Word, bạn chọn Insert > Symbol để đưa ký tự hình cái loa vào văn bản, chọn ký tự đó, chọn kích cỡ Font Size "kha khá" một chút (26 pt chẳng hạn), chọn màu thích hợp cho ký tự (Font Color) và ấn Ctrl+C để sao chép.

    Chuyển qua cửa sổ Flash, bạn ấn Ctrl+V để dán ký tự hình cái loa vào sân khấu, đặt nó tại góc dưới, bên phải sân khấu. Khi đó, ký tự hình cái loa trở thành hình vẽ trong Flash. Nhằm làm cho hình cái loa trở thành một nhân vật của Flash, bạn gõ phím F8 để mở hộp thoại Convert to Symbol, gõ tên Speaker để đặt tên cho nhân vật và gõ Enter. Chưa xong, bạn còn phải mở bảng Properties, gõ speaker trong ô Instance Name để đặt tên cho thể hiện cụ thể của nhân vật Speaker đang hiện diện trên sân khấu (H2).

    Để cái loa đóng vai trò "công-tắc" (switch) của âm thanh, bạn bấm vào sân khấu (thôi chọn cái loa), viết thêm vào chương trình trong bảng Actions - Frame như sau:

    ...

    function reset() {

      done = false;

      index = 0;

      position = 0;

      score = 0;

      displayQuestion();

    }

     

    var sw = true;

    speaker.onPress = doPress;

    function doPress() {

      sw = !sw;

      if(sw) {

        speaker._alpha = 100;

        sound1.setVolume(100);

        sound2.setVolume(100);

      }

      else {

        speaker._alpha = 50;

        sound1.setVolume(0);

        sound2.setVolume(0);

      }

    }

    ...

    Đoạn mã vừa viết thêm tạo ra biến sw có trị ban đầu là true, thể hiện trạng thái mặc định của công-tắc là trạng thái bật. Câu lệnh speaker.onPress = doPress; nhằm quy định rằng hàm xử lý tình huống onPress của thể hiện speaker là hàm doPress. Tình huống onPress của speaker là tình huống nhấn phím chuột khi trỏ vào speaker.
    Trong hàm doPress, ta dùng câu lệnh sw = !sw để lật ngược trạng thái của biến sw (thay đổi trị của sw từ true thành false và ngược lại). Nếu biến sw có trị là false, ta cho độ đục alpha của speaker giảm còn 50% để nó trở nên mờ và quy định âm lượng của cả hai đối tượng Sound (sound1 và sound2) là 0% để người chơi không còn nghe âm thanh phát ra. Việc quy định âm lượng được thực hiện nhờ hàm setVolume của đối tượng Sound. Nếu biến sw có trị là true, ta cần làm các việc ngược lại: cho độ đục alpha của speaker là 100% và quy định âm lượng của cả hai đối tượng Sound là 100%.
    Bạn chạy thử chương trình và bật/tắt cái loa để kiểm tra hiệu lực của đoạn mã vừa thêm.

    Nhắn tin cho tác giả
    Đỗ Thanh Dương @ 08:02 06/04/2012
    Số lượt xem: 1422
    Số lượt thích: 0 người
    Avatar

    Chào thầy Thanh Dương, chúc thầy một mùa hè thật vui và sức khỏe!

     
    Gửi ý kiến

    HỖ TRỢ QUẢN TRỊ WEBSITE

    Thay tên website / Chọn thư mục / Mở ra
    Giao diện Module Thư mục Thành viên Tài nguyên Xóa Code
    http://