- ベストアンサー
FlashMXによる外部Jpegファイルの読込について
- FlashMXを使用して外部のJpegファイルを動的に読み込み表示する方法について詳しく教えてください。
- 外部Jpegファイルを読み込む際に、画像のサイズが表示枠を超えて表示される問題についても解決策を教えてください。
- もしloadMovieでは実現できない場合、他に代替の方法やアイデアがあればご教授いただけますか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
どうも。 もしかしたら何処ぞやに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行の縦横のサイズだけ調整してください。 この方法が正しいかどうかはわかりませんが、取りあえず動きますよ。 さらなる良い回答と良い結果をお待ちします。
その他の回答 (3)
- noias
- ベストアンサー率82% (23/28)
なんどもすいません。 #2です。 不完全なスクリプトでした。 2つ目のIFの条件は if(filetate<fileyoko){ です。 逆に迷惑をおかけしてすいません。
お礼
>逆に迷惑をおかけしてすいません。 とんでもないです。 大変感謝しております。 私が実現したかったのは、質問文に書かせていただいた例でいうと、MCのフレーム内いっぱいに画像を読み込むことでしたので、if文の判定は必要なく、 onClipEvent(data){ this._width = 300; this._height = 300; } というような単純なスクリプトでもいけるように感じております。 つまり、どのようなサイズの画像がロードされても300*300 のようにMCのサイズへ伸縮されればよいのですから。
- noias
- ベストアンサー率82% (23/28)
#2です。 よく考えたら、画像が小さい時に大きくすることをわすれていました。 下記のように画像サイズが既定値以下だったら実行こうするようにします。 最初の行に追加 yokomin=100;//既定値を設定 tatemin=100; 最初の条件を書き換え if(tate<filetate || yoko<fileyoko ||tatemin>filetate || yokomin>fileyoko){
- noias
- ベストアンサー率82% (23/28)
MC2にマスクをかけるというのはどうでしょう。
お礼
noiasさん回答ありがとうございます。 Flash関連の質問に多数の好回答をなさっているのを拝見し、私の質問にも回答くださるではと期待しておりました^^ ご指摘のとおり、MC2にマスクをかけるというのも一案だと思うのですが、今回はできれば画像の全容を伸縮で表示させたいと考えておりまして…。 やはり読み込んだ画像を伸縮するというよりは使用する画像ファイルのサイズをあらかじめMCとあわせておくしかないのでしょうか?
お礼
回答ありがとうございます。 ご教授いただいた回答で実現できました。 目的もとりあえず達成できそうです。 読み込んだ画像へ、絶対ターゲットパスでアクセスすることばかりに気がいっていたので、ご指摘いただいたサンプルのように、自身から this で処理を実行する相対パスの発想が思いつきませんでした。 質問した甲斐がありました。 ありがとうございます。