Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Панель инструментов со скроллом (http://www.flasher.ru/forum/showthread.php?t=207898)

PrincessRoma 15.05.2014 20:13

Панель инструментов со скроллом
 
Вложений: 1
Разрабатываю программу-редактор диаграмм, на данный момент появилось большое число возможных символов, блоков и инструментов, которые на панель с кнопочками уже не запихаешь - элементов уже более 40.
Нужно срочно сделать что-то в духе панельки инструментов из визио:
- необходимо чтобы можно было скроллить иконки инструментов
- естественно их выбирать ( при нажатии на иконку переключать номер инструмента внутри программы )
макет желаемого прикрепил в виде рисунка )
Гуглил, но чего-то так ничего и не нашел путного.
Подскажите пожалуйста, как это лучше реализовать, может есть какие-то готовые компоненты, которые помогут?

ZackMercury 15.05.2014 20:53

А простой Sprite со scrollRect не подойдёт?
Там слушайте ROLL_OVER, и при этом событии слушайте мышиный скролл, и прокручивайте scrollRect куда захочется.
И, соответственно, убирайте слушатель скролла при ROLL_OUT.

TWETTI 15.05.2014 21:03

Вложений: 1
Я всегда делаю так:

Все кнопки инструментов добавьте в конейнер(Sprite) и задайте ему маску(область которая будет видна). Напишите скроллбар или возьмите готовый и двигайте контейнер с кнопками, когда изменяется положение слайдера.

P.S. Прочитал сообщение SuriTheAngel. Никогда не слышал про scrollRect, и делал без него. Но думаю, что с ним будет удобнее.

PrincessRoma 15.05.2014 21:49

Круто, спасибо). Но есть два вопроса:
1. Как сделать маску ? Можно пример кода небольшой, прям в общих чертах, я пойму. )
2. И где можно найти готовый скроллбар )
P.S. Заранее спасибо огромное

kotyavo 15.05.2014 21:57

Маска обычный displayObject спрайт шарп итд.
1 У объекта задаем mask
2 Добавляем маску на холст (displaylist)

Мне больше нравится scrollRect сним удобнее делать слайдеры и прочее вещи.

TWETTI 15.05.2014 21:57

Код AS3:

var maska:Shape = new Shape();
maska.graphics.beginFill(0x000000);
maska.graphics.drawRect(10, 10 , 100, 400);
maska.graphics.endFill();
 
container.mask = maska;

Готовый скроллбар есть в компонентах Flash Professional.

PrincessRoma 16.05.2014 01:09

Большое спасибо, люди. ))

ChuwY 16.05.2014 12:54

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

PrincessRoma 16.05.2014 18:31

Классное предложение, ChuwY , подумаю, может и так сделаю )

BornTOFree 17.05.2014 13:43

ChuwY действительно предложил классное решение. Но, как кнопка узнает, что пора сменить данные, непонятно.


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

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