Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Drag объектов в заданном поле (http://www.flasher.ru/forum/showthread.php?t=87990)

Arhitector 15.11.2006 12:11

Drag объектов в заданном поле
 
Привет всем!
Делаю проект в котором нужно будет двигать и растягивать объекты как в ширину так и в высоту.
Как можно сделать чтобы объект не выходил за нужные рамки (допустим: выделенное пространство для объектов)?

Arhitector 15.11.2006 12:24

Немного подробнее:
Нужно сделать при нажатии на кнопку подгружаются мувики, мувики грузятся в определенную область в которой нужно будет их двигать по X и Y, а также изменять размер по X и Y. Нужно чтобы эти мувики при передвигании не выходили за отведенные им поля...

Как это реализовать? Может кто поможет?

Roland 15.11.2006 14:30

Можно стандартным стартдрагом и стопдрагом, но ИМХО он кривой.
Лучше опиши событие onPress для кождого мувика, который нужно будет перетаскивать дальше создай onEnterFrame для этого мувика (на которому нажали). Дальше смотри координаты мыши и если они не выходят за нужные рамки, то двигай мувик. На onRelease удаляй onEnterFrame.
ИМХО вполне приличный вариант.

_sestra_ 15.11.2006 15:13

Вложений: 3
Вот, возьми. Scale сам сделаешь. С этой структурой это будет сделать элементарно.

Arhitector 15.11.2006 16:35

ОК всем спасибо... но у меня все проще получилось...

Создал кнопку, запихнул его в мувик и повесил код на саму кнопку.
Определил нужные границы для перетаскиваемого объекта и все работает!!!

Код:

on (press) {
        startDrag(this._parent.intrance_name);
        this._parent.intrance_name.startDrag(false,-9,0,89,191);
}
on (release) {
        stopDrag();
}


_sestra_ 15.11.2006 17:26

Цитата:

Сообщение от Arhitector
ОК всем спасибо... но у меня все проще получилось...

Создал кнопку, запихнул его в мувик и повесил код на саму кнопку.
Определил нужные границы для перетаскиваемого объекта и все работает!!!

Код:

on (press) {
        startDrag(this._parent.intrance_name);
        this._parent.intrance_name.startDrag(false,-9,0,89,191);
}
on (release) {
        stopDrag();
}




1) Совет: разбери тот пример который я тебе прислал. Он тебе очень поможет в будущем.

2) Читай пункт 6: http://flasher.ru/forum/showthread.php?t=79864

3) Удачи :)

Arhitector 15.11.2006 19:01

Вложений: 1
Вот посмотри как я сделал

Вложение 15785

Roland 16.11.2006 16:44

Объясняю почему то, что ты зделал - плохо (хотя если тебя устраивает нестабильность и лаги - то твой вариент катит).
Что я делал:
1. Нажимаю на "Шапка". Появляется в сером поле чёрный мувик с надписью шапка.
2. Нажимаю и удерживаю левую кнопку мыши на мувике с надписью шапка.
3. Увожу указатель мышки за границу серого поля, и отпускаю там левую кнопку маши. И происходит странное - кнопка мышки отпужена, а если теперь поводить по серому полю, то мувик бегает за указателем.
Вот про етот глюк старт/стоп драга я тебе и говорил.
Если событие возникающее при отпускании нажатой кнопки возникает на другом объекте, то на этом оно не возникает :(

Arhitector 17.11.2006 15:54

Ну а как по твоему нужно сделать?


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

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