- ベストアンサー
横スクロール用ムービークリップ幅の限界ってあるんでしょうか?
- フォトアルバムを作成しています。シーンにalbum_mcを配置し、スクロールボタンで動かせるように作っています。album_mc内は画像ボタンを横並びに並べており、13個くらいまでは順調でしたが、14個目からその画像がつかめなくなりました。
- シーンからダブルクリックしてalbum_mcに入っても、スクロール(album_mc内の編集範囲)は13.jpgまでしか出ず、ウインドウをドラッグして大きくし、ずらせば14.jpgを見ることはできるのですが編集することができません。
- 一定以上ムービークリップが長くなる、あるいは並べると編集できなくなるのでしょうか。どなたか解決方法をご存知の方ご教授ください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。 MC(ムービークリップ)の限界サイズはわかりませんでした。 2880px は1つの目安ですが,ステージの大きさやフィルターをかける範囲の限界であって, ステージ外作業領域はその外までありますから, 楽勝でそのくらいの大きさのムービークリップは作成可能なことは確かです。 試しに, 100000.0px × 100000.0px = 10万px × 10万px の大きさのグラデージョン塗りのMCを作って, 左右にそのムービークリップをモーショントゥイーンで動かすものを作ってみましたが, 普通に動きました(Flash MX で確認)。 1000000.0px × 1000000.0px = 100万px × 100万px に挑戦しようかと思いましたが, Flash の限界の前に,そんなものを編集(移動)させる私の労力の方に限界を感じましたので諦めました。 100万px × 100万px のムービークリップも作成可能ですが, 動かすところまでは検証していません。 ムービークリップのサイズより,動かす座標の限界に先に到達するようです。 プロパティインスペクタの情報パネルで, テンキーによる座標の指定ができなくなるので, ズルズルとドラッグさせて移動になります。 それで労力の方に先に限界が来るのです。 (個人的にはあまり参考にしたくないサイトなのですが) 憲ちゃんのFLASH講座Q&A(過去ログ) 編集領域を超える大きな画像の編集? http://hfm-kenchan.com/Lesson/log_qa/D0210091.htm ここによるとムービークリップというより, ビットマップ系画像の管理に限界があるようですね。 そう言えば, やたら大きな地図(5000×5000pxくらいだったか…?)を Flash に読み込んで, ムービークリップにしたまでは良いですが,うまく表示されなかったことがある記憶はあります。 上記サイトの方によると, うまくパブリッシュされない場合は, 個々のビットマップをグラフィックシンボルにすれば良いとか。 >> ずらせば14.jpgを見ることはできるのですが編集することができません。 これも良くわからない現象ですが, ムービークリップ の大きさの限界より先に, 座標の限界に近いのではないかとも思います。 上に書いた 100万ピクセル のムービークリップの移動実験中に, ドラッグしようと思ってもできないポイントに来ました。 レイヤーのそのフレームを選択すると, 一応レイヤー上のものは全て選択できるので,矢印キーで動かすことは出来ましたけどね。 というわけで, ムービークリップの大きさの限界はよくわかりませんが, その前にその他の限界が来るようです。 それもかなりファジーな限界なので,明確な線がわかりません。 ========================================= また,#2の方の書かれている > もしそうならalbum_mcを2つに分けて作るか、 > attachMovieで動的に貼り付けるとか別の方法を考えてみてはどうでしょう。 もっともな意見だと思います。 私も(は),元からあまり大きなムービークリップは使わないので, 実は今まで限界に挑戦したことはあまりありません。挑戦しようとも思いませんでした。 14個とかそこらなら,, 1つのムービークリップに入れてしまうのではなく,バラバラのMCにして, 14個のムービークリップに例えば MC1~MC14 までのインスタンス名を付けて, 適当にステージ外の適当な場所に置いておき, _root のタイムライン,フレーム1 あたりのスクリプトで, ------------------------------- for (var i = 1; i<=14; i++) { _root["MC"+i]._x = 20+(i*50); _root["MC"+i]._y = 20; } ------------------------------- みたいなので整列させておいて, それら14個を動かすボタンには, ------------------------------- on (press) { this.onEnterFrame = function() { for (var i = 1; i<=14; i++) { _root["MC"+i]._x -= 10; } }; } on (release) { delete (this.onEnterFrame); } ------------------------------- のように書いて動かすのも1つの方法です。 ========================================= また,私が答えたものではありませんし, タイムラインを使った動きの場合の話ですが。 こちらも↓参考になるかもしれません。 作業範囲の拡大について http://oshiete1.goo.ne.jp/kotaeru.php3?q=1939207 ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1939207 上のURLを,タイムラインで言うと, 3枚を同時によういするのではなく, こんな風に↓すれば良いでしょうということですね。 □ レイヤー 筆・・|○ []|●>------>|●|○ □ レイヤー 筆・・|○ []|●>------>|●|○ □ レイヤー 筆・・|●>------>|●|○ ボタンのスクリプトで, タイムラインを先送りしたり後戻りさせると,スクロール動作も可能です。 などなど,色々考えていると, 限界に挑戦する必要もなくなります。 また#1で Flash 8 でステージ外作業領域が増やせるようになったと書きましたが, そのこと自体はそんなに重宝していないことも事実です。
その他の回答 (3)
#1&3です。 ??? #3で書いたのは「こんな方法もある」という単なる例です。 どう動かしたいのかがわかりませんので適当に例として書いただけです。 1つのMCを動かすスクリプトはできていると思ったので, 1つだけではなくて,for文 で MC1~MC14 までの14個を動かせば良いのではないかということの例です。 >> 12で処理がおわってそれ以上はスクロールしないはずなのに… この意味がわかりません…。 12で処理が終わるというのはどういうことでしょうか。 MC が 12個なのでしたら, for (var i = 1; i<=12; i++) になるだけのことで, その for文の中は _root["MC"+i]._x -= 10; なのですから,ここの部分においてスクロールさせる幅を決めているわけではありません。 _root["MC"+i]._x -= 10; で, MC が 12 個であっても 14個であっても,100個であっても,延々とスクロールはし続けます。 どの辺で止めたいとかそういうことはさっぱりわかりませんから,延々とスクロールさせるようにしてあるだけです。 というわけで, どう動かしたいのかもわかりませんし, MC1 つの幅もわかっていませんし, さっぱりわからない状態なので,回答できませんのです…。 元のご質問の内容とはかなりズレますし, 説明しにくいとは思いますが良かったら補足説明してください。 その補足説明で,わかれば回答できるかもしれません。
お礼
すっかりお礼が遅くなってしまってすみません。 うまく伝わらなかったようなので他で調べてみます。 丁寧にありがとうございました!!
- perse
- ベストアンサー率74% (113/152)
Flashで扱える縦横のサイズの限界は2880ピクセルのようです。多分。 ステージの高さ、幅を2880より大きく出来ませんし、 適当に描いた四角の高さ、幅を2880より大きくしようとしても警告がでて変更できません。 画像一つの幅が220くらいなら13個並べたくらいで2880になってしまいます。 もしそうならalbum_mcを2つに分けて作るか、attachMovieで動的に貼り付けるとか別の方法を考えてみてはどうでしょう。
お礼
回答ありがとうございます。 やはり作業領域に制限はあるのですね。 ちなみに私が制作しているデータの幅は1560pixでしたが既にダメでした。 attachMovieで貼付けたいと思います。
ステージ外作業領域 のことですね。 Flash 8 からは,自動で大きくなるようになりました。 「Macromedia - Flash Professional 8 機能」 http://www.adobe.com/jp/products/flash/flashpro/productinfo/features/ ---引用----- > ペーストボード (ステージ外作業領域) の自動拡張 > 作業中のプロジェクトが Flash のステージより > はるかに大きなグラフィックを必要とするような場合、 > あるいはオブジェクトをステージから遠く離れた場所に > 表示する場合でも、 > 充分な作業領域をとってレイアウト作業に取り組めます。 > ペーストボードの領域は、オブジェクトを画面の縁に配置 > するだけで、必要な分だけ自動的に拡張されます。 と言うようなことですね。 実際に何かをドラッグすると勝手にステージ外作業領域が増えます。 Flash 8 にアップグレードするというのが1つの解決方法でしょう。 Flash MX 2004 まででしたら, ステージ外作業領域 は増やせませんから, その複数あるオブジェクトをいったん縮小して, それら全体をグループ化(「修正(M)」→「グループ(G)」)して, また拡大して, あとは,ズルズルそのグループ化されたものを,引きずるとかが対処法でしょうか。
お礼
回答ありがとうございます。 3で書いていただいた内容でやってみます!
お礼
ありがとうございます!できました!! ただ、ボタンのスクリプトですが、12で処理がおわってそれ以上はスクロールしないはずなのにえんえんとスクロールが進んでいってしまいます。if文を追加して一定以上いったら処理をとめる指示をかいてみましたが同じでした。 どうしたらいいか教えていただけますか?? 何から何まですみません。