Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Помогите разобраться с маской
Flash Zone Forum > Macromedia Flash > ActionScript
DWanderer
Всем доброго времени суток!
Пытаюсь сделать не замысловатую игру (продвигаюсь пока скорее только в плане отображения элементов меню и объектов) и столкнулся со следующей проблемой. Ничего подобного я нигде еще не видел, облазил много форумов и перечитал много литературы.
Значит проблемка возникает при следующей ситуации:
У меня есть две круглые зеленые кнопки 1 и 2 (видно на рисунке снизу). Каждая из кнопок загружает рисунок, превосходящий по размеру открытое окно. Я накладываю маску, чтобы скрыть лишнее. Когда 1й раз нажимаешь на кнопку 1 все срабатывает как надо. Синие стрелки внизу прокручивают это изображение вперед и назад.
Когда же я нажимаю (как показано на рисунке 2) на заленую кнопку 2, а потом опять 1 картинка отображается в полный размер, причем интересно что при прокрутке все теми же синими кнопками маска скрывает эту картинки только с левого бока, с правого же ничего подобного, как вы можете видеть. Возможно ошибка очень глупая, но очень прошу вас помочь. Сижу уже битый час и хотелось бы понять, в чем косяк такой)

HaWK
Код покажите. Функции-обработчики нажатия зелёных кнопок и синих тоже.
DWanderer
Код
/////////////////////////////////////боковые кнопки разделов/////////////////////////////////////
        private var fullKV_loader:Loader; //1я картинка
        private var fullBV_loader:Loader; //2я картинка
        private var maskForTreesMap:Sprite = new Sprite; //маска для частичного отображения
        private var moveBtnTrees1:Loader;    //кнопки перетаскивания вперед назад полного древа
        private var moveBtnTrees2:Loader;
        //1я картинка
        {//загружаем и отображаем 1ю картинку
            .......
            removeChild(fullBV_loader);  //убираем одну с экрана, отображаем 2ю
            addChild(fullKV_loader);
            creatMask();    //создаем маску
            fullKV_loader.mask = maskForTreesMap; //накладываем
        }
        //2я картинка
        {//загружаем и отображаем 2ю картинку
            .......
            removeChild(fullKV_loader);  //убираем одну с экрана, отображаем 2ю
            addChild(fullBV_loader);
            creatMask();    //создаем маску
            fullBV_loader.mask = maskForTreesMap;    //накладываем
        }
        //маска и кнопки управления
        public function creatMask(){
            maskForTreesMap.graphics.lineStyle(1);
            maskForTreesMap.graphics.beginFill(0x1e3611);
            maskForTreesMap.graphics.lineTo(0, 0);
            maskForTreesMap.graphics.lineTo(800, 0);
            maskForTreesMap.graphics.lineTo(800, 430);
            maskForTreesMap.graphics.lineTo(0, 430);
            maskForTreesMap.graphics.endFill();
            maskForTreesMap.x = 60;
            maskForTreesMap.y = 100;
            //кнопки (2 кнопки по цепочке)
            moveBtnTrees1 = new Loader;
            moveBtnTrees1.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteMoveBtnTrees1);
            moveBtnTrees1.load(new URLRequest("world/image/menu/buttons/moveBtnTreesBack.png"));
        }
        public function onCompleteMoveBtnTrees1(e:Event):void{
            moveBtnTrees1.x = 408;
            moveBtnTrees1.y = 530;
            addChild(moveBtnTrees1);
            moveBtnTrees2 = new Loader;
            moveBtnTrees2.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteMoveBtnTrees2);
            moveBtnTrees2.load(new URLRequest("world/image/menu/buttons/moveBtnTreesForward.png"));
        }
        public function onCompleteMoveBtnTrees2(e:Event):void{
            moveBtnTrees2.x = 465;
            moveBtnTrees2.y = 530;
            addChild(moveBtnTrees2);

            /////управление картинкой
            moveBtnTrees1.addEventListener(MouseEvent.CLICK, backClick);
            moveBtnTrees2.addEventListener(MouseEvent.CLICK, forwardClick);
        }
        public function backClick(e:MouseEvent):void{
            if (treesNumber == 10){
                if (fullKV_loader.x <= -375){
                    fullKV_loader.x = -375;
                } else {
                    fullKV_loader.x -= 25;
                }
            } else {
                if (fullBV_loader.x <= -375){
                    fullBV_loader.x = -375;
                } else {
                    fullBV_loader.x -= 25;
                }
            }
        }
        public function forwardClick(e:MouseEvent):void{
            if (treesNumber == 10){
                if (fullKV_loader.x >= 50){
                    fullKV_loader.x = 50;
                } else {
                    fullKV_loader.x += 25;
                }
            } else {
                if (fullBV_loader.x >= 50){
                    fullBV_loader.x = 50;
                } else {
                    fullBV_loader.x += 25;
                }
            }
        }


Привожу картинку с наглядной маской:
DWanderer
Все, вопрос снят) Разобрался smile.gif
MustLive
DWanderer

Вот и хорошо. Как видишь, ответ HaWK-а удачно навёл тебя на мысль, что тебе нужно самому с эти разобраться smile.gif.

И для тебя же больше пользы будет, когда сам разобрался в своей проблеме.
Русская версия IP.Board © 2001-2013 IPS, Inc.