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

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

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

Регистрация: Aug 2008
Сообщений: 35
По умолчанию ComboBox - правильная работа и табиндекс

http://zhalex.narod.ru/comboboxdemo.swf

есть клип, на нем черный прямоугольник и на нем комбобокс.
аттачим во фрейме две копии на _root.

Получаем два таких клипа на руте, однако комбо боксы не работают как надо
Кроме того надо чтобы между ними можно было прыгать по TAB

Вопрос - как же это сделать, не менняя общей структуры (то есть комбобоксы есть в клипе, таких клипов может быть куча разных.. и аттачаться они не только на _root но и на другие клипы - не суть куда именно, важно что комбо бокс почему то работает неправильно)

исходник
http://zhalex.narod.ru/comboboxdemo.fla

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от zhalex Посмотреть сообщение
...Получаем два таких клипа на руте, однако комбо боксы не работают как надо...
Привет!
Положите пустой клип mc_mc на _root и замените код на:
Код AS1/AS2:
t = mc_mc.attachMovie("clip1", "clip1", mc_mc.getNextHighestDepth());
v = mc_mc.attachMovie("clip1", "clip2", mc_mc.getNextHighestDepth());
v._x = 200;
и одной проблемой будет меньше.


Последний раз редактировалось Жень Шень; 13.05.2009 в 11:27. Причина: поправил тег
Старый 13.05.2009, 02:32
zhalex вне форума Посмотреть профиль Отправить личное сообщение для zhalex Найти все сообщения от zhalex
  № 3  
Ответить с цитированием
zhalex

Регистрация: Aug 2008
Сообщений: 35
А с чем связана такая хитрость? дело в том что у меня этот вопрос возник из более сложной флешке и там много этих комобоксов и они помещаются там в совершенно много разных мест, а не только на _root..

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Поковырявшись во внутренностях класса ComboBox.as, я нашел следующую сущность:
При создании PopUp-клипа с выпадающим спискм, этому клипу присваивается глубина но 100 выше основного клипа. А это не стыкуется с "_root.getNextHighestDepth()"
Код:
trace(_root.getNextHighestDepth()) //1048576
Поэтому можно "вылечить" проблему явно указав глубину:
Код:
t = _root.attachMovie("clip1","clip1",100);
v = _root.attachMovie("clip1","clip2",101);
v._x=200;
либо так:
Код:
t = _root.attachMovie("clip1","clip1",_root.getNextHighestDepth()-100);
v = _root.attachMovie("clip1","clip2",_root.getNextHighestDepth()-101);
v._x=200;
Естественно, 100 и 101 от фонаря.

Старый 15.05.2009, 18:41
Pecher вне форума Посмотреть профиль Отправить личное сообщение для Pecher Найти все сообщения от Pecher
  № 5  
Ответить с цитированием
Pecher
 
Аватар для Pecher

Регистрация: Jun 2005
Адрес: Bryansk
Сообщений: 73
Я сегодня решал подобную проблему, вот здесь нашел ответ: http://www.flasher.ru/forum/showthread.php?t=107404
__________________
Flash can do it.

Старый 15.05.2009, 18:57
zhalex вне форума Посмотреть профиль Отправить личное сообщение для zhalex Найти все сообщения от zhalex
  № 6  
Ответить с цитированием
zhalex

Регистрация: Aug 2008
Сообщений: 35
А по-поводу таб индексов кто нить что нить моэжет сказать (чтобы по TAB между полями прыгать) ?

...........................


Pecher вы действительно решали именно подобную проблему, ибо там советуют прописать _lockroot = true; в первом кадре, что в моей задаче не помогает.

Однако getNextHighestDepth() действительно равно 1048576 и работает если положить клипы содержащие комбы, на фиксированную глубину.

Теперь осталось разобраться во флешке, для которой я решал проблему, потому что в ней комбоксы кладутся в клипы , которые кладутся на другие клипы, и так там очень запутанная иерархия этих клипов =)

Старый 15.05.2009, 19:00
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 7  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от Pecher Посмотреть сообщение
Я сегодня решал подобную проблему, вот здесь нашел ответ: http://www.flasher.ru/forum/showthread.php?t=107404
Если вы про "_lockroot = true;", то для примера приведенного zhalex-ом в #1 это не помогло.
Я же писал, что _root.getNextHighestDepth() выдает число (1048576) больше максимальной глубины 1048575.


Последний раз редактировалось Жень Шень; 15.05.2009 в 19:06. Причина: Дополниние сказанному
Старый 15.05.2009, 19:01
zhalex вне форума Посмотреть профиль Отправить личное сообщение для zhalex Найти все сообщения от zhalex
  № 8  
Ответить с цитированием
zhalex

Регистрация: Aug 2008
Сообщений: 35
Жень Шень, коль уж ВЫ смотрели исходники COMBOBOX,
я попутно задам вопрос , чтоб уж точно понять проблему -
есть такой код

t = _root.attachMovie("clip1","clip1", _root.getNextHighestDepth());
z = _root.t.attachMovie("clip2","clip2", _root.t.getNextHighestDepth());
y = _root.z.attachMovie("clip3","clip3", _root.z.getNextHighestDepth());
_root.y.attachMovie("clip4","clip4", _root.y.getNextHighestDepth());

собственно клип4 напрмер содержит комбо бокс.

в какой из четырёх строк надо менять
_root.getNextHighestDepth() на константу, либо на
_root.getNextHighestDepth()-100

?

Старый 15.05.2009, 19:08
Pecher вне форума Посмотреть профиль Отправить личное сообщение для Pecher Найти все сообщения от Pecher
  № 9  
Ответить с цитированием
Pecher
 
Аватар для Pecher

Регистрация: Jun 2005
Адрес: Bryansk
Сообщений: 73
у меня комбобокс не выпадал. Я прописал локрут в конструкторе клипа, содержащего комбобокс, после этого комбобокс начал выпадать.
__________________
Flash can do it.

Старый 15.05.2009, 19:12
zhalex вне форума Посмотреть профиль Отправить личное сообщение для zhalex Найти все сообщения от zhalex
  № 10  
Ответить с цитированием
zhalex

Регистрация: Aug 2008
Сообщений: 35
что такое конструктор клипа*?
Вы можете посмотреть мой первый пост там есть ссылка на FLA - небольшой,
можно скачать и открыть во флеше.
Прописывание строки _lockroot = true;
первой строкой в первый кадр ничего не даёт..
Попутно что я ещё понял, так это то что я не знаю как работает функция getNecxtHighetDepth

мне казалось что когда тайм лайн пустой, то она должна выдать значение 1 , как первое наименьшее свободное. потом когда мы поместили клип на глубину 1, то выдать 2 и т.п., но она почемуто сразу выдаёт 1048576

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

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

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


 


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


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