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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.05.2008, 15:23
Stop Black PR! вне форума Посмотреть профиль Отправить личное сообщение для Stop Black PR! Посетить домашнюю страницу Stop Black PR! Найти все сообщения от Stop Black PR!
  № 1  
Ответить с цитированием
Stop Black PR!
 
Аватар для Stop Black PR!

Регистрация: Aug 2003
Адрес: Moscow
Сообщений: 113
Отправить сообщение для Stop Black PR! с помощью ICQ
По умолчанию проблема с Yahoo ASTRA Tree

Скачал и установил компонент:
http://developer.yahoo.com/flash/astra-flash/tree/

обнаружил неприятную особенность: в примере, в корне можно увидеть несколько подкатегорий-контейнеров:

+ Work documents
+ Personal docs
+ Photos

если в корне создать больше одного потомка-неконтейнера (т.е. листья дерева), то компонент выдает рантайм ошибки и не запускается

проблема лечится если все это содержимое засунуть в один контейнер, например "Menu" и поместить его в корень
но это кривое решение, хотелось бы нормальное

Старый 23.05.2008, 20:18
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно разобрать xml и листья вставить вручную, через Tree.addItem()

Старый 24.05.2008, 03:58
Stop Black PR! вне форума Посмотреть профиль Отправить личное сообщение для Stop Black PR! Посетить домашнюю страницу Stop Black PR! Найти все сообщения от Stop Black PR!
  № 3  
Ответить с цитированием
Stop Black PR!
 
Аватар для Stop Black PR!

Регистрация: Aug 2003
Адрес: Moscow
Сообщений: 113
Отправить сообщение для Stop Black PR! с помощью ICQ
XML наверное нет смысла руками ковырять, косяк не в нем, а в самом дереве

там ещё есть

addChildNodeAt(childNode:TNode, index:int):void
у класса RootNode,

но не очень понятно как это использовать
никаких нормальных примеров не прилагается в документации, кроме совсем очевидных

вам приходилось эту штуку использовать?

Старый 24.05.2008, 21:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>XML наверное нет смысла руками ковырять, косяк не в нем, а в самом дереве
дело хозяйское..
в этой ситуации похоже тока два выхода:
-формировать дерево 'вручную': не вижу особых проблем создать дерево в цикле, addItem() нормально съедает листья, проверил
-править яховские (и скорее всего и адобовские классы: астровские компонеты наследуются от CS3-шного набора), я бы не стал этого делать, даже если поборешь баг у себя, нигде больше твой код работать не будет

Старый 25.05.2008, 01:16
Stop Black PR! вне форума Посмотреть профиль Отправить личное сообщение для Stop Black PR! Посетить домашнюю страницу Stop Black PR! Найти все сообщения от Stop Black PR!
  № 5  
Ответить с цитированием
Stop Black PR!
 
Аватар для Stop Black PR!

Регистрация: Aug 2003
Адрес: Moscow
Сообщений: 113
Отправить сообщение для Stop Black PR! с помощью ICQ
ок, понял

т.е. надо вместо того, чтобы задавать XML и пихать его как датапровайдер использовать добавление листьев напрямую. НО у Tree нет метода addItem

http://developer.yahoo.com/flash/ast...lassreference/
ну и в классе Tree пошарился, нет таких методов

можете привести кусок кода с addItem, если это не сильно сложно?

Старый 25.05.2008, 03:30
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
как вариант: валидную структуру скармливаем через new TreeDataProvider
а одиночные листья добавляем "вручную", раз так не хочет..
(компонент д.б. в библиотеке)
Код:
import com.yahoo.astra.fl.controls.treeClasses.*;
import com.yahoo.astra.fl.controls.*;
var mytree:Tree=new Tree();
addChild(mytree);

var dataXML:XML = 
<node>
	<node label="node1">
		<node label="leaf1"/>
		<node label="leaf2"/>
	</node>
</node>;
mytree.dataProvider = new TreeDataProvider(dataXML);


mytree.addItem({label:"aloneLeaf1"});
mytree.addItemAt({label:"aloneLeaf12"},0);
ps насчет "нет таких методов": Tree наследуется от List, а в нем все это есть..


Последний раз редактировалось silin; 25.05.2008 в 03:33.
Старый 03.10.2008, 08:09
Stop Black PR! вне форума Посмотреть профиль Отправить личное сообщение для Stop Black PR! Посетить домашнюю страницу Stop Black PR! Найти все сообщения от Stop Black PR!
  № 7  
Ответить с цитированием
Stop Black PR!
 
Аватар для Stop Black PR!

Регистрация: Aug 2003
Адрес: Moscow
Сообщений: 113
Отправить сообщение для Stop Black PR! с помощью ICQ
в прошлый раз удалось избежать проблем, закинув все листы из корня в один контейнер «Menu»

а сейчас надо добавлять листы на лету
и я с какой то мистикой столкнулся:

делаю mytree.addItem({label:"aloneLeaf1"});
пишет что не могу преобразовать тип Object к типу TNode

хотя в доке написано, что там Object и на самом деле лист добавляется в конец списка, в корень

пытаясь избежать ошибки пишу тот тип, который требует дебагер:
Код:
var dataXML2:XML=<node>
			<node label="Съешь ещё этих мягких французских булок">
				<node label="Да выпей чаю">
					<node label="Спасибо за квалифицированную помощь"/>
				</node>
			</node>
						
			</node>;
var pDP:TreeDataProvider=new TreeDataProvider(dataXML2);
			var item:TNode=TNode(pDP);
			mytree.addItem(item);
при выполнении кода выплывает:
cannot convert com.yahoo.astra.fl.controls.treeClasses::TreeDataProvider@1228d101 to com.yahoo.astra.fl.controls.treeClasses.TNode.

это он на строку
Код:
var pDP:TreeDataProvider=new TreeDataProvider(dataXML2);
ругается

бред какой то

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

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

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


 


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


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