Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для semanser
11 / 11 / 1
Регистрация: 31.01.2012
Сообщений: 111
AS 3.0

Область перетаскивания

29.08.2012, 16:37. Показов 1234. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу извиняюсь что столько вопросов и тем) но учусь...

1)Как реализовать область перетаскивания обьекта равную с экраном? У меня получилось что то вроде этого, работает, но я не знаю верный ли этот подход.
2) Почему рамка вокруг поля держиться только мгновение? Как сделать что бы она не пропадала?
Вложения
Тип файла: rar Snake.rar (259.0 Кб, 15 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2012, 16:37
Ответы с готовыми решениями:

Перетаскивания вкладок в TabControle
(WPF) Собственно вопрос, может кто-нить делал, разбирался в вопросе перетаскивания вкладок в TabControle. Пример - вкладки в Chrome...

Блокировка перетаскивания табов
Здравствуйте, есть MyTabWidget наследуемый от QTabWidget. В нем установлен режим : this->tabBar()->setMovable(true); табы таскаются,...

Отловка события перетаскивания
Суть вопроса Нужно чтоб при перемещении ярлыка папки в Форму происходили действия (как в Проигрывателях - мп3) без кнопок! Считывание...

8
 Аватар для Nuff
214 / 80 / 2
Регистрация: 31.05.2011
Сообщений: 258
29.08.2012, 16:53
Цитата Сообщение от semanser Посмотреть сообщение
Как реализовать область перетаскивания обьекта равную с экраном?
Что есть область перетаскивания в вашем понимании? Для того чтобы узнать размеры экрана используйте stage.width и stage.height.

Цитата Сообщение от semanser Посмотреть сообщение
У меня получилось что то вроде этого, работает, но я не знаю верный ли этот подход.
Чтобы понять верный ли подход, нужно вначале узнать для чего это вам нужно. Т.к. я не совсем понял зачем все это.

Цитата Сообщение от semanser Посмотреть сообщение
Почему рамка вокруг поля держиться только мгновение? Как сделать что бы она не пропадала?
Поясните что есть рамка, а что есть поле.
0
 Аватар для semanser
11 / 11 / 1
Регистрация: 31.01.2012
Сообщений: 111
29.08.2012, 17:24  [ТС]
Вы скачали архив? Если да , то там в файле Main.as весь код, там его немного, думаю будет ясней.
Цитата Сообщение от Nuff Посмотреть сообщение
то есть область перетаскивания в вашем понимании?
Jбласть в которой можно перемещать обьект (Drap and Drop)


Цитата Сообщение от Nuff Посмотреть сообщение
Поясните что есть рамка, а что есть поле.
Поле это муви клип на сцене (слева), а рамка это его обводка

Добавлено через 22 минуты
Ладно, поставлю вопрос совсем по другому: как изменить цвет только заливки MovieClip'a?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
29.08.2012, 17:27
Цитата Сообщение от semanser Посмотреть сообщение
как изменить цвет только заливки MovieClip'a
у мувиклипа нет свойства "заливка"
0
 Аватар для semanser
11 / 11 / 1
Регистрация: 31.01.2012
Сообщений: 111
29.08.2012, 17:28  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
у мувиклипа нет свойства "заливка"
А как тогда это реализовать?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
29.08.2012, 17:39
У любого DisplayObject есть свойство graphics - экземпляр класса Graphics, который способен рисовать различне фигуры и линии. Если я правильно понял, то это вам и нужно.
0
 Аватар для Nuff
214 / 80 / 2
Регистрация: 31.05.2011
Сообщений: 258
30.08.2012, 10:47
Цитата Сообщение от semanser Посмотреть сообщение
1)Как реализовать область перетаскивания обьекта равную с экраном? У меня получилось что то вроде этого, работает, но я не знаю верный ли этот подход.
Все зависит от задачи и результата которого вы хотите добиться. Используя startDrag() у вас не будет возможности перетаскивать сразу 2 и более различных объектов. Это может понадобиться например при использовании игрового курсора. Если таковой надобности не возникнет, тогда использование startDrag() я считаю приемлемым.

Цитата Сообщение от semanser Посмотреть сообщение
2) Почему рамка вокруг поля держиться только мгновение? Как сделать что бы она не пропадала?
Потому что когда stage реагирует на MouseMove вы закрашиваете все в белый цвет, а при пересечении с вашим прямоугольником - в зеленый. Вот эта часть кода:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function getGreen(s:MouseEvent):void
        {
            if (card.hitTestObject(ground))
            {
                 colorTrans.color = 0x00FF00;
                 ground.transform.colorTransform = colorTrans;
            }
            else
            {
                colorTrans.color = 0xFFFFFF;
                ground.transform.colorTransform = colorTrans;
            }
            
        }
Используйте разные спрайты для отображения состояний поля, прячя и отображая их в нужные моменты, либо рисуйте все при помощи этого.

Оформление кода желает лучшего. Нет модификаторов доступа у методов и еще много-много чего, старайтесь оформлять правильно. На примере вашего кода:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package src
{
 
    import flash.display.MovieClip;
    import flash.geom.Rectangle;
    import flash.geom.ColorTransform;
    import flash.events.MouseEvent;
 
    public class Main extends MovieClip
    {
        private var _card:Card = new Card();
        private var _ground:Ground = new Ground();
        private var _colorTrans:ColorTransform = new ColorTransform();
        
        public function Main():void
        {
            super();
        
            createGround();
            createCard();
            
            stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
            stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
        }
        private function createCard():void
        {
            _card.x = 450;
            _card.y = 100;
            addChild(_card);
 
            _card.addEventListener(
                  MouseEvent.MOUSE_DOWN,
                  function mouseDownHandler(event:MouseEvent):void
                  {
                      _card.startDrag(false, new Rectangle(120 / 2, 170 / 2, 700 - _card.width, 500 - card.height));
                  }
        }
        private function createGround():void
        {
            _ground.x = 130;
            _ground.y = 100;
            addChild(_ground);
        }
        private function mouseUpHandler(event:MouseEvent):void
        {
            _card.stopDrag();
        }
        private function mouseMoveHandler(event:MouseEvent):void
        {
            if (_card.hitTestObject(_ground))
                 _colorTrans.color = 0x00FF00;
            else
                _colorTrans.color = 0xFFFFFF;
            _ground.transform.colorTransform = _colorTrans;
        }
    }
}
1
 Аватар для semanser
11 / 11 / 1
Регистрация: 31.01.2012
Сообщений: 111
30.08.2012, 22:02  [ТС]
Цитата Сообщение от Nuff Посмотреть сообщение
_card.x = 450;
_ добавлять для отображаемых обьектов?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
30.08.2012, 22:29
semanser, это общепринятая приставка для приватных переменных.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.08.2012, 22:29
Помогаю со студенческими работами здесь

Метод программируемого перетаскивания
Хотелось бы узнать о нем, в частности, для компонента Label. Ссылки с понятными примерами приветствуются, но желательно простейший пример...

Конфликт щелчка и перетаскивания
на форме есть ряд картинок. При перетаскивании над ними выполняются действия. Но и при щелчке по картинке выполняются действия. Но...

Методы программируемого перетаскивания
Условие: Разработать приложение, работа которого давала бы представление об особенностях использования значений параметра State...

Перетаскивания элементов listBox1
Подскажите как реализовать перетаскивания (мышкой) элементов внутри listbox?

Запрет перетаскивания формы
Поможите решить проблемку: Как запретить пользователю таскать форму (окно) с помощью мышки. Думал что это есть в свойствах формы но там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru