メイン コーダーズルーム【スクリプト系】 前のフレームラベル、次のクレームラベルに移動するには? | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
eShin | Åê¹ÆNo.3740 投稿日時: 2004-2-12 16:12 |
半人前 居住地: 投稿: 32
使用環境:
XP Pro(SP1)+IE6 MX2004 Pro |
Re: 前のフレームラベル、次のクレームラベルに移動するには? #すみません、長いです。
nextScene、prevSceneでシーン間を移動するためのスクリプトを組んでみたのですが、うまくいきませんでした。。。(実際のコードと現象は後ろに。) Keyリスナー内でprevScene、nextSceneしているのですが、基準となるシーンがリスナー作成時のシーンに固定されてしまっているようです。 野中さんに挙げていただいたページにある下記記述と同様の原因なのでしょうか。。? 引用:
■求める挙動 ・4つのシーン間をキー入力で移動したい。 キーボードの矢印左で前のシーンへ、矢印右で次のシーンへ移動。 ・上記の挙動用のスクリプトは最初のシーンに書くのみで、以降のシーンには 書かなくてすむようにしたい。(実際は多数のシーンが必要となるため。) ■組んでみたテストムービーとスクリプト ・新規のドキュメントにシーンを4つ作成。 ・それぞれのシーンに対して、 フレーム数は5 シーンの識別用に適当に絵を描く フレーム5のフレームスクリプトに「trace("1 stop");stop();」 ※"1 stop"は、実際はシーン毎に"2 stop"、"3 stop"、"4 stop" ・最初のシーンのフレーム1のフレームスクリプトに下記のように記述。
■現象。。。 シーン1からシーン2には移動できますが、シーン2からシーン3に移動しません。。 ムービープレビューすると、出力ウィンドウに次のように表示されます。 (『』はユーザの操作です。) myKeyListenerを作成 1 stop 『右矢印を押下』 nextScene 2 stop 『右矢印を押下』 nextScene 2 stop 『右矢印を押下』 nextScene 2 stop 『左矢印を押下』 prevScene 1 stop 『右矢印を押下』 nextScene 2 stop ----- 試しにリスナーを作成するコードをシーン1は削除して、シーン2に移動しました。 さらにシーン1フレーム5の「stop();」も削除します。すると次のようになりました。シーン3でprevSceneするとシーン1に移動してしまいます。 1 stop myKeyListenerを作成 2 stop 『右矢印を押下』 nextScene 3 stop 『右矢印を押下』 nextScene 3 stop 『右矢印を押下』 nextScene 3 stop 『左矢印を押下』 prevScene 1 stop ←←←なぜかシーン1へ移動 2 stop
|
eShin | Åê¹ÆNo.3742 投稿日時: 2004-2-12 16:29 |
半人前 居住地: 投稿: 32
使用環境:
XP Pro(SP1)+IE6 MX2004 Pro |
Re: 前のフレームラベル、次のクレームラベルに移動するには? 自己レスです。
prevScene、nextSceneも「SWFファイルには1本につなげたタイムラインの中のフレーム番号に変換されて書出されます。」のが原因であろうと推測しました。リスナーを作成するスクリプトを外部スクリプトにして各シーンの先頭でインクルードしたところ、求める挙動になりました。 この推測は正解なのでしょうか。。? ご存知の方、よろしくお願い致します。 ------ なお、外部スクリプトは次のようにしました。
|
野中文雄 | Åê¹ÆNo.3766 投稿日時: 2004-2-12 23:39 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 前のフレームラベル、次のクレームラベルに移動するには? ご推察のとおりだと思います。
引用: eShinさんは書きました: シーン撲滅委員会としては、シーン先頭のフレームに"scene_1"、"scene_2"、...などのフレームラベルを設定することをお勧めしています。
|
笠居トシヒロ | Åê¹ÆNo.3767 投稿日時: 2004-2-13 0:20 |
マスター 居住地: 兵庫 投稿: 870
使用環境:
SnowLeopard, Safari4, CS4 Windows7, IE8, CS4 |
Re: 前のフレームラベル、次のクレームラベルに移動するには? また撲滅とか言ってるし・・・(^^;)
そもそも、シーン間を矢印キー押下で移動したいってだけですよね? なんでリスナーだのincludeだの、しまいにはシーン撲滅(笑)だの、そんな大げさなことになるかなぁ (^^;) ボタン一つ作って
って書いて、各シーンのステージの外にでも置いておけばいいだけですよ。 長ったらしいスクリプトは不要です。FLASH1の頃からふつーに使ってたやり方です。
|
森 巧尚 | Åê¹ÆNo.3770 投稿日時: 2004-2-13 1:19 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: 前のフレームラベル、次のクレームラベルに移動するには? 引用:
わはは(笑)僕もそう言おうと思ってました。(笑) ちなみにeShinさんは、 引用:
とのことですが、スクリプトを書いたボタンをコピーして各シーンにペーストすれば『スクリプトは最初のシーンだけに書けばいいだけ』ですよ。シーンパネルで「シーンの複製」ボタンを押してボタンごとシーンの複製をすれば、ボタンのコピーすら必要ありませんし。
|
eShin | Åê¹ÆNo.3771 投稿日時: 2004-2-13 1:20 |
半人前 居住地: 投稿: 32
使用環境:
XP Pro(SP1)+IE6 MX2004 Pro |
Re: 前のフレームラベル、次のクレームラベルに移動するには? 野中さん、笠居さん、森さん、ありがとうございます。
野中さんの方法を見て、なるほどと感心して、 笠居さんの方法を見て、拍子抜けして力なく笑ってしまいました。 ボタンの存在は知っていましたが、ボタン機能はMCでまかなっていましたし。 ましてやキー入力を受けるために使おうなどとは、頭にかすりもしませんでしたよ。 まさに「すでにあるものを使いこなしてからでも遅くない」ってことですね。 ---------- ただ、それはそれとして、私がはまってしまった上記の挙動ですが、これを"仕様"とするのは許せないですよね。 ActionScriptってプログラマー的思考の常識で考えると、はまってしまう"仕様"が多いように感じてきました。。
|
笠居トシヒロ | Åê¹ÆNo.3783 投稿日時: 2004-2-13 11:02 |
マスター 居住地: 兵庫 投稿: 870
使用環境:
SnowLeopard, Safari4, CS4 Windows7, IE8, CS4 |
Re: 前のフレームラベル、次のクレームラベルに移動するには? 引用:
ただ、それはそれとして、私がはまってしまった上記の挙動ですが、これを"仕様"とするのは許せないですよね。 それはそうでしょう。 もともとFLASHはアニメーションソフトであり、スクリプトだのプログラムだのが苦手な グラフィッカーが『簡単にインタラクティブなことができる』ように作られた 『ブラックボックスの多いオートマ車』のようなものだったわけで、 『自分でシフトしたーい』と言い出したユーザーのためのスクリプト部分は後付けですから、 整合性に難が出てくるのはアタリマエです。 で、後発で始めた方が、この『ノンクラッチのマニュアル車』みたな仕様に戸惑うのは よーくわかるんですが、じゃあ、ってんで『完全マニュアル車』にしてもらうと、 オートマ機能を便利に使ってたユーザーは困ってしまうんです。 もちろん今のままがいいとは思いませんが、どちらかに偏った視点から問題解決を図ろうとしては マズイでしょう。『すでにあるものを云々』とか『むやみにインターフェイス仕様を増やすのは・・』 などと言ったのもこのためです。 とはいえ、ええ加減なんとかして欲しいですよね、ホンマ頼むわ>マクロメディア(^^;)
|
eShin | Åê¹ÆNo.3803 投稿日時: 2004-2-13 16:03 |
半人前 居住地: 投稿: 32
使用環境:
XP Pro(SP1)+IE6 MX2004 Pro |
Re: 前のフレームラベル、次のクレームラベルに移動するには? 引用:
ですよね。。 私も最初に触ったのはFlash2なので流れは分かります。(で、アニメが主目的ではなかったので、あまり触らず。MX2004から再開でした。) --- 懸念してしまうのは、FlashをRIAの、しかも業務システムに使用するという流れです。。 マクロメディアが目指す方向のひとつのように感じられますし、SIの方もFlashの表現力とAS2のプログラム記述力によって「できるんじゃない」と安易に採用してしまうと後々「わけわからん」ことになると。 (自分としては経験積みと情報収集で乗り切るしかないですね。。 後は状況によっては「今回はFlashはやめましょう」と言えるようにする、と。) せめて言語仕様通りに動作するようにしてくれ? >マクロメディア(^^;) あと、エラーが出るだろう状況で"無視"しないでくれ? あと、あと...
|
eShin | Åê¹ÆNo.3828 投稿日時: 2004-2-14 1:45 |
半人前 居住地: 投稿: 32
使用環境:
XP Pro(SP1)+IE6 MX2004 Pro |
Re: 前のフレームラベル、次のクレームラベルに移動するには? 「シーン間を矢印キー押下で移動したい」の件、再びです。
#しつこくてすみません。。 ステージの外にボタンを作成して、笠居さんに教えていただいたスクリプトを書きました。さらに各シーンにボタンをコピーして、目的を達することはできました! ただ...後から「SPACEキーでも次のシーンへ行くようにしたい」とか考えてしまい、はたと手が止まってしまいました。 やはり各シーンにボタンをコピーしなおすしかないのでしょうか。。? #計画性が無いといえばないなぁ(^^;)と思いますが、後からこの方がよい!と思い直すこともあるわけで。。
|
野中文雄 | Åê¹ÆNo.3829 投稿日時: 2004-2-14 2:30 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 前のフレームラベル、次のクレームラベルに移動するには? ボタンはコピーしなくてもよいですが、Buttonアクションはコピーする必要があります。
インスタンス共通に設定したいスクリプトは、フレームアクションとして記述する必要があります。しかし、ボタンシンボルには、フレームアクションが設定できません。そして、ムービークリップシンボルにフレームアクションとしてキーイベントのハンドラを設定するためには、リスナーを使わざるを得ません。 引用: eShinさんは書きました: Flashを「マニュアル車」にしろとはいいません。でも、マニュアル車として運転できるテクニックをもった人は、へたに「オートマ」の機能を使ってハマるより、マニュアル車として運転した方が結果としてコントロールしやすいと思います。 |
« 1 (2) 3 4 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |