Показать сообщение отдельно
Старый 25.08.2012, 21:23
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
1. На сейф вешаем прослушку события MOUSE_UP. В слушателе делаем все, что необходимо (например прекращаем перетаскивание мешка методом stopDrag() и переход по ссылке).
Код AS3:
// Внешняя переменная dragedSack, речь о которой пойдет чуть ниже
var dragedSack:MovieClip = null;
safe.addEventListener(MouseEvent.MOUSE_UP, safeUpHandler);
function safeUpHandler(e:MouseEvent):void {
    // Тут наверно имеет смысл проверить перетаскивается ли
    // в данный момент какой-нибудь мешок.
    // Переменная dragedSack внешняя, объявленная как MovieClip
    if (dragedSack) {
        // Совершаем переход по ссылке. В зависимости от имени мешка
        // можно переходить по разным ссылкам. (dragedSack.name)
        dragedSack.stopDrag();
        dragedSack.mouseEnabled = true;
        navigateToURL(new URLRequest("http://www.yandex.ru"));
        ...
        // Не забываем в конце обнулить ссылку на dragedSack
        dragedSack = null;
    }
}
2. На мешки вешаем прослушку события MOUSE_DOWN. В слушателе вызываем метод startDrag() и выключаем мышиную активность мешка, чтобы он потом нам не мешал. И сохраняем ссылку на мешок в dragedSack.
Код AS3:
sack.addEventListener(MouseEvent.MOUSE_DOWN, sackDownHandler);
function sackDownHandler(e:MouseEvent):void {
    var sack:MovieClip = e.currentTarget as MovieClip;
    sack.mouseEnabled = false;
    sack.startDrag();
    dragedSack = sack;
}
3. Пишу на коленке, не проверяя. Что не ясно спрашивайте.