トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Loaderコンポーネントについて
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
lancer
Åê¹ÆNo.25961
投稿日時: 2006-6-8 10:07
半人前
居住地:
投稿: 33
使用環境:
Windows XP Professional SP2
Flash Professional 8
Re: Loaderコンポーネントについて
無事解決できてなによりです。
情報元は知っていたのですが、直リンするのはどうかなーと思ってやめておいていました。

MovieClipLoaderを使う手もありますが、コンポーネントの方が楽ですしね・・早く直ってほしいものです。
末永 慎一
Åê¹ÆNo.25949
投稿日時: 2006-6-7 15:13
新米
居住地:
投稿: 16
使用環境:
Win XP Pro
Flash MX2004
Re: Loaderコンポーネントについて
引用:

lancerさんは書きました:
ブラウザをIE以外にして試してください。
LoaderコンポーネントはIEでバグがあります。
scaleContentの調整がIEだと働かないというバグです。

Googleかなにかで調べてみて下さい。

とても有力な情報ありがとうございました。
http://iandeth.dyndns.org/mt/ian/archives/000600.html
の情報により、無事に解決しました。
多くの方からのアドバイスに感謝しています。ありがとうございました。
今後とも宜しくお願いいたします。


----------------
http://suenaga-world.com
末永 慎一

youich
Åê¹ÆNo.25947
投稿日時: 2006-6-7 13:23
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: Loaderコンポーネントについて
引用:

というスクリプトですが、調べていてわかってきたことは、Web上の画像を読み込みIEで観覧した場合、縮小されないことが多いです。開発PC上の画像を読み込みIEで観覧した場合は正しく縮小されます。
FlashPlayerで確認すると、Web上、開発PC上どちらの画像を読み込んでも縮小されます。
お忙しいとは思いますが、私のサンプルを確認していただき、何かお気づきながありましたらアドバイスしていただけますよう、宜しくお願いいたします。

私もMacなので不具合を確認できないのですが、lancerさんのおっしゃるように
IEがgetBytesTotalを正しく返さないということなら"complete"イベントの発生自体が
信用できないのでそれに依存してサイズを変更するのもうまくいかないかもしれませんね。
これはLoaderコンポーネントだけじゃなくExternalContentを利用するコンポーネントに全て共通しておこりうる不具合だと思いますが。。。

あとLoader->View->ExternalContentのソースをずーっと見て行ったら、
もしかしたらここがやばいんかなと思うような所もありますが、
こちらでは不具合が再現できないのでなんともいえませんですね。
例えばgetBytesTotalの不具合以外でもExternalConeten#checkLoadProgressにおいて
読み込みが終了という判断基準getBytesTotal() == getbytesLoaded()から
すぐ次のフレームで(Loaderコンポーネント)は_width,_heightを取得しようしているのも
いろんな環境の事を考えると大丈夫なんかなーとも思います。

末永さんはかなりスクリプトがお判りになっているようなのでLoaderコンポーネントじゃなくMovieClipLoaderを使われた方が使いやすいんじゃないかな。。


----------------
- yo

ひろゆき
Åê¹ÆNo.25945
投稿日時: 2006-6-7 12:15
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Loaderコンポーネントについて
引用:
lancerさんは書きました:
LoaderコンポーネントはIEでバグがあります。
scaleContentの調整がIEだと働かないというバグです。
とのことなので、

サンプル2

とりあえず、以下のスクリプトで試してみました。
function ImageLoad1(){
	mb_loader = _root.mc_w.createObject("Loader", "img1", 1);
	mb_loader._x =0;
	mb_loader._y = 0;
	mb_loader.autoLoad = false;
	mb_listener = new Object();
	mb_listener.complete = function(eventObj) {
		//eventObj.target.setSize(100,100);
		eventObj.target._width = 100;
		eventObj.target._height = 100;
		eventObj.target.visible = true;
	}
	mb_loader.addEventListener("complete", mb_listener);
	//mb_loader.scaleContent = true;
	mb_loader.visible = false;
	mb_loader.load("photo.jpg");
}
btn1.onRelease = ImageLoad1;



------
Fla4manさんが書かれている
引用:
とりあえずせっかくローダーコンポーネント使うんだから
ロード中は非表示にして
ロード終了してからサイズ変更するとかしてはどうでしょうか。
の手順ですね。


----------------
質問する際は、回答者に具体的な情報を与えてください。

末永 慎一
Åê¹ÆNo.25944
投稿日時: 2006-6-7 12:04
新米
居住地:
投稿: 16
使用環境:
Win XP Pro
Flash MX2004
Re: Loaderコンポーネントについて
引用:

ひろゆきさんは書きました:
まず、問題を切り分けるために、
サンプル」で、縮小されない現象が発生するのかどうかを確認してください。

サンプルまで作っていただき、ありがとうございました。
IE6で、こちらでも縮小の確認をしました。

私が作ったサンプルですが、Loadボタンにより、2つの600x400の画像を300x200に縮小して表示させるものです。
が、なぜかLoadボタンの最初のクリックでは縮小されず、2回目以降のクリックでは正しく縮小されるという現象がIE6で起きています。


function ImageLoad(){
	mb_loader = _root.mc_w1.createObject("Loader", "img1", 1);
	mb_loader._x  =0;
	mb_loader._y  = 0;
   mb_listener = new Object();
   mb_listener.complete = function(eventObj) {
	   eventObj.target.setSize(300,200);
	}
	mb_loader.addEventListener("complete", mb_listener); 
	mb_loader.scaleContent = true;
	mb_loader.load('test1.jpg');

	mb_loader = _root.mc_w2.createObject("Loader", "img2", 1);
	mb_loader._x  =0;
	mb_loader._y  = 0;
   mb_listener = new Object();
   mb_listener.complete = function(eventObj) {
	   eventObj.target.setSize(300,200);
	}
	mb_loader.addEventListener("complete", mb_listener); 
	mb_loader.scaleContent = true;
	mb_loader.load('test2.jpg');
}

というスクリプトですが、調べていてわかってきたことは、Web上の画像を読み込みIEで観覧した場合、縮小されないことが多いです。開発PC上の画像を読み込みIEで観覧した場合は正しく縮小されます。
FlashPlayerで確認すると、Web上、開発PC上どちらの画像を読み込んでも縮小されます。
お忙しいとは思いますが、私のサンプルを確認していただき、何かお気づきながありましたらアドバイスしていただけますよう、宜しくお願いいたします。


----------------
http://suenaga-world.com
末永 慎一

Fla4man
Åê¹ÆNo.25943
投稿日時: 2006-6-7 12:03
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: Loaderコンポーネントについて
特定環境で起こりうるいやーな現象があったとして
特にそれが自分の環境であったら
バグのうんぬんよりも回避方法に走った方がいいと思います。

ダイナミックテキストで日本語フォントを指定すると
WIndowsMEだと文字化けするバグに比べたら救いはあるし
getURLやloadvarsでIE6以降だとreferer送らないとかと比べると
敷居は低いと思います。

とりあえずせっかくローダーコンポーネント使うんだから
ロード中は非表示にして
ロード終了してからサイズ変更するとかしてはどうでしょうか。

この手法はPNGやGIFをイメージオブジェクトに収納するのにも使えるので
もしも無理に対応する必要の無いものであったとしても
実装しておいて損は無いと思います。


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

lancer
Åê¹ÆNo.25942
投稿日時: 2006-6-7 11:17
半人前
居住地:
投稿: 33
使用環境:
Windows XP Professional SP2
Flash Professional 8
Re: Loaderコンポーネントについて
ブラウザをIE以外にして試してください。
LoaderコンポーネントはIEでバグがあります。
scaleContentの調整がIEだと働かないというバグです。

Googleかなにかで調べてみて下さい。
ひろゆき
Åê¹ÆNo.25939
投稿日時: 2006-6-6 19:07
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Loaderコンポーネントについて
引用:
末永 慎一さんは書きました:
setSizeが正しく動く場合と、動かない場合があり、タイミングの問題だろうとは思うのですが、回避策がわかりません。ブラウザを閉じずに、同じ画像を再び表示させると、全て縮小表示されます。
IE側の設定なのでしょうか。

まず、問題を切り分けるために、
サンプル」で、縮小されない現象が発生するのかどうかを確認してください。

少なくとも、以下の環境では、同現象は発生しない模様です。
MacOSX 10.3.9
Safari 1.3.2 / IE 5.2.3 / Firefox 1.5.0.1
FlashPlayer8.0r24 / FlashPlayer7.0r24

もし、縮小されない現象が発生するのだとしたら、
その現象が確認されるブラウザがどのようなものか、
具体的にされるべきでしょう。

もし、縮小されない現象が発生しないのだとしたら、
他の要素を排除して、「サンプル」と同じような単純な構成で試したうえで、
どこに問題が潜んでいるのか、あるいは、どこに問題がないのか、
1ステップずつ確認すべきだと思われます。


----------------
質問する際は、回答者に具体的な情報を与えてください。

末永 慎一
Åê¹ÆNo.25934
投稿日時: 2006-6-6 11:58
新米
居住地:
投稿: 16
使用環境:
Win XP Pro
Flash MX2004
Re: Loaderコンポーネントについて
function ImageLoad1(){
mb_loader = _root.mc_w.createObject("Loader", "img1", 1);
mb_loader._x =0;
mb_loader._y = 0;
mb_listener = new Object();
mb_listener.complete = function(eventObj) {
eventObj.target.setSize(300,200);
}
mb_loader.addEventListener("complete", mb_listener);
mb_loader.scaleContent = true;
mb_loader.load('http://test.com/xxx.jpg');
}
としたら、以前よりは縮小される確立は上がりましたが、必ず縮小されるわけではなく、以前悩んでいます。
上のスクリプトはテスト的なもので、
function set_Loader(aTmpObj,aId,ax,ay,aw,ah,aImg,ascale){
var l_Name = new String();
l_Name = "loader_" + string(aId);
mb_loader = aTmpObj.createObject("Loader", l_Name, aId);
mb_loader._x = ax;
mb_loader._y = ay;
if( ascale == true ){
mb_listener = new Object();
mb_listener.complete = function(eventObj) {
eventObj.target.setSize(aw,ah);
}
mb_loader.addEventListener("complete", mb_listener);
}
mb_loader.scaleContent = ascale;
mb_loader.load(m_site_add + aImg);
}
という関数を作り、ループの中からこの関数を呼び出して、多くの画像を表示させたいと考えています。
setSizeが正しく動く場合と、動かない場合があり、タイミングの問題だろうとは思うのですが、回避策がわかりません。ブラウザを閉じずに、同じ画像を再び表示させると、全て縮小表示されます。
IE側の設定なのでしょうか。


----------------
http://suenaga-world.com
末永 慎一

ひろゆき
Åê¹ÆNo.25921
投稿日時: 2006-6-5 18:08
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: Loaderコンポーネントについて
function ImageLoad1(){
		(中略)
	//mb_loader.setSize(300,200);
	mb_listener = new Object();
	mb_listener.complete = function(eventObj) {
		eventObj.target.setSize(300,200);
	}
	mb_loader.addEventListener("complete", mb_listener);
	mb_loader.scaleContent = true;
	//mb_loader.contentPath = 'http://test.com/img/xxx.jpg';
	//mb_loader.load();
	mb_loader.load("http://test.com/img/xxx.jpg");
}
にしてみては?

#このフォーラム内のスクリプトをコピー&ペーストされるのであれば、
#各行の先頭にあるスペースを削除して、ご自分でタブキー入力してください。

アカウント編集」で、使用環境は書いておきましょう
プロフィール・使用環境記入のお願い


サンプル

とりあえず、以下のスクリプトで試してみました。
function ImageLoad1(){
	mb_loader = _root.mc_w.createObject("Loader", "img1", 1);
	mb_loader._x =0;
	mb_loader._y = 0;
	mb_loader.autoLoad = false;
	mb_listener = new Object();
	mb_listener.complete = function(eventObj) {
		eventObj.target.setSize(100,100);
	}
	mb_loader.addEventListener("complete", mb_listener);
	mb_loader.scaleContent = true;
	mb_loader.load("photo.jpg");
}
btn1.onRelease = ImageLoad1;


----------------
質問する際は、回答者に具体的な情報を与えてください。

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops