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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ムービークリップの途中から再生
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
lonpari
Åê¹ÆNo.23415
投稿日時: 2006-2-4 0:15
新米
居住地:
投稿: 3
使用環境:
MacOSX
FlashMX2004
ムービークリップの途中から再生
質問です。
Flashの7を使っています。

1フレーム目に同じムービークリップを
3つ配置しているのですが
■一つ目のムービークリップは普通に繰り返しで再生
■2つ目のムービークリップは(ムービークリップ内の)5フレーム目から再生して繰り返し
■3つ目は2回繰り返したら停止
としたいのですが
どこに何を記述すればいいかわかりません。

どなたか助けて頂けないでしょうか。。。
よろしくお願いします。
rin-ko
Åê¹ÆNo.23441
投稿日時: 2006-2-5 15:37
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: ムービークリップの途中から再生
こんにちは。
以下はそれぞれ別の問題と考えて、一つずつ取り組まれた方がよいかと思います。
1)一つ目のムービークリップは普通に繰り返しで再生
2)2つ目のムービークリップは(ムービークリップ内の)5フレーム目から再生して繰り返し
3)3つ目は2回繰り返したら停止

そのうえでまず、1)は問題なく出来ることだと思うのですが、1)に関しても躓いていらっしゃいますか?
もしそうでしたら、ムービークリップのどこにどのようなアクションを書いているのか、など構成をもう少し詳しくご説明いただいたほうがよいと思います。

2)に関しては、「MovieClip.gotoAndPlay()」を用いることになります。もし意味がわからないようでしたら、ヘルプや参考書籍などで意味と使い方を確認されるとよいでしょう。

3)に関しては、変数の扱いとifによる条件分岐が必要になります。
考え方の一例ですが、まず3つ目のムービークリップの再生回数を入れて管理するための変数を定義します。
次に3つ目のムービークリップの再生ヘッドが最終フレーム(_totalframes)に来た時に、変数の値が規定値であるかどうかをifで判定して、規定値であればthis.stop()し、未満であれば変数の値を変更すればよいでしょう。
もちろんこれ以外にも方法はあります。
変数管理や条件分岐などが難しければ、ムービークリップをふたつ繋げたムービークリップを作って配置するという手もあるかと思います。

またわからない点がでてきましたら、具体的に問題点を絞ってご質問なさるとよいでしょう。
lonpari
Åê¹ÆNo.23444
投稿日時: 2006-2-5 18:00
新米
居住地:
投稿: 3
使用環境:
MacOSX
FlashMX2004
ありがとうございます!
ありがとうございます。
出来ました!嬉しいです。

2)に関してなのですが
 その後の報告です。

 教えていただいてから勉強のため、他の方法も
 いろいろ試してみたのですが、
 ムービークリップ自身に
 onClipEvent (load) {gotoAndPlay(5);}
 と書いても動いたのですが
 これも正解なのでしょうか?
 「ムービークリップ」が読み込まれた時に5フレームへ
  行って動いてね。って命令??
 けど、onClipEvent (enterFrame) {gotoAndPlay(5);}
 では、動きませんでした。
 enterFrameの意味はまだ調べてないので
 調べたいと思います。

3)に関してですが、「考え方の一例」との事で
 他にも考え方(アイデア)次第で同じ動作ができるかと
 思うと、楽しくなってきました。
 今回はrin-koさんの考え方でやらせていただきました。。
 ありがとうございました。

それでは失礼します。
ひろゆき
Åê¹ÆNo.23445
投稿日時: 2006-2-5 18:10
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ありがとうございます!
引用:
けど、onClipEvent (enterFrame) {gotoAndPlay(5);}
 では、動きませんでした。

Flash ActionScript Helper: システムイベント(内部イベント)」が
参考になるでしょうか。

onClipEvent (enterFrame) {
	trace("enterFrame");	//処理
}
と記述して、ムービープレビューでどのように出力されるのか確認してみてください。

ムービークリップが再生されている間、処理の部分が実行され続けます

なので、
onClipEvent (enterFrame) {
	gotoAndPlay(5);	//処理
}
だと、「5フレーム目へ移動して再生せよ」という処理を実行し続けます

「5フレーム目へ移動した」途端、
「5フレーム目へ移動して再生せよ」という指令がくるので、
「5フレーム目から移動できなくなる」ことになります。


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

野中文雄
Åê¹ÆNo.23446
投稿日時: 2006-2-5 18:19
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ありがとうございます!
「他の方法も」ということは、その前にMovieClipを配置したタイムラインのフレームアクションにMovieClip.gotoAndPlay()のステートメントを書かれたのでしょうか?

MovieClipインスタンス自身のonClipEvent (load)イベントハンドラも、インスタンスがフレームに登場したとき実行されますので、基本的に同じ結果が得られると思われます。
引用:
lonpariさんは書きました:
2)に関してなのですが
 ...[中略]...
 教えていただいてから勉強のため、他の方法も
 いろいろ試してみたのですが、
 ムービークリップ自身に
 onClipEvent (load) {gotoAndPlay(5);}
 と書いても動いたのですが
 これも正解なのでしょうか?

onClipEvent (enterFrame)ハンドラは、フレームアニメーションの場合は、フレームが「移動」するごとに実行されます。けれど、正確には再生ヘッドが停止していても、描画が更新されるたびにつまりフレームレートで(デフォルトなら12fps=1秒間に12回)処理が行われます。

ですから、デフォルトなら1秒間に12回の割合で、第5フレームに移動するという処理が繰返されています。その結果、第5フレームから動かないという状態になったのでしょう。
引用:
 けど、onClipEvent (enterFrame) {gotoAndPlay(5);}
 では、動きませんでした。


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

lonpari
Åê¹ÆNo.23459
投稿日時: 2006-2-6 2:04
新米
居住地:
投稿: 3
使用環境:
MacOSX
FlashMX2004
ありがとうございます。
ひろゆきさん、野中さん、丁寧にありがとうございます。

大変、為になります。

『(onClipEvent (enterFrame)ハンドラは)描画が更新されるたびに
つまりフレームレートで(デフォルトなら12fps=1秒間に12回)処理』というのは
単純計算で正しいスクリプトを描いたときよりも
12倍負荷がかかってしまうのですね。

今やっているコトが、携帯用の待ち受けフラッシュなので
ファイルサイズだけでなく
ワークメモリも1000KB以下、と制限が
かかっているため
大変参考になります。

皆様、丁寧にどうもありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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