ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     Treeのアイコンを動的に変更したい
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
o2mk
投稿日時: 2009-1-26 9:30
やや 常連さん
登録日: 2008-4-24
居住地:
投稿: 21
Re: Treeのアイコンを動的に変更したい
o2mkです。
自己解決したので一応やり方を書いておきます。



	import flash.display.DisplayObject;
	
	import mx.collections.*;
	import mx.controls.Image;
	import mx.controls.treeClasses.*;
 
	public class TreeItemRendererEx extends TreeItemRenderer {
		private var img:Image = new Image();
 
		public function TreeItemRendererEx() {
			super();
			this.addChild(this.img as DisplayObject);
		}
 
		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
			super.updateDisplayList(unscaledWidth, unscaledHeight);
 
			if(data!=null) {
				this.label.x += 5;
				this.img.x = this.getChildAt(3).x;
				this.img.y = this.getChildAt(3).y - 5;
				this.img.width = 24;
				this.img.height = 24;
 
				this.img.source = data.iconPath;
 
				this.getChildAt(3).visible = false;
			}
		}
	}


アイコンと同じ位置にImageを表示しているだけです。
iconPathに表示したい画像のパスを入れておけば、アイコン部分に表示されます。

もともとは海外のブログでやり方を見つけました。

以上、お粗末。
o2mk
投稿日時: 2009-1-6 13:45
やや 常連さん
登録日: 2008-4-24
居住地:
投稿: 21
Treeのアイコンを動的に変更したい
o2mkです。
お世話になっております。

現在treeコンポーネントのitemアイコンを動的に変更したくて四苦八苦してるのですが、うまく行きません。
やり方をご存じの方が居られましたらご教授願いませんでしょうか?

やりたい事は以下の通りです。
・treeのitemアイコンに、ユーザーが好きな画像を表示する機能を実現したい。
・アイコン画像はサーバーから「http://xxx/img/4」のように取得する(4はimageId)
・ユーザーがアイコンを設定していない部分はデフォルトアイコンを表示する。
・ユーザーが設定するアイコンには開閉状態の区別は無い。
 (開閉しても同じアイコンでOK)


私が調べた範囲では、treeのアイコンを設定する方法はまず、以下の4通りがあります。
・folderOpenIcon、folderClosedIcon、および defaultLeafIcon の各プロパティ
・データプロバイダのノードアイコンのフィールド
・setItemItcon() メソッド
・iconFunction プロパティ
しかし、これらは全て、アセットクラスの埋め込み(Embed(source=…)を利用して埋め込んだ画像を利用しており、動的に(swfロード後に)その画像を変更する方法が分かりませんでした。

次に、itemRendererを利用する方法があります。
完全オリジナルのitemRendererを開発して頑張ればやりたい事が出来そうでしたが、Treeの機能をそのまま残しつつ、アイコンのみ変えたいので、できればこれは避けたいと思いました。
TreeItemRendererを拡張する方法に挑戦してみましたが、どうやってsuper.iconに画像をセットすれば良いかが分かりませんでした…。

理想的には、アイコン部分にImageコンポーネントを埋め込みたいと思っています。

やり方をご存じの方が居られましたらご教授下さいますよう願いいたします。
それともtreeは基本的には動的なアイコン変更はできないものなのでしょうか…。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を