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

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

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

Регистрация: Aug 1999
Адрес: Россия, Москва
Сообщений: 6
По умолчанию Глюк с ComboBox

Проявился неожиданный глюк:
Про создании ComboBox

Код:
for(i=0; i<itemArr.length; i++){
...
mc2Text.createObject('ComboBox', 'my_cb'+i, mc2Text.getNextHighestDepth()+itemArr.length-i);
mc2Text['my_cb'+i].setSize(this.w-20, mc2Text['my_cb'+i]._height);
mc2Text['my_cb'+i].move(10, startY+mc2Text['_title_'+i].textHeight+5);
mc2Text['my_cb'+i].addItem({data:0, label:''});
for(j=0; j<itemArr[i][2].length; j++){
       mc2Text['my_cb'+i].addItem({data:itemArr[i][2][j][0], label:itemArr[i][2][j][1]});
}
....
}
создается ComboBox со списком значений, но, список значений при клике на стрелочку "вниз" распахивается по до всеми слоями, тоесть самый нижний и перекрывается всеми слоями над ним
Сам ComboBox работает, по нему можно перемещаться кнопками "вниз" / "вверх" и выбирать значения, но, как бы в слепую

Может кто сталкивался?

CS3 версия 9.0 проект на AS2 в формате FlashPlayer 9

Старый 30.04.2008, 14:59
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 2  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Косяк здесь:
Код:
mc2Text.createObject('ComboBox', 'my_cb'+i, mc2Text.getNextHighestDepth()+itemArr.length-i);
Если уж хоца с конца лучше сделай так:
Код:
for(i=itemArr.length - 1; i>-1; i--){
...
mc2Text.createObject('ComboBox', 'my_cb'+i, mc2Text.getNextHighestDepth());

Старый 30.04.2008, 15:13
Vorslov вне форума Посмотреть профиль Отправить личное сообщение для Vorslov Посетить домашнюю страницу Vorslov Найти все сообщения от Vorslov
  № 3  
Ответить с цитированием
Vorslov

Регистрация: Aug 1999
Адрес: Россия, Москва
Сообщений: 6
Цитата:
Сообщение от Vertax Посмотреть сообщение
Косяк здесь:
Код:
mc2Text.createObject('ComboBox', 'my_cb'+i, mc2Text.getNextHighestDepth()+itemArr.length-i);
Если уж хоца с конца лучше сделай так:
Код:
for(i=itemArr.length - 1; i>-1; i--){
...
mc2Text.createObject('ComboBox', 'my_cb'+i, mc2Text.getNextHighestDepth());
Нет, косяк не там... как вы написали действительно верно, но все же выпадающее меню так и открывается на самом нижнем слое, тоесть тот прямоугольнок, который содердит варианты выбора, который открывается, вот он открывается на самом нижнем слое...

Старый 30.04.2008, 16:12
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 4  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Стало интересно и добился таки нужного эффекта.
Самый простой способ вылечить - это присваивать глубину вручную:
Код:
mc2Text.createObject('ComboBox', 'my_cb'+i, i);
Причина проблемы в Help'e на getNextHighestDepth()
Цитата:
Note: If you are using version 2 components, do not use this method. If you place a version 2 component either on the Stage or in the Library, the getNextHighestDepth() method can sometimes return depth 1048676, which is outside the valid range. If you are using version 2 components, you should always use the version 2 components DepthManager class.


Последний раз редактировалось Vertax; 30.04.2008 в 16:28.
Старый 30.04.2008, 16:26
Vorslov вне форума Посмотреть профиль Отправить личное сообщение для Vorslov Посетить домашнюю страницу Vorslov Найти все сообщения от Vorslov
  № 5  
Ответить с цитированием
Vorslov

Регистрация: Aug 1999
Адрес: Россия, Москва
Сообщений: 6
Цитата:
Сообщение от Vertax Посмотреть сообщение
Стало интересно и добился таки нужного эффекта.
Самый простой способ вылечить - это присваивать глубину вручную:
Код:
mc2Text.createObject('ComboBox', 'my_cb'+i, i);
Пробовал, что то мне это не помогло...
Вообще непонятна даже природа этого глюка...

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

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
природа глюка - кривость компонентов флеша
у меня такое было несколько месяцев назад.
полностью в коде избавься от getNextHighestDepth() и везде пропиши глубины вручную
__________________
сайт, vk

Старый 30.04.2008, 19:08
Vorslov вне форума Посмотреть профиль Отправить личное сообщение для Vorslov Посетить домашнюю страницу Vorslov Найти все сообщения от Vorslov
  № 7  
Ответить с цитированием
Vorslov

Регистрация: Aug 1999
Адрес: Россия, Москва
Сообщений: 6
Цитата:
Сообщение от olexandr Посмотреть сообщение
полностью в коде избавься от getNextHighestDepth() и везде пропиши глубины вручную
О Ужас! неужели это так только решается?

Старый 30.04.2008, 20:52
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 8  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Существут один выход (прада через пятую точку). Нужно перенести focusManager и reserved на более низкую глубину. Пример:
Код:
//Собственно переносим
focusManager.swapDepths(0);
reserved.swapDepths(1);

//А это так, для проверки
for (i = 0; i < 10; i++)
{
	OBJ = _root.createObject("ComboBox", "CB" + i, _root.getNextHighestDepth(), {_y: i * 30});
	OBJ.addItem("AAA");
	OBJ.addItem("AAA");
	OBJ.addItem("AAA");
	OBJ.addItem("AAA");
	OBJ.addItem("AAA");
}
Но этот метод может вызвать еще какие нибудь проблемы (не зря же их на такую глубину засунули). Т.ч. использовать с осторожностью.

Старый 04.05.2008, 11:39
Vorslov вне форума Посмотреть профиль Отправить личное сообщение для Vorslov Посетить домашнюю страницу Vorslov Найти все сообщения от Vorslov
  № 9  
Ответить с цитированием
Vorslov

Регистрация: Aug 1999
Адрес: Россия, Москва
Сообщений: 6
Цитата:
Сообщение от Vertax Посмотреть сообщение
Код:
focusManager.swapDepths(0);
reserved.swapDepths(1);
Спасибо огромное! помогло!
а где бы почитать про эти загадочные focusManager и reserved?

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

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

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


 


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


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