PDA

Просмотр полной версии : ScrollPane и маска добавляемых объектов


V01D
12.03.2013, 13:26
Доброе время суток

1. С помощью АФ CS6 создаю объект - кнопку.
2. С помощью АФ CS6 создаю объект - блики в маске (мувиклип с бликами) (за пределами маски занимает место гораздо больше самой кнопки).
3. также включаю в библиотеку ScrollPane;
-(Все с соответствующими классами)

3. Выгружаю все в SWC.

4. В Flash Develope подключаю SWC.

5. Создаю новый класс наследуемый от объекта из пункта 1.

6. В классе из пункта 5 создаю объект из пункта 2.

-В общем получается кнопка с прикручеными (в маске) бликами (е.р. маска создается в АФ CS6)

Проблема в следующем -

При добавлении (addChild) Объектов (КНОПОК) в объект (ScrollPane.source = ScrollObj) ScrollObj (Sprite) Учитывается размер маски и ScrollObj увеличиваетса соответственно, создаются скроллы не соответствующие ВИДИМЫМ размерам объектов.

Добавлено через 2 часа 54 минуты
Как скролл заставить реагировать на только на видимые области в объекте...?
ИЛИ как строго ограничивать скролируемую область вне зависимости от объекта source?

in4core
12.03.2013, 16:54
override public function get height(...)
override public function get width(...)
Если это вам о чем то говорит, то решение задачи на ладони

V01D
12.03.2013, 17:05
А можно поподробнее...

Потому как пытался изменить ScrollObj.height - это меняет scale внутренних объектов что не есть хороше...

Добавлено через 59 секунд
и самого объекта - ScrollObj

Добавлено через 1 минуту
Непонятно почему именно геттеры...?

Deimos747
12.03.2013, 18:07
Непонятно почему именно геттеры...?
Сделайте перегрузку методов, которые написал in4core

in4core
12.03.2013, 18:13
Перегрузку надо сделать не у скорллпейна , а у объектов которые туда помещаются :)

Если нужно разжевать, - trace(obj.width) // 200 доупстим, из за того, что маска 200 px, а контент всего 100

после перегрузки trace(obj.width) // 100 - потому , что мы возвращаем свое собственное значение, а именно значение того объекта или области который нам нужен

V01D
12.03.2013, 19:48
Спасибо ОГРОМНОЕ :)

Подумав понял почему вы написали геттеры...
но уже поспешил отписатса :)

Намек был очевиден

Вот переоформленный (елементарный) класс для ScrollObj

package utils
{
import flash.display.Sprite;

public class ScrollSprite extends Sprite
{
protected var ScrollHeight : Number;
protected var ScrollWidth : Number;

public function ScrollSprite()
{

}
override public function set height(value:Number):void
{
ScrollHeight = value;
}
override public function get height():Number
{
return ScrollHeight;
}
override public function set width(value:Number):void
{
ScrollWidth = value;
}
override public function get width():Number
{
return ScrollWidth;
}

}

}

Добавлено через 1 минуту
Заработало еще раз спасибо

ScrollPane принимает width и height :)

in4core
12.03.2013, 19:59
не за что )