FlashMXによる外部Jpegファイルの読込について

このQ&Aのポイント
  • FlashMXを使用して外部のJpegファイルを動的に読み込み表示する方法について詳しく教えてください。
  • 外部Jpegファイルを読み込む際に、画像のサイズが表示枠を超えて表示される問題についても解決策を教えてください。
  • もしloadMovieでは実現できない場合、他に代替の方法やアイデアがあればご教授いただけますか。
回答を見る
  • ベストアンサー

FlashMXによる外部Jpegファイルの読込について

 FlashMXを使用して外部のJpegファイルを動的に読み込み表示したいと考えています。    MCというmovieClipを_root直下に設置したとして、  さらにMCの中にMC2というmovieClipを設置しています。   _root.MC.MC2.loadMovie("aaa.jpg");  のようにaaa.jpgというファイルを読み込んだ場合、MC2が"aaa.jpg"と置き換えられるような形でロードされると思います。    その際に、画像ファイルのサイズが用意したmovieClipのサイズよりも大きい場合、枠をはみ出したような形で表示されてしまいます。    ロードされたJpegを、元の画像のサイズではなく伸縮して常にMCのサイズにフィットしたサイズに表示させたいのですが果たして可能でしょうか? (_root.MC._widthなどを使った間接的なサイズの変更をやってみましたが、レイアウトがどうもうまくいきませんでした。)    また、loadMovieによる読込では実現不可である場合、コンポーネントのスクロールペインなども検討しているのですが、他にも何かよい方法・アイデアなどがあればご教授ください。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • noias
  • ベストアンサー率82% (23/28)
回答No.2

どうも。 もしかしたら何処ぞやにloadする画像サイズをあらかじめ取得する方法があるのかもしれませんが、わたしは知らないので、画像を読み込んでからサイズを調整するようにしてみましたがどうでしょうか。 onClipEvent (data) {  tate = 300;//基本となるピクセルサイズを設定  yoko = 400;  filetate = this._height;  fileyoko = this._width;  if (tate<filetate || yoko<fileyoko) {  //読み込んだファイルのピクセルサイズが基本サイズの縦横のいずれかを上回っていたら   if (tate<yoko) {   //横長だったら    this._width = yoko;    this._yscale *= yoko/fileyoko;   } else {   //縦長だったら    this._height = tate;    this._xscale *= tate/filetate;   }  } } MC2のオブジェクトスクリプトとして、最初の2行の縦横のサイズだけ調整してください。 この方法が正しいかどうかはわかりませんが、取りあえず動きますよ。 さらなる良い回答と良い結果をお待ちします。

chupark
質問者

お礼

 回答ありがとうございます。  ご教授いただいた回答で実現できました。  目的もとりあえず達成できそうです。  読み込んだ画像へ、絶対ターゲットパスでアクセスすることばかりに気がいっていたので、ご指摘いただいたサンプルのように、自身から this で処理を実行する相対パスの発想が思いつきませんでした。  質問した甲斐がありました。  ありがとうございます。

その他の回答 (3)

  • noias
  • ベストアンサー率82% (23/28)
回答No.4

なんどもすいません。 #2です。 不完全なスクリプトでした。 2つ目のIFの条件は if(filetate<fileyoko){ です。 逆に迷惑をおかけしてすいません。

chupark
質問者

お礼

>逆に迷惑をおかけしてすいません。  とんでもないです。  大変感謝しております。    私が実現したかったのは、質問文に書かせていただいた例でいうと、MCのフレーム内いっぱいに画像を読み込むことでしたので、if文の判定は必要なく、 onClipEvent(data){ this._width = 300; this._height = 300; } というような単純なスクリプトでもいけるように感じております。  つまり、どのようなサイズの画像がロードされても300*300 のようにMCのサイズへ伸縮されればよいのですから。

  • noias
  • ベストアンサー率82% (23/28)
回答No.3

#2です。 よく考えたら、画像が小さい時に大きくすることをわすれていました。 下記のように画像サイズが既定値以下だったら実行こうするようにします。 最初の行に追加 yokomin=100;//既定値を設定 tatemin=100; 最初の条件を書き換え if(tate<filetate || yoko<fileyoko ||tatemin>filetate || yokomin>fileyoko){

  • noias
  • ベストアンサー率82% (23/28)
回答No.1

MC2にマスクをかけるというのはどうでしょう。

chupark
質問者

お礼

noiasさん回答ありがとうございます。 Flash関連の質問に多数の好回答をなさっているのを拝見し、私の質問にも回答くださるではと期待しておりました^^ ご指摘のとおり、MC2にマスクをかけるというのも一案だと思うのですが、今回はできれば画像の全容を伸縮で表示させたいと考えておりまして…。 やはり読み込んだ画像を伸縮するというよりは使用する画像ファイルのサイズをあらかじめMCとあわせておくしかないのでしょうか?

関連するQ&A

  • FLASH外部ファイルの読み込み

    Flashでjpegファイルの読み込みをしたいのですが、 アクションスクリプトで onClipEvent(load){ _root.hyouji_mc.loadMovie("face1.jpg"); } とインスタンスに記入するとなにも表示されません。 【hyouji_mc】を青色にして実行するとスクリプトのない状態ですと青の四角が表示されるのですが、スクリプトを実行すると真っ白になり、やはり画像が表示されません。 試しに【load】をe【nterFrame】に変えてもだめでした。 【mouseDown】や【mouseMove】,【keyDown】にすると画像は表示されます。 【onClipEvent】を【on(rease)】等に変更をしても表示されます。 (1)どうにかフレームが読み込まれた時に画像が表示される様にしたいのですが、解決策としてはフレームアクションとして記述するしかないのでしょうか? (2)【onClipEvent(load,enterFrame)】で   【loadMove()】は実行できないのでしょうか? フラッシュはMXを使っています.OSは2000です。 意味がわかりにくいと思いますが、ご教授ください. よろしくお願いします。

  • 外部画像の読み込みについて

    現在、Flash MX(ActionScriptのバージョンは確認方法がわかりませんでした・・・)を使用して ムービーが読み込まれた際に画像ファイルを埋め込む、といったプログラムを行っています。 ステージにimgというインスタント名のムービークリップを設置し、1フレーム目に img.loadMovie("./img/01.jpg"); というActionをプログラムしているのですが、環境によってうまく動作しません。 環境によっては、というのは、PC上ではうまく動作するのですが、携帯からアクセスするとうまく動作してくれません。 携帯でアクセスした場合にうまく動作してほしいので、困っています。 色々試してみたところ、ムービークリップに下記のようなアクションスクリプトを導入したところ、動作しました。 on(KeyPress "1"){ _root.img.loadMovie("./img/01.jpg"); } ただし、ステージ上にインスタント名img2のムービークリップを追加で設置し、下記のようになスクリプトを導入してみたところ imgのみ正常に画像が表示され、img2には何も表示されませんでした。 on(KeyPress "1"){ _root.img.loadMovie("./img/01.jpg"); _root.img2.loadMovie("./img/02.jpg"); } PCで動作確認を行う場合、いずれも正常に動くので対処法がよくわかりません。 最終的には、n個の画像をムービーがロードされたときに自動配置するようにしたいのですが このような場合、どのようにプログラムしていけばよいのでしょうか。 また、あらかじめ画像を読み込むだけ読み込み必要なときにのみ表示する、といったことは可能でしょうか? 解決策をご教授いただければ幸いです。よろしくお願いいたします。

  • 外部ファイルの画像読み込みについて

    環境 WinXP Flash8 同じボタンをいくつも配置したいのと、汎用性を持たしたいのでボタンを ASで配置したいと思いますが、ASをほとんど扱ったことがないのでわかりません。 ■やりたいこと ・ボタン1~10をステージ上に配置 ・画像(pcs1.jpg~pcs10.jpg)をそれぞれに読み込みたい。 ・画像がない場合はボタンも表示させない ・それぞれのボタンを押すとphoto_mcに画像(photo1.jpg~photo10.jpg)が読み込まれる ■現状 WEBで見つけたソースを色々といじってみた。画像は配置できたのですが ボタンのアクションが全て同じ(10番目)になってしまいます。 画像がないときの処理もわかりません。 AS:フレーム1 for (var i = 1; i<10; i++) {  _root.createEmptyMovieClip("mc"+i, i);  var load_mc = _root["mc"+i];  load_mc.createEmptyMovieClip("my_mc", 0);  var jpg_pcs = "pcs"+i+".jpg"; load_mc.my_mc.loadMovie(jpg_pcs); i = i-1; load_mc._x = i*20; i = i+1; load_mc.onPress = function() { var photo = "photo"+i+".jpg"; photo_mc.loadMovie(photo); }; } これってボタンじゃなくてmcを配置してclickイベントになってますよね? ボタンを生成したかったのですがわからなくて・・・ 根本的なことが分かっていなくてソースをいじってますがアドバイスお願い致します。 今のソースは全く無視していただいて結構です。

    • ベストアンサー
    • Flash
  • 外部jpeg読込み

    外部jpegを読込用 ムービークリップ"img"に対して外部jpegを読み込もうとしています。 ムービークリップに直接loadMovie(Path)として画像を読み込んで、そのムービークリップのアクションで onClipEvent (load) { this._width = 100; this._height = 50; } とサイズを指定しています。 このサイズを指定しているアクションを_rootステージのアクションスクリプトレイヤーに置き換え直接書きたいのですが方法はないのでしょうか? ご教授ください。

    • ベストアンサー
    • Flash
  • フラッシュMXでJPEGファイルを表示できたのですが・・・質問があります。

    フラッシュMXでJPEGファイルを表示できるようできたのですが、1つだけ上手くいかない所があります。 ファイルを表示する際にある一定間隔でまた違うJPEGを表示させるようにしています。その繰返しを行いまた最初のJPEGを表示させるようにしてるのですが、2回目以降に表示する際にはJPEGファイルが表示されません。 なぜでしょうか? ▼JPEGファイルを読む際のスクリプト onClipEvent(load){ _root.JPEG.loadMovie("http://test.co.jp/image2/dat1/news_91_439_1.jpg"); }

  • 外部jpgを表示できません。

    勉強はしているものの、なかなか理解に苦しんでいる初心者です。 左右にスクロールする mc(picg)の中に外部jpgの小さい画像を表示するための mc(pics0~pics9) があり、 この(pics0~pics9)のmcを押すと、別に設置したmc(screen)に外部jpgの大きな画像が表示されるというのを作っています。 大きい外部jpgの表示はなんとかできたのですが、(pics0~pics9)に小さい画像を表示することができません。 どなたかご教授の程よろしくおねがいいたします。 例 pics0 の script です。 onClipEvent(enterFrame){ loadMovie("pics0.jpg","_root.picg.pics0"); } on (release) { loadMovie("picl0.jpg", "_root.screen");  } on (rollOver) { _parent.fScroll = false; } on (rollOut) { _parent.fScroll = true; }

    • ベストアンサー
    • Flash
  • for文での外部画像ファイルの読み込み

    ステージ上に配置している複数のMCに それぞれ外部画像を読み込もうとしています。 読み込むMCはtb1,tb2,tb3、、というインスタンス名に していますので、それぞれ tb1.loadMovie("1.jpg"); tb2.loadMovie("2.jpg"); tb3.loadMovie("3.jpg"); . . なら表示されるのですが、 MCが20個あるなら for(i=1;i<=20;i++){ var TB:String = "tb" + i; TB.loadMovie(i+".jpg"); } というように簡単な文で書きたいのですが、 上記のfor文ですとうまくいきません。 for文以外でもよい方法があれば、 よろしければ教えていただけますか。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部swfファイルの読み込みについて

    外部ファイルの読み込みができません。 _root  →content(MC)   →top(MC) といった具合にメインフレームにcontent(MC)、content(MC)の中にtop(MC)を設置しています。 次に、top(MC)の中にload_mc(MC)・load_mc2(MC)を置いていて、それぞれにinfo_img.swf・info_img2.swfを読み込ませたいのですが上手く行きません・・・どのような方法でロードすれば良いのでしょうか? 上手く説明できてないかもしれませんが、誰か教えてください。お願いいたします。

    • ベストアンサー
    • Flash
  • 外部ファイルの読み込みで

    初心者ですがよろしくお願いいします。 外部ファイルの読み込みでLoadMovie("~.jpg")を使用しているのですが 例えばA.jpgを読み込もうとしたけれど A.jpgが見つからなかった場合の処理を設定するには どのような方法があるのでしょうか?

  • 外部ファイルの先読み

    メインのページにランダムで画像が変わるよう rnd = Math.floor(Math.random()*10)+1; _root.photo.loadMovie("photo"+rnd+".jpg"); とスクリプトを入れました。 ローカルだともちろん問題ないのですが、サーバーにアップして確認してみると、表示するときになって読み込むものですからちょっと遅れて表示されてしまいます。 これを回避するために先読みする方法がありましたら教えていただけますでしょうか? ちなみに始めにロード画面が表示されるのですが、その完了と一緒に外部ファイルの画像も読み込みが終わるようにしたいと思っています。 よろしくお願いします。 FLASH MX/WINDOWS XP

    • ベストアンサー
    • Flash