Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.11.2006, 15:25
Alexcid вне форума Посмотреть профиль Отправить личное сообщение для Alexcid Найти все сообщения от Alexcid
  № 2  
Ответить с цитированием
Alexcid
 
Аватар для Alexcid

Регистрация: Oct 2006
Сообщений: 7
По умолчанию Код

Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initCatalog()">
<mx:Metadata>
	[Event(name="categorySelect", type="com.oms.events.CatalogEvent")]
</mx:Metadata>
	<mx:Script>
    <![CDATA[
    	import com.oms.events.CatalogEvent;
    	import mx.events.*;
    	import flash.events.*;
	    import com.oms.services.*;
		import mx.rpc.events.ResultEvent;
		import mx.managers.CursorManager;
		import mx.controls.Alert;
	    
		[Bindable]
		[Embed(source="Assets.swf", symbol="TreeNodeIcon")]
		public var fileIcon:Class;
		 
		[Bindable]
		[Embed(source="Assets.swf", symbol="TreeFolderOpen")]
		public var folderIcon:Class;
		
		[Bindable]
		[@Embed('/assets/indicator.gif')]
		public var waitIcon:Class;

		private function selectIcon(item:Object):Class {
			if(item.@directory == 0) 
				return fileIcon;
			else if(item.@directory == 1) 
				return folderIcon;
			else if(item.@directory == 2) 
				return waitIcon;
			else return fileIcon;
		}

	    [Bindable]
		public var Catalogs:XML;
			    
	    [Bindable]
		private var ProductsByCategory:XML;
		
		private var CategoryId:int;
		
		private function initCatalog():void {
			new Catalog().getCatalog(onResult,0);
		}
		
		private function onResult(event:ResultEvent):void {
			Catalogs = XML(ResultEvent(event).result);
		    CursorManager.removeBusyCursor();
		}

		private function changeEvt(event:Event):void {
			if(event.currentTarget.selectedItem != null) {
			    dispatchEvent(new CatalogEvent(event.currentTarget.selectedItem.@id));
			}
		}

		private function itemOpenEvt(event:TreeEvent):void {
			CategoryId = event.item.@id;
			new Catalog().getCatalog(onResult2,CategoryId);
		}

		private function onResult2(event:ResultEvent):void {
			//Alert.show(Catalogs.category.(@id==CategoryId).@label);
			Catalogs.descendants("category").(@id==CategoryId).replace("*",
												<category id="-1" directory="2"/>);
			var new_nodes:XML = XML(ResultEvent(event).result);
			//var len:int = new_nodes.category.length();
			var i:int = 1;
			for each (var new_node:XML in new_nodes.category) {
				if(i==1) {
					Catalogs.descendants("category").(@id==CategoryId).replace("*",new_node);
					i++;		
					continue;										
				}
				Catalogs.descendants("category").(@id==CategoryId).appendChild(new_node);
			}
		    CursorManager.removeBusyCursor();
		    catTree.invalidateList();
		}
    ]]>
	</mx:Script>

	<mx:Tree id="catTree" 
		labelField="@label" 
		showRoot="false" 
		dataProvider="{Catalogs}" 
		iconFunction="selectIcon" 
		doubleClickEnabled="true" 
		width="100%" 
		height="100%" 
		dragEnabled="true"
		dragMoveEnabled="true"
		dropEnabled="true"
		itemOpen="itemOpenEvt(event);" 
		change="changeEvt(event);"
		doubleClick="catTree.expandItem(catTree.selectedItem, !catTree.isItemOpen(catTree.selectedItem), true)" 
		initialize="initCatalog()"/>
</mx:VBox>

Создать новую тему   Часовой пояс GMT +4, время: 16:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.