Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ScrollPane и маска добавляемых объектов (http://www.flasher.ru/forum/showthread.php?t=195734)

V01D 12.03.2013 13:26

ScrollPane и маска добавляемых объектов
 
Доброе время суток

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

Код AS3:

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

Код AS3:

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

не за что )


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

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