メイン ActionScript 3.0 特設会議室 MCをloadMovieした際のwidthやheightに関して | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
etking | Åê¹ÆNo.45158 投稿日時: 2010-6-8 18:14 |
新米 居住地: 投稿: 17
使用環境:
XP,CS3,actionscript3.0 |
MCをloadMovieした際のwidthやheightに関して 皆様よろしく御願いします。
actionscriptを用いて複数のMCを作成しています。 MCの指定は文字列で行っています。 以下のように var Arr:Array var str:String = "test"; str = Arr[0]; Arr[1] = "***.jpg" _root.createEmptyMovieClip(inputArr[0],1); _root[str].loadMovie(inputArr[1]); _root[str]._y = 100; _root[str]._x = 300; このように記述した場合、画像が表示され、 x軸,y軸が移動するのですが、 _root[str]._height = 100; や _root[str]._width = 100; のように画像の横幅・縦幅は変えることができません trace(_root[str]._width); トレースを行っても値は、0になっています。 これはなぜなのでしょうか? MCの指定を文字ではなく配列にできればいいのですが;; よろしければ、ご指導の方よろしく御願いします。 |
野中文雄 | Åê¹ÆNo.45159 投稿日時: 2010-6-8 19:06 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MCをloadMovieした際のwidthやheightに関して 画像を読込む前の「空の」MovieClipインスタンスの幅や高さは0だからです。→「MovieClip.loadMovieで外部ファイルを読込む」
ちなみに、「MCの指定」は必ず「文字」です。引用されたスクリプトでも「文字」を使われています。ただ、その「文字」を「配列」から取出したにすぎません。つまり、「配列」云々は、今回の課題には直接関係がありません。 引用: etkingさんは書きました: |
etking | Åê¹ÆNo.45164 投稿日時: 2010-6-9 17:14 |
新米 居住地: 投稿: 17
使用環境:
XP,CS3,actionscript3.0 |
Re: MCをloadMovieした際のwidthやheightに関して ご返答ありがとうございます。
ロードの時間を考慮していないということなのですね;; よってx軸、y軸を移動させた後以下のような 処理を付加しました。 _root[str].onClipEvent(data) { if (this.getBytesTotal()>0 && this.getBytesLoaded()>=this.getBytesTotal()){ trace(_root[str]._width); } これを記述しました所演算子の後にはフィールド名が必要です とのエラーが表示されました。 onClipEventの所なのですが、どのように記述していいのか わかりませんでした。 申し訳ないのですがご指導御願いします 引用:
|
ひろゆき | Åê¹ÆNo.45165 投稿日時: 2010-6-9 18:52 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: MCをloadMovieした際のwidthやheightに関して まず、使用環境を「アカウント編集」で記載しておきましょう。
#その他に記入すれば、プロフィールに表示されます。 次に、ここは、「ActionScript 3.0 特設会議室」です。 適切なフォーラムに投稿するようにしましょう。 onClipEventハンドラは、ステージ上に配置されたムービークリップに、 ムービークリップ・アクションとして記述するスクリプトです。 したがって、ムービークリップを動的に生成している場合には、使えません。 FlashPlayer7以降の書き出しにしているのであれば、 MovieClipLoaderクラスを使うことをお勧めします。 「MovieClipLoaderクラスについて」 また、断片的なスクリプトを掲載されても、 何をなさろうとしているのか、不明確です。 できれば、端折らず必要最低限のスクリプトを 提示なさった方が良いように思います。
|
野中文雄 | Åê¹ÆNo.45167 投稿日時: 2010-6-10 1:06 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MCをloadMovieした際のwidthやheightに関して 第1に、勝手に文法をつくらないことです。
参考: Flash ActionScript Helper「イベントとイベントハンドラ」「システムイベント(内部イベント)」 引用: etkingさんは書きました: おそらくこの書き方から「推測」すると、「複数のMC」をロードしようとされているのではないでしょうか。だとすると第2に、一度にすべてをやろうとすることに無理があります。ご紹介したノートには、サンプルムービーもアップロードされていたはずです。「どのように記述していいのか」お尋ねになる前に、サンプルと同じような簡単なムービーをつくってご覧になりましたか? そして、第3にドキュメントはきちんとお読みになるべきでしょう。上記ノートにはつぎのように書かれていたはずです(原文にはリンクも設定してありますので、お確かめください)。 引用: さらに、複数の外部ファイルをMovieClip.loadMovie()メソッドで、同時に読込むべきではありません。サーバーが同時に読込めるファイル数には制限があり、仮にその制限内あってもタイムアウトの発生などロードを妨げる要因が発生しやすくなります。外部ファイルのロードはひとつずつ、その完了を確認したうえで行っていくスクリプティングが必要とされます。Flash Player 7以降を対象とする場合には、MovieClipLoaderクラスを利用するのが簡単でしょう。 とはいえ、では「MovieClipLoaderクラス」を使いさえすればいいのだろうと、またノートを斜め読みして、スクリプトをつぎはぎしたのでは、同じような結末になることが十分に予測されます。まずは、ひとつひとつ着実に理解して試されることを強くお勧めします。→【問題を単純化(シンプルに)しない】 |
etking | Åê¹ÆNo.45172 投稿日時: 2010-6-10 14:30 |
新米 居住地: 投稿: 17
使用環境:
XP,CS3,actionscript3.0 |
Re: MCをloadMovieした際のwidthやheightに関して 野中さん、ひろゆきさんご忠告有難うございました。
もう少し、順々と整理し、理解を深めてゆきたいと思います。 今回作成しているものなのですが、 数多くある画像から、phpを用いて4枚の画像に選定し、 その4枚の画像をFlushでアクションをつけてブラウザに表示 する。というようなものを作成しております。 現在phpと並行して作業しており、phpからFlashに受け渡す際に、 4つの画像の名前を1つの文字列としてFlash側に渡しています。 Flashではsplitを用いて、【,】で区切り、画像名を配列に格納し、 MCを動的に作成し、抽出された4枚の画像にアクションをつけて 表示する。といったFlashとphpプログラムをブラウザで同時に 実行しようといったものです。 多々ある中の画像から4枚の画像を表示しなければならないので、 動的にMCを作成するしか方法がないと考えてしまい、また 配列として画像名を取得することができたので、 繰り返しにより画像表示のMCを4つ作成できないかと 考えておりました。そこで今回急いで作らなければならないと 考えて、焦ってしまい、MCのloadMovieの所というか イベント処理の仕様を理解しておらず、躓いてしまいました。 多々ご迷惑をおかけし、すみませんでした。 効率の良い案や、方法についてご教授いただけたら幸いです。 |
野中文雄 | Åê¹ÆNo.45173 投稿日時: 2010-6-10 15:08 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MCをloadMovieした際のwidthやheightに関して 以下の最終的におやりになりたいことは、「お手玉10個」のお話しです。まず2?3個から始めなければ、無理でしょう。→【問題を単純化(シンプルに)しない】
引用: etkingさんは書きました: ステップとしては後の課題になりますが、「4枚の画像」に数が決まっているのでしたら「動的にMCを作成する」必要はなく、予め空のMovieClipインスタンスを4つ置いてもできます。 引用: 多々ある中の画像から4枚の画像を表示しなければならないので、 「迷惑」ということではなく、「急いで作らなければならない」というお気持ちとは裏腹に、お互いに無為な時間が過ぎてしまうというだけです。 まずは、ひとつの画像とMovieClipインスタンスで、ロードとサイズの変更を成功させることです。使うのはMovieClip.loadMovie()メソッドでも、MovieClipLoaderクラスでも構いません。そのムービーを出発点にして、段階を進めていきます。それがもっとも「効率の良い」課題への取組み方です。 引用: 多々ご迷惑をおかけし、すみませんでした。 |
etking | Åê¹ÆNo.45174 投稿日時: 2010-6-10 17:00 |
新米 居住地: 投稿: 17
使用環境:
XP,CS3,actionscript3.0 |
Re: MCをloadMovieした際のwidthやheightに関して ご返答ありがとうございます。
<<まずは、ひとつの画像とMovieClipインスタンスで、ロードとサイ<<ズの変更を成功させることです。使うのはMovieClip.loadMovie()<<メソッドでも、MovieClipLoaderクラスでも構いません。 <<そのムービーを出発点にして、段階を進めていきます。 <<それがもっとも「効率の良い」課題への取組み方です。 説明が足りなさすぎました。申し訳ありません。 前々から単一ですと、ロードとサイズの変更はできていました。 this.createEmptyMovieClip("load_mc",1); this.load_mc.createEmptyMovieClip("jpg1",3); this.load_mc.jpg1.loadMovie("1.jpg"); this.load_mc.onEnterFrame = function() { if ( this.jpg1._width != 0 ) { this.jpg1._width = this.jpg1._height = 200; } これでサイズは変わっていました。しかし、文字列でMCを指定しなければならない場合に上記の方法でやってしまうと、私の理解力ではどうしても指定ができなかったのです。 具体的には、load_mcを作成し、jpg1の指定を配列(中身は文字列)にする場合に、 this.load_mc._root[str].loadMovieのように考えてしまい 上手く指定できませんでした。 この方法では無理なのでしょうか? |
野中文雄 | Åê¹ÆNo.45175 投稿日時: 2010-6-10 20:44 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MCをloadMovieした際のwidthやheightに関して 「単一ですと、ロードとサイズの変更はでき」たということで、そのスクリプトも示していただきましたので、これでようやく話が進められます。しかし、まだ「配列」の話には入れません。また、初めに申し上げたとおり、すでに「文字列でMCを指定」されています。
問題は、その文字列を「変数」で指定するということでしょう。そして、積み木を高く積むときと同じで、はじめの一歩がきちんと積まれていなければ、その上の積み木をいくら小手先で組替えてもすぐに崩れてしまいます。 その意味では、掲載されたスクリプトは「赤点」は免れるものの、「合格点」には至りません。まずは、以下の修正の意味をよくご検討ください。 引用: 説明が足りなさすぎました。申し訳ありません。 |
etking | Åê¹ÆNo.45176 投稿日時: 2010-6-10 21:24 |
新米 居住地: 投稿: 17
使用環境:
XP,CS3,actionscript3.0 |
Re: MCをloadMovieした際のwidthやheightに関して 野中さんご丁寧にありがとうございます。
<< var _mc:MovieClip = のところで、文字列を使わずに _mcで指定できるようになるので _rootから_mcを指定できるように なったということでしょうか? また勘違いをしているのかもしれません |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |