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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     シークバーとボリュームバーのハンドルが残ってしまう
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
masahiro
Åê¹ÆNo.25454
投稿日時: 2006-5-9 11:23
新米
居住地: tokyo
投稿: 8
使用環境:
Win2000,Flash8Pro
シークバーとボリュームバーのハンドルが残ってしまう
コンポーネントのFLVPlayBackでFLVファイルを再生しようとしています。
FLVの再生はできるのですが、FLVファイル再生以外のフレームに移動すると、
SeekBarのSeekBarHandleとVolumeBarのVolumeBarHandleが残ったままになってしまいます。
Handleの配置されているのがコンポーネントの2フレーム目だからだと思うのですが、
どうやったらHandleを残さないようにフレーム移動するのかがわかりません。
ご存知のかたいらっしゃいましたら教えていただけませんでしょうか?
永井勝則
Åê¹ÆNo.25477
投稿日時: 2006-5-9 23:16
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: シークバーとボリュームバーのハンドルが残ってしまう
再現を試みようとしてはみたのですが、如何せん説明不足です。
何にも知らない人に、問題と思われている部分を作成できるだけの説明が必要かと思います。


----------------
永井勝則:
himco.jp :

masahiro
Åê¹ÆNo.25486
投稿日時: 2006-5-10 15:35
新米
居住地: tokyo
投稿: 8
使用環境:
Win2000,Flash8Pro
Re: シークバーとボリュームバーのハンドルが残ってしまう
永井勝則さん、ご指摘ありがとうございます。

以下、長くなりますが作成方法を記します。

1.新規ファイルを作成、レイヤー1をflvという名前にして、フレーム1のステージににウィンドウメニュー→コンポーネント→
FLV Playback - Player8→FLVPlaybackをドラッグ&ドロップ、プロパティインスペクタのパラメータcontentPathを
任意のFLVファイル(sample.flv)に、skinをなしに、名前をflvPlaybackに設定。

2.同様にウィンドーメニュー→コンポーネント→FLV Playback Custom UIからBackButton、MuteButton、
PlayPauseButton、StopButton、SeekBar、VolumeBarをステージにドラッグ&ドロップ。
プロパティインスペクタでコンポーネントの名前をそれぞれ、
backbtn、mutebtn、playpausebtn、stopbtn、seekbar、volbarとします。

3.新しいレイヤーを作成しASという名前にして、フレーム1を選択してアクションパネルに

flvPlayback.backButton = backbtn;
flvPlayback.playPauseButton = playpausebtn;
flvPlayback.stopButton = stopbtn;
flvPlayback.seekBar = seekbar;
flvPlayback.muteButton = mutebtn;
flvPlayback.volumeBar = volbar;
stop();

と書き込みます。
この段階でムービープレビューすると問題なくsample.flvの操作、制御ができます。


4.新しいレイヤーを作成し任意の名前(私の場合はPhoto)にし、
フレーム11をキーフレームにしてステージに画像を貼ります(私の場合)。

5.新しいレイヤーを作成しButtonという名前にして、新しいボタンシンボルGoButtonを作り、
フレーム1にドロップ&ドラッグし、クリップアクションに、
on(release){
gotoAndStop(11);
}
と書き込みます。


 ムービープレビューすると、GoButtonをクリックしてフレーム11に移動したときに、
seekBarとvolumeBarが表示されていたあたりに2つの黒い上向き三角形が表示されます。
実際のファイルには他にもフレームがたくさんあり、gotoAndStop()やnextFrame()であちこちに移動しても黒い三角形は消えません。


 ライブラリパネルのSeekbarシンボルおよびVolumeBarシンボルをダブルクリックしてみると、どちらも4レイヤーからできていて、
Seekbarはasset、VolumeBarはhandleというレイヤーだけが2フレームあり(他3レイヤーは1フレーム)、
SeekBarはSeekBarHandle、VolumeBarはVolumeBarHandleというインスタンスのみが配置されていて、
拡大表示800%にしてみるとこれが黒い上向き三角形でした。

この辺りの処理をちゃんとすれば、黒い三角形が残らなくなると思うのですが、どうやったらいいのかわかりません。

長くなりましたが、まだ記し足りない部分がありましたらお伝えください。

よろしくお願いいたします。
ひろゆき
Åê¹ÆNo.25488
投稿日時: 2006-5-10 16:44
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: シークバーとボリュームバーのハンドルが残ってしまう
再現されました。

flvレイヤーの2フレーム以降については、空フレームで、
flvPlayback は配置されていないのですよね?

少なくとも、_root 第11フレームには、
flvPlayback は配置されていないという前提で。

_root に ムービークリップ(インスタンス名: player) を配置。
player
	|_ flvPlayback
	|_ backbtn
	|_ playpausebtn
	(以下略)
という構造にして、_root の第1フレームのみに配置。
(第2フレーム以降は、空フレーム)

player 第1フレームに
flvPlayback.backButton = backbtn;
flvPlayback.playPauseButton = playpausebtn;
flvPlayback.stopButton = stopbtn; 
flvPlayback.seekBar = seekbar; 
flvPlayback.muteButton = mutebtn;
flvPlayback.volumeBar = volbar; 
stop();
と記述すれば、とりあえず、黒い三角形は表示されなくなるようです。


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.25489
投稿日時: 2006-5-10 16:58
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: シークバーとボリュームバーのハンドルが残ってしまう
私の環境でも、再現しました。
引用:
ひろゆきさんは書きました:
再現されました。

FLVPlaybackコンポーネントをMovieClip内に入れ子にすれば、現象が解消するようですね。
引用:
_root に ムービークリップ(インスタンス名: player) を配置。
player
	|_ flvPlayback
	|_ backbtn
	|_ playpausebtn
	(以下略)
という構造にして、_root の第1フレームのみに配置。

メインタイムラインに置くと、ハンドル(スライダ)の三角形を削除するのに失敗している感じですね。ご丁寧にseekBarとvolumeBarで、ハンドルのインスタンス名が重複しているようですし。無理矢理消すことも、一応可能でした。
タイムライン: _root
// 第1フレームアクション
flvPlayback.backButton = backbtn;
flvPlayback.playPauseButton = playpausebtn;
flvPlayback.stopButton = stopbtn;
flvPlayback.seekBar = seekbar;
flvPlayback.muteButton = mutebtn;
flvPlayback.volumeBar = volbar;
flvPlayback.onUnload = function() {
	while (handle_mc) {
		handle_mc.removeMovieClip();
	}
};
stop();


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

永井勝則
Åê¹ÆNo.25498
投稿日時: 2006-5-10 20:40
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: シークバーとボリュームバーのハンドルが残ってしまう
検索したら、
adobeのフォーラムでも同じような話題が出てました。
http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?catid=194&threadid=1106285&highlight_key=y&keyword1=seekbar

そこでのアンサー。
_level0.handle_mc.unloadMovie();


ta to herbet/cleober at macromedia

は何を意味してるのですかね?


----------------
永井勝則:
himco.jp :

野中文雄
Åê¹ÆNo.25499
投稿日時: 2006-5-10 20:55
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: シークバーとボリュームバーのハンドルが残ってしまう
seekBarとvolumeBarの両方を配置した場合、引用のスクリプトではひとつしか消えません。
引用:
野中文雄は書きました:
ご丁寧にseekBarとvolumeBarで、ハンドルのインスタンス名が重複しているようですし。

[デバッグ] > [オブジェクトのリストアップ]より引用:
ムービークリップ: フレーム=1 ターゲット="_level0.handle_mc"
...[中略]...
ムービークリップ: フレーム=1 ターゲット="_level0.handle_mc"

引用:
永井勝則さんは書きました:
そこでのアンサー。
_level0.handle_mc.unloadMovie();


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

永井勝則
Åê¹ÆNo.25500
投稿日時: 2006-5-10 21:17
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: シークバーとボリュームバーのハンドルが残ってしまう
確かにひとつしか消えません。

行き先のフレームで、2回removeMovieClip()を実行すると
消えるようです。

_level0.handle_mc.removeMovieClip();
_level0.handle_mc.removeMovieClip();


unloadMovie()を2回実行しても1個残ります。
_level0.handle_mc.unloadMovie();
_level0.handle_mc.unloadMovie();


----------------
永井勝則:
himco.jp :

野中文雄
Åê¹ÆNo.25501
投稿日時: 2006-5-11 0:42
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: シークバーとボリュームバーのハンドルが残ってしまう
インスタンスの存在は消えず、名前は重複したままだからでしょうね。
引用:
永井勝則さんは書きました:
unloadMovie()を2回実行しても1個残ります。
_level0.handle_mc.unloadMovie();
_level0.handle_mc.unloadMovie();

気になったので、少し試してみました。

FLVPlaybackインスタンスをflvPlaybackとする元のご質問と同じ前提で、つぎのようにhandle_mcのインスタンス名を変更すればふたつとも消すことは可能でした。
var i:Number;
if (i == undefined) {
	i = 0;
}
flvPlayback.onUnload = function():Void  {
	while (handle_mc) {
		trace(handle_mc);
		var temp:MovieClip = handle_mc;
		temp._name = "handle"+(i++)+"_mc";
		temp.unloadMovie();
		// handle_mc.removeMovieClip();
	}
};

けれど、再度FLVPlaybackコンポーネントを配置したフレームに戻り、改めて上記スクリプトでhandle_mcを消すと、インスタンスの残骸が増えてしまいました。したがって、MovieClip.unloadMovie()メソッドで消すというのは、「正解」とはいえなそうです。

[デバッグ] > [オブジェクトのリストアップ]より引用:
ムービークリップ: フレーム=0 ターゲット="_level0.handle0_mc"
ムービークリップ: フレーム=0 ターゲット="_level0.handle1_mc"
ムービークリップ: フレーム=0 ターゲット="_level0.handle2_mc"
ムービークリップ: フレーム=0 ターゲット="_level0.handle3_mc"


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

masahiro
Åê¹ÆNo.25507
投稿日時: 2006-5-11 17:46
新米
居住地: tokyo
投稿: 8
使用環境:
Win2000,Flash8Pro
Re: シークバーとボリュームバーのハンドルが残ってしまう
ひろゆきさん、野中文雄さん、永井勝則さん、ありがとうございます。
うまく動作しました。

1.新規ファイルの作成、挿入メニュー→新規シンボル、名前をplayerに、タイプをムービークリップにしてOK、
フレーム1のステージに各コンポーネントをドラッグし、それぞれプロパティインスペクタで名前を変更、
FLVPlaybackのcontentPathを指定、ASレイヤーを追加1フレームのアクションパネルに

flvPlayback.backButton = backbtn;
flvPlayback.playPauseButton = playpausebtn;
flvPlayback.stopButton = stopbtn;
flvPlayback.seekBar = seekbar;
flvPlayback.muteButton = mutebtn;
flvPlayback.volumeBar = volbar;

を記入。_rootに戻り、フレーム1のアクションパネルに
stop();
を記入。

2._rootに新規レイヤーを追加、フレーム11にキーフレームを追加、フレーム1にGoButtonを作りました。

ムービープレビューすると、FLVファイル再生中、GoButtonでフレーム11に移動しても
シークバー、ボリュームバーのハンドルが残らなくなりました。FLVPlayerをムービークリップに入れるなんて
考えつきもしなかったので、助かりました。
本当にありがとうございました。


以上のテストファイルを、Windowsプロジェクタでパブリッシュし、CD-Rに焼いて動作確認して大成功、
と思ったのですが、別のPCにそのCDを入れると、最初のフレームの画像も出ませんでした。
今まで、ローカル上でしか試していなかったのでFLVPlaybackというのはパブリッシュのときにFLVファイルも
プロジェクタに書き出してくれるものと思い込んでましたが、ストリーミングにしか使えないものなのですね。
http://livedocs.macromedia.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003538.html

MPEGファイルをタイムラインに読み込むか、外部SWFファイルにしてloadMovieで読み込むしかないのでしょうか?
シークバーがうまく作れなくて、動きがカクカクして動作が不安定で、FLVPlaybackコンポーネントは動きが
軽くて安定していて使いやすいなぁと思ったのですが。

とにもかくにも、自分ではわかりそうもないことで身動き取れなくなっていましたので、本当にどうもありがとうございました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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