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

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

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

Регистрация: Nov 2003
Сообщений: 289
По умолчанию Slider's ticks не выровнены относительно slider's track

Друзья, существует такой баг http://bugs.adobe.com/jira/browse/SDK-15529 - в слайдере tick'и не правильно выравниваются по x-координате, что особенно хреново выглядит при кастомном скине track'а. Нашел внутри класса слайдера метод layoutTicks, где с помощью xOffset можно было бы поправить глюк, однако метод private.

Код:
+ private function layoutTicks():void
+    {
+        if (ticks)
+        {
+            var g:Graphics = ticks.graphics;
+            var tLength:Number = getStyle("tickLength");
+            var tOffset:Number = getStyle("tickOffset");
+            var tickWidth:Number = getStyle("tickThickness");
+            var xOffset:Number = tickWidth / 2;
+            var xPos:Number;
+            var tColor:Number = getStyle("tickColor");
+            
+            var usePositions:Boolean = _tickValues && _tickValues.length > 0 ? true : false;
+            var positionIndex:int = 0;
+            var val:Number = usePositions ? _tickValues[positionIndex++] : minimum;
+            
+            g.clear();
+            
+            if (_tickInterval > 0 || usePositions)
+            {
+                g.lineStyle(tickWidth,tColor,100);
+
+                do
+                {
+                    xPos = Math.round(getXFromValue(val) - xOffset);
+                    g.moveTo(xPos, tLength);
+                    g.lineTo(xPos, 0);
+                    val = usePositions ? (positionIndex < _tickValues.length ? _tickValues[positionIndex++] : NaN) : _tickInterval + val;
+                } while (val < maximum || (usePositions && positionIndex < _tickValues.length))
+
+                // draw the last tick
+                if (!usePositions || val == maximum)
+                {
+                    xPos = track.x + track.width - 1 - xOffset;
+                    g.moveTo(xPos, tLength);
+                    g.lineTo(xPos, 0);
+                }
+
+                ticks.y = Math.round(track.y + tOffset - tLength);
+            }
+        }
+    }
Посоветуйте плз, что можно сделать в данной ситуации.

Старый 26.03.2009, 15:48
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А что будет если просто скопировать к себе этот класс, в нем поправить и скомпилировать? (в смысле, а вдруг ваш исправленный класс компилятор первым увидит... не красиво конечно, но чет ничего другого не придумывается... ну или отнаследоваться от него, найти кто вызывает этот метод из того, что можно оверрайдить и там заменить на вызов кастом метода типа layoutTicks2
__________________
Hell is the possibility of sanity

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

Регистрация: Nov 2003
Сообщений: 289
Спасибо, wvxvw! Сделал копию и скомпилировал - подхватило мой класс (хотя логика процесса мне не совсем ясна, почему мой класс первый...).

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

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

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


 


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


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