Help us understand the problem. What is going on with this article?

[phina.js-Tips-37] 音の再生を停止してみる

More than 3 years have passed since last update.

※これまでのTipsはphina.js Tips集にまとめています。

今回のTips

音の再生を停止する方法について説明します。
赤い矩形をタッチすると音が再生され、青い矩形をタッチすると停止します。

play_music.gif

[runstantで動作確認]

playMusicメソッド

    // タッチイベント
    playBtn.onpointend = function() {
      // 音再生
      SoundManager.playMusic('bgm');
    };
  • 音楽を再生します。
  • デフォルトで音楽はループします。

stopMusicメソッド

    // タッチイベント
    stopBtn.onpointend = function() {
      // 音停止
      SoundManager.stopMusic();
    };
  • 現在再生されている音楽を停止します。

サンプルコード

// グローバルに展開
phina.globalize();
// アセット
var ASSETS = {
  // サウンド
  sound: {
    'bgm': 'https://rawgit.com/alkn203/phina_js_tips/master/assets/sounds/bgm_maoudamashii_8bit25.mp3',
  },
};
/*
 * メインシーン
 */
phina.define("MainScene", {
  // 継承
  superClass: 'DisplayScene',
  // コンストラクタ
  init: function() {
    // 親クラス初期化
    this.superInit();
    // 背景
    this.backgroundColor = 'black';
    // 再生ボタン作成
    var playBtn = Shape({
      backgroundColor: 'red',
      x: this.gridX.center(-2),
      y: this.gridY.center(),
    }).addChildTo(this);
    // タッチを有効に
    playBtn.setInteractive(true);
    // タッチイベント
    playBtn.onpointend = function() {
      // 音再生
      SoundManager.playMusic('bgm');
    };
    // 停止ボタン作成
    var stopBtn = Shape({
      backgroundColor: 'blue',
      x: this.gridX.center(2),
      y: this.gridY.center(),
    }).addChildTo(this);
    // タッチを有効に
    stopBtn.setInteractive(true);
    // タッチイベント
    stopBtn.onpointend = function() {
      // 音停止
      SoundManager.stopMusic();
    };
  },
});
/*
 * メイン処理
 */
phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    title: '音の再生を停止する',
    // MainScene から開始
    //startLabel: 'main',
    // アセット読み込み
    assets: ASSETS,
  });
  // fps表示
  //app.enableStats();
  // 実行
  app.run();
});

使用素材について

音楽:魔王魂

alkn203
javascriptのゲームライブラリphina.jsを愛用している趣味プログラマ。ファミコン世代。 Hobbyist programmer javascript/html5/phina.js/retro games
http://qiita.com/alkn203/items/bca3222f6b409382fe20
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away