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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.02.2009, 16:54
kia007 вне форума Посмотреть профиль Отправить личное сообщение для kia007 Найти все сообщения от kia007
  № 1  
Ответить с цитированием
kia007

Регистрация: Oct 2007
Сообщений: 78
Cool object или dictionary? И размер спрайта(только видимых элементов)

Приветствую! поздравляю всех с днем свято... с ПЯТНИЦЕЙ!
Подскажите что предпочтительнее использовать в качестве ассоциативного массива? Что быстрее object или dictionary?
Насколько знаю object быстрее, тогда зачем Dictionary нужен?

И чтоб отдельную тему не создавать, как узнать размер спрайта учитывая только видимые чаилды. Т.е. у меня в спрайте элементы которые невидимы + какая то их часть скрыта маской, но размер спрайта учитывает и невидимые части за маской. Как тут быть??

Так делать не очень хочется(там где нужно переопределяю проперти width и height у чилдренов):
Код AS3:
var height:Number = 0;
var width:Number = 0;
var displayObj:DisplayObject;
for (var i:int = 0; i < m_mainContainer.numChildren; i++)
{
	displayObj = m_mainContainer.getChildAt(i);
	if (displayObj.y + displayObj.height > height)
		height = displayObj.y + displayObj.height;
 
	if (displayObj.x + displayObj.width > width)
		width = displayObj.x + displayObj.width;
}

Старый 13.02.2009, 17:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Dictionary надо использовать там, где вам нужны ключи сложного типа.

Старый 13.02.2009, 17:01
kia007 вне форума Посмотреть профиль Отправить личное сообщение для kia007 Найти все сообщения от kia007
  № 3  
Ответить с цитированием
kia007

Регистрация: Oct 2007
Сообщений: 78
спасибо, понял. Первый вопрос снят с повестки дня

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно срисовать в битмап и посмотреть непрозрачную область
Код AS3:
public function getVisibleBounds():Rectangle
{
	var tmp:BitmapData = new BitmapData(width, height, true, 0);
	tmp.draw(this);
	var rec:Rectangle = tmp.getColorBoundsRect(0xFFFFFFFF, 0, false);
	tmp.dispose();
	return rec;
}

Старый 13.02.2009, 17:36
kia007 вне форума Посмотреть профиль Отправить личное сообщение для kia007 Найти все сообщения от kia007
  № 5  
Ответить с цитированием
kia007

Регистрация: Oct 2007
Сообщений: 78
интересный вариант, но думается более ресурсоемкий

Старый 13.02.2009, 20:38
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 6  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
ну вы же не ежесекундно берете размеры ?! тем более что битмапа после снятия размеров удаляется, так что не думаю что ресурсоемко выдет
__________________
на каком языке вы пишите?
а на каком нужно?

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

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

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


 


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


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