Форум Flasher.ru

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

sspy 23.02.2010 20:16

startDrag перетаскивать мувик только в определнной области
 
Изучаю flash, сейчас сделал мальеньку примитивную флешку.
в ней есть мувик, к нему экспортируеться класс:

Код AS3:

package main
{
        // Подключаем библиотеки.
        import flash.display.MovieClip;
        import flash.events.*;
        import flash.geom.Rectangle;
 
        // Создаём класс background который наследует класс MovieClip
        public class background extends MovieClip
        {
                public function background()
                {
                        parent.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
                        parent.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
                }
 
                // Нажатие кнопки мыши по нашему мувику
                function handleMouseDown(event:Event):void
                {
                        var dx:Number = width-stage.stageWidth;
                        var dy:Number = height-stage.stageHeight;
                        var dragRect:Rectangle = new Rectangle(-dx,-dy, dx,dy);
                        (parent as MovieClip).startDrag(false, dragRect);
                }
                // Отпустили кнопку мыши
                function handleMouseUp(event:Event):void
                {
                        (parent as MovieClip).stopDrag();
                }
        }
}

фон флешки белый мувик черный его можно перемещать, если мувик переместить максимально вверх то становиться виден фон, как задать условие чтоб мувик перемещался только в пределах... не знаю как точно сказать по сылке то что сейчас уже сделал (http://narod.ru/disk/18178451000/startDrag.rar.html размер 700кб) как в этом примере сделать так что когда мувик перемещаешь невозможно было переместить его так чтоб виден был фон.

З.Ы. Извините что коряво написал, не знаю как правильно написать чтоб было понятно.

Добавлено через 1 час 12 минут
сорри за оффтоп но у меня складываеться мнение что это мертвый форум....

mayakwd 24.02.2010 01:05

Код AS3:

package main
{
        // Подключаем библиотеки.
        import flash.display.MovieClip;
        import flash.events.*;
        import flash.geom.Rectangle;
 
        // Создаём класс Background который наследует класс MovieClip
        // Классы называйте с Большой Буквы.
        public class Background extends MovieClip
        {
                public function Background()
                {
                        // не двигайте stage
                        addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
                        addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
                }
 
                // Нажатие кнопки мыши по нашему мувику
                function handleMouseDown(event:Event):void
                {
                        // для наглядности
                        var left : Number = stage.stageWidth-width;
                        var top : Number = stage.stageHeight-height;
                        var right : Number = width-stage.stageWidth;
                        var bottom : Number = height-stage.stageHeight;
 
                        var dragRect:Rectangle = new Rectangle(left,top,right,bottom);
 
                        startDrag(false, dragRect);
                }
                // Отпустили кнопку мыши
                function handleMouseUp(event:Event):void
                {
                        stopDrag();
                }
        }
}


sspy 24.02.2010 13:39

Спасибо, тему можно закрыть.


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

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