トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     loadMovie()のコントロールについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
shoot
Åê¹ÆNo.28224
投稿日時: 2006-8-27 23:29
半人前
居住地: つくば市
投稿: 30
使用環境:
loadMovie()のコントロールについて
以前同じような質問をさせていただいたのですが、どうも調子が悪くて二進も三進もいかなくなったんでまた質問します。。


index.swfのフレームアクション

  _root._s.loadMovie("bg1.swf");
  _root._bg.start(0,9999);

で「bg1.swf」を読み込み、bg1.swfのフレームアクションに

  _root._bg=new Sound();
  _root._bg.attachSound("loop");

として(index.swfを)再生したのですが、リンケージ名「loop」の音楽が流れないんです。
「bg1.swf」の3行目に

  _root._bg.start(0,9999);

を追加して、「bg1.swf」を再生したらちゃんと音楽が再生されたので
どこかパス指定が間違ってると思うのですが・・。
ちなみに_lockrootは使ってません。

ご教授よろしくお願いします。
Fumio
Åê¹ÆNo.28225
投稿日時: 2006-8-28 0:02
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: loadMovie()のコントロールについて
電話をかけた相手がまだ受話器を取らないうちに「start」としゃべっても、相手に通じません。

参考:「MovieClip.loadMovieで外部ファイルを読込む
引用:
shootさんは書きました:
index.swfのフレームアクション
  _root._s.loadMovie("bg1.swf");
  trace(["しゃべる", _root._bg]);
  _root._bg.start(0,9999);

で「bg1.swf」を読み込み、bg1.swfのフレームアクションに
  _root._bg=new Sound();
  _root._bg.attachSound("loop");
  trace("受話器を取る");

として(index.swfを)再生したのですが、リンケージ名「loop」の音楽が流れないんです。


----------------
 

shoot
Åê¹ÆNo.28278
投稿日時: 2006-8-29 16:22
半人前
居住地: つくば市
投稿: 30
使用環境:
Re: loadMovie()のコントロールについて
返信遅れました^^;すいません。。

 onClipEvent(data){
   //こんな感じで
 }

に変更したら一応うまくいったみたいです。でも結局
上のスクリプトに

 _root._bg.start(0,9999);

を入れてもなぜか再生されませんでした^^;
今回のFLASHはそんなに高度なものではないので問題ないですけど・・。
また他のFLASHを作るときに外部ファイルでつまづいたときはご教授お願いしますm(_ _)m

ありがとうございました。
Fumio
Åê¹ÆNo.28284
投稿日時: 2006-8-29 18:37
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: loadMovie()のコントロールについて
「うまくいった」というのは、「再生」されたということではないのですか?

また、しゃべる前に、相手が受話器を取ったかどうか確認されていますか?
引用:
shootさんは書きました:
 onClipEvent(data){
   //こんな感じで
   trace(["しゃべる", _root._bg]);
 }

に変更したら一応うまくいったみたいです。でも結局
上のスクリプトに
 _root._bg.start(0,9999);

を入れてもなぜか再生されませんでした^^;


----------------
 

shoot
Åê¹ÆNo.28412
投稿日時: 2006-9-2 12:45
半人前
居住地: つくば市
投稿: 30
使用環境:
Re: loadMovie()のコントロールについて
すみません!もう自分では解決したつもりでしたので確認してませんでした^^;

自分では
bg1.swfの1フレーム目に

  _root._bg = new Sound();
  _root._bg.attachSound("loop");

として、野中さんにご教授いただいた「bg1.swf」が受話器をとってから以下のように再生

(「bg1.swf」を読み込むMCアクション)
  onClipEvent(load){
    _root._bg.start(0,9999);
  }

しようとしたんですけど、これもまただめだったんですTT
でも今よくよく考えたらbg1.swfをロードした瞬間ではなく、bg1.swfが音楽を当てはめ終えてから再生したら問題なくいけたのかもしれません。(初心者なので微妙ですが^^;

bg1.swfの3行目に

  _root.startflag=1;

を追加して、MCアクションのほうを

  onClipEvent(enterFrame){
    if(_root.startflag==1){
      _root._bg.start(0,9999);
      _root.startflag=0;
    }
  }

みたいにしたらできたかもしれませね^^;
一応現在は100フレーム目ぐらいに空白キーフレームを作成して、
そこでストップさせておいて、フレームに音楽を当てはめて再生するようにしています。

実際完成したFLASHは
http://blog.odoratus.com/
です。
Fumio
Åê¹ÆNo.28413
投稿日時: 2006-9-2 13:20
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: loadMovie()のコントロールについて
MovieClipアクションのイベントは、loadでなくdataだと思いますが、いずれにしても「受話器をとる前に」しゃべっていると思われます。
引用:
shootさんは書きました:
自分では
bg1.swfの1フレーム目に
  _root._bg = new Sound();
  _root._bg.attachSound("loop");

として、野中さんにご教授いただいた「bg1.swf」が受話器をとってから以下のように再生

(「bg1.swf」を読み込むMCアクション)
  onClipEvent(load){
    _root._bg.start(0,9999);
  }

しようとしたんですけど、これもまただめだったんですTT

フラグはロードされるbg1.swfのフレームアクションから設定するか、_root._bgの存在を確認するなどの必要があったものと「推測」します。

汎用性を考えるなら、サウンドのアタッチと再生は読込み側にfunctionを定義して任せ、ロードされるSWFはそのfunctionにサウンドのリンケージ識別子を渡して呼出すという仕組みがよさそうに感じます。
引用:
でも今よくよく考えたらbg1.swfをロードした瞬間ではなく、bg1.swfが音楽を当てはめ終えてから再生したら問題なくいけたのかもしれません。(初心者なので微妙ですが^^;


----------------
 

shoot
Åê¹ÆNo.28417
投稿日時: 2006-9-2 15:29
半人前
居住地: つくば市
投稿: 30
使用環境:
Re: loadMovie()のコントロールについて
すいません。できません

loadMovie()で読み込んだ外部ファイルのリンケージは無効になるような気がしてなりませんTT
index.swfの1フレーム目に

  function startSound(linkid){
    _root.bgm = new Sound();
    _root.bgm.attachSound(linkid);
    trace(linkid);
    _root.bgm.start(0,9999);
  }

として、bg1.swfの130フレーム目の空白キーフレームに

  _root.soundStart("loop");

としてindex.swfを実行すると、出力ウィンドウには確かに「loop」とでるんですけど、肝心の曲が流れないんです。
曲(.wav)のリンケージも間違ってないです。
ちょっとしてローカルで実行してるから(?

ちょっとよく分かりません
初心者は手をだすなってことですかねぇ・。
shoot
Åê¹ÆNo.28418
投稿日時: 2006-9-2 15:47
半人前
居住地: つくば市
投稿: 30
使用環境:
Re: loadMovie()のコントロールについて
あ!できました^^;やっと;;
bg1.swf
の”_root”とかはずしていろいろやっていたらできました
結局functionを使った受け渡しとかは使ってませんが
やっと肩の荷が下ろせたという感じです。

ありがとうございましたm(_ _)m
今後ともよろしくお願いします。
Fumio
Åê¹ÆNo.28419
投稿日時: 2006-9-2 15:47
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: loadMovie()のコントロールについて
あ、function定義で、試してご覧になったのですね。関数の呼出しで、soundStart()は間違いとして。

その場合には、重要な注意があります。「サウンドにリンケージを設定した外部SWFムービーをMovieClip.loadMovie()メソッドで読込む場合には、Soundオブジェクトを作成する際(コンストラクタnew Sound())の引数として、外部SWFをロードするターゲットのMovieClipインスタンスが渡されなければなりません」(「Sound.attachSound()メソッド」)。

いずれにしても、Sound()コンストラクタは、空にしない癖をつけた方が吉です(とくになければthisを渡す)。
引用:
shootさんは書きました:
loadMovie()で読み込んだ外部ファイルのリンケージは無効になるような気がしてなりませんTT
index.swfの1フレーム目に
// function startSound(linkid) {
function startSound(linkid, target_mc) {
	// _root.bgm = new Sound();
	_root.bgm = new Sound(target_mc);
	_root.bgm.attachSound(linkid);
	trace(linkid);
	_root.bgm.start(0, 9999);
}

として、bg1.swfの130フレーム目の空白キーフレームに
// _root.soundStart("loop", this);
_root.startSound("loop", this);

としてindex.swfを実行すると、出力ウィンドウには確かに「loop」とでるんですけど、肝心の曲が流れないんです。


----------------
 

shoot
Åê¹ÆNo.28422
投稿日時: 2006-9-3 11:24
半人前
居住地: つくば市
投稿: 30
使用環境:
Re: loadMovie()のコントロールについて
難しいですね・・。
サウンドのコントロールはちと特殊、ということを頭に入れておきます
野中さんのサイトもなかなか役に立ちそうなことがありますね。
お陰でサウンドの再生・停止も設置することができました^^

今回は本当にありがとうございましたm(_ _)m
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops