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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     DateFieldのセンタリング表示
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
taka1206
Åê¹ÆNo.28397
投稿日時: 2006-9-1 19:54
半人前
居住地:
投稿: 32
使用環境:
OS:Windows2000 SP4
FLASH 8 Pro
DateFieldのセンタリング表示
DateFieldをセンタリングして表示したいのですが、
パブリッシュしてswfを実行する(ムービープレビューではなく)と、
一旦、左詰表示された後、1テンポ置いてセンタリングされます。

DateFieldが 1 つであれば、
一瞬でセンタリングされるのであまり気にならないのですが、
5 つぐらい DateFieldを置いて、
swfを実行すると0.2秒程度センタリングされるまでにかかり、
少々気になります。

DateFieldの内容を初期表示からセンタリングすることは可能でしょうか?

1フレーム目のソースは以下の通りです。


test_df.setStyle( "textAlign", "center" );
test_df.dateFormatter = function(d:Date){
    return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
};
test_df.text = "2006/05/23" ;
 
test2_df.setStyle( "textAlign", "center" );
test2_df.dateFormatter = function(d:Date){
    return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
};
test2_df.text = "2006/05/24" ;
 
test3_df.setStyle( "textAlign", "center" );
test3_df.dateFormatter = function(d:Date){
    return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
};
test3_df.text = "2006/05/25" ;
 
test4_df.setStyle( "textAlign", "center" );
test4_df.dateFormatter = function(d:Date){
    return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
};
test4_df.text = "2006/05/26" ;
 
test5_df.setStyle( "textAlign", "center" );
test5_df.dateFormatter = function(d:Date){
    return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
};
test5_df.text = "2006/05/27" ;

ひろゆき
Åê¹ÆNo.28399
投稿日時: 2006-9-1 20:36
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: DateFieldのセンタリング表示
test_df を test1_df にしておいて、
import mx.controls.DateField;
import mx.styles.CSSStyleDeclaration;
_global.styles.DateField = new CSSStyleDeclaration();
_global.styles.DateField.setStyle("textAlign", "center");
//_global.styles.DateField.textAlign = "center";
//とすると若干軽くなる気も。

for(var n:Number = 1; n <= 5; n++) {
	var _df:DateField = this["test"+n+"_df"];
	_df.dateFormatter = function(d:Date){
		return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
	};
}
test1_df.text = "2006/05/23" ;
test2_df.text = "2006/05/24" ;
test3_df.text = "2006/05/25" ;
test4_df.text = "2006/05/26" ;
test5_df.text = "2006/05/27" ;
では、いかがですか?


UIコンポーネントのスタイル (1)
UIコンポーネントのスタイル (2)
も参考まで。

ただし、妙な挙動をすることもあるので、
UIコンポーネントでハマった (3)
UIコンポーネントでハマった (4)
UIコンポーネントでハマった (5)
もお読みください。


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

ひろゆき
Åê¹ÆNo.28402
投稿日時: 2006-9-2 0:22
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: DateFieldのセンタリング表示
_root に直接配置せず、ライブラリ内に DateField を入れておいて、
import mx.controls.DateField;

for(var n:Number = 1; n <= 5; n++) {
	var _df:DateField = this.createClassObject(DateField, "test"+n+"_df", n, {textAlign: "center"});
	_df.move(20, 20+(n-1)*50);
	_df.dateFormatter = function(d:Date){
		return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
	};
}
test1_df.text = "2006/05/23" ;
test2_df.text = "2006/05/24" ;
test3_df.text = "2006/05/25" ;
test4_df.text = "2006/05/26" ;
test5_df.text = "2006/05/27" ;
としても、いいかもしれません。


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

taka1206
Åê¹ÆNo.28468
投稿日時: 2006-9-4 17:25
半人前
居住地:
投稿: 32
使用環境:
OS:Windows2000 SP4
FLASH 8 Pro
Re: DateFieldのセンタリング表示
お返事が遅くなり申し訳ありません。

2回もご回答いただきましてありがとうございます。

両方とも試してみました。
2番目の方が断然早いですね。
1番目でも倍ぐらい早くなりました。

感激です!!!

載せていただいたURLも読ませていただきました。
画面表示性能について今回の部分以外でも、
興味がありましたので、非常にためになりました。

お気に入りにも登録したので、
今後もちょくちょく拝見させていただき学ばせていただきます。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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