Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   где находится исходник scrollbara во флеш? (http://www.flasher.ru/forum/showthread.php?t=177744)

gnollik 07.04.2012 13:57

где находится исходник scrollbara во флеш?
 
Собственно вопрос в теме. У меня стоит флеш цс5, хочу поиграться с scrollbar, нашел файл scrollbar.as в C:\Program Files\Adobe\Adobe Flash CS5\Common\Configuration\Component Source\ActionScript 3.0\User Interface\fl\controls - думал это то что надо, тоесть если в нем что-то редактировать, то у меня scrollbar тоже будет меняться, но что-то редактирование кода в этом файле ничего не меняет. уже даже пробовал полностью удалять код из файла и сам файл - все равно ничего не происходит... Поискал по компу, нашел еще штук 5 scrollbar.as файлов в разных местах, попробовал отредактировать их все - тоже ничего не изменилось. импорт делаю так:

Код AS1/AS2:

import fl.controls.ScrollBar;
import fl.events.ScrollEvent;
import fl.controls.ScrollBarDirection;

А вообще все что мне надо сделать, это изменить ширину thumb в горизонтальном scrollbar, лень из-за этой 1й мелочи делать свой scrollbar, думал в исходнике родного scrollbar что-то изменить чтобы он не растягивал thumb, а то скин я сделал, но он все равно растягивается... (

TanaTiX 07.04.2012 14:20

При добавлении компонента в проект он появится в библиотеке. Ширину там можно поменять.
Но лучше все же свой написать.

gnollik 07.04.2012 15:12

"Ширину там можно поменять." - как??? я поменял, все равно он растягивает на стандартную ширину и хоть об стену бейся - никак. цвета нормально меняются, а вот размеры нет...

TanaTiX 07.04.2012 15:16

Код:

как???
Есть одно место, через которое это все со стандартными компонентами и происходит, поэтому
Цитата:

Но лучше все же свой написать.
ну или хотя бы найти где-нибудь альтернативу.
У стандартных компонентов скин из себя представляет мувик/спрайт с неопределенным количеством и глубиной вложенного контента - вот там и искать. И то не всегда поможет.

gnollik 07.04.2012 15:30

ясно... спс за ответ... просто не хотелось самому делать так как думал что такую мелочь можно за 20 мин сделать, хотя я так смотрю - я уже часов 5 потратил на поиски, за это время наверное уже сам бы с 0 сделал... )

mooncar 07.04.2012 15:52

Небольшой тюнинг скроллбара можно сделать программно.

gnollik 07.04.2012 17:12

ну я подсмотрел в одной из тем такое решение:

Код AS1/AS2:

var scrollThumb_upSkin:MovieClip = new ScrollThumb_upSkin();
var scrollThumb_downSkin:MovieClip = new ScrollThumb_downSkin();
var scrollThumb_overSkin:MovieClip = new ScrollThumb_overSkin();
ResourceBuildScroll.setStyle('thumbUpSkin', scrollThumb_upSkin);
ResourceBuildScroll.setStyle('thumbDownSkin', scrollThumb_downSkin);
ResourceBuildScroll.setStyle('thumbOverSkin', scrollThumb_overSkin);
 
scrollThumb_upSkin.addEventListener(Event.ADDED, setUpSkin);
scrollThumb_downSkin.addEventListener(Event.ADDED, setDownSkin);
scrollThumb_overSkin.addEventListener(Event.ADDED, setOverSkin);
 
function setUpSkin(e:Event):void
{
((scrollThumb_upSkin as MovieClip).parent as LabelButton).height = 26;
((scrollThumb_upSkin as MovieClip).parent as LabelButton).width = 16;
}
 
function setDownSkin(e:Event):void
{
((e.target as MovieClip).parent as LabelButton).height = 26;
((e.target as MovieClip).parent as LabelButton).width = 16;
}
 
function setOverSkin(e:Event):void
{
((e.target as MovieClip).parent as LabelButton).height = 26;
((e.target as MovieClip).parent as LabelButton).width = 16;
}
 
function setDisabledSkin(e:Event):void
{
((e.target as MovieClip).parent as LabelButton).height = 26;
((e.target as MovieClip).parent as LabelButton).width = 16;
}

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

пробовал еще добавить такой код на событие ScrollEvent.SCROLL:

Код AS1/AS2:

((scrollThumb_upSkin as MovieClip).parent as LabelButton).height = 26;
((scrollThumb_upSkin as MovieClip).parent as LabelButton).width = 16;
((scrollThumb_downSkin as MovieClip).parent as LabelButton).height = 26;
((scrollThumb_downSkin as MovieClip).parent as LabelButton).width = 16;
((scrollThumb_overSkin as MovieClip).parent as LabelButton).height = 26;
((scrollThumb_overSkin as MovieClip).parent as LabelButton).width = 16;

пишет что child не должен равняться null... - Непонятно почему, но флеш не воспринимает этот код в ScrollEvent.SCROLL, хотя в Event.ADDED все нормально отрабатывает...

+ пробовал делать removechild и потом addchild в ScrollEvent.SCROLL - думал что при addchild автоматически отработает Event.ADDED и размеры будут каждый раз меняться к тем что мне надо при каждом движении ползунка - чего-то тоже не работает, ошибок не выдает, но и размеры не меняет... ( Вы случайно не знаете почему?


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

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