Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.10.2010, 16:42
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 11  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Цитата:
Сообщение от alatar Посмотреть сообщение
Это вы к чему?

Как один из вариантов прописать ему, после того как схватили mouseEnabled = false и подписаться у stage на событие MOUSE_UP, по которому вернуть все обратно.
эх почти, только событие stage.MOUSE_UP, не сробатывает после того как мы присвоили объекту mouseEnabled = false

Старый 12.10.2010, 17:07
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 12  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
не сробатывает
С чего вдруг? А вы попробовали?
P.S. Я не писал присвоить mouseEnabled = false для stage.

Старый 12.10.2010, 17:31
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 13  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
не для stage, для объекта
ниче не получилось, где-то я туплю
Код AS3:
 
package com
{
    import fl.transitions.Tween;
    import fl.transitions.easing.*;
 
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;
 
    public class Main extends MovieClip
    {
        private static const CURSOR_X:int = 200;
        private static const CURSOR_Y:int = 200;
        private var f1_x:int;
        private var f1_y:int;
        private var f2_x:int;
        private var f2_y:int;
        private var f3_x:int;
        private var f3_y:int;
 
        public static var take:Boolean = false;
        private var f1:Sprite;
        private var f2:Sprite;
        private var f3:Sprite;
        private var area:Sprite;
        private var cursor:MovieClip;
 
        private var cursorTweenX:Tween;
        private var cursorTweenY:Tween;
        //private var foodTweenX:Tween;
        //private var foodTweenY:Tween;
 
        public function Main()
        {
            this.addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event):void
        {
            trace("Main class loaded")
            this.removeEventListener(Event.ADDED_TO_STAGE, init);
 
            //Mouse.hide();
            cursor = new Cursor();
            cursor.mouseEnabled = false;
            cursor.mouseChildren = false;
            stage.addChild(cursor);
            cursor.x = CURSOR_X;
            cursor.y = CURSOR_Y;
            cursor.rotation = -15;
 
            f1 = f1_mc;
            f1.mouseChildren = false;
            f1.addEventListener(MouseEvent.MOUSE_DOWN, drag, false, 0, true);
            f1.addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);
 
            f2 = f2_mc;
            f2.mouseChildren = false;
            f2.addEventListener(MouseEvent.MOUSE_DOWN, drag, false, 0, true);
            f2.addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);
 
            f3 = f3_mc;
            f3.mouseChildren = false;
            f3.addEventListener(MouseEvent.MOUSE_DOWN, drag, false, 0, true);
            f3.addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);
 
            f1_x = f1.x;
            f1_y = f1.y;
            f2_x = f2.x;
            f2_y = f2.y;
            f3_x = f3.x;
            f3_y = f3.y;
 
            area = area_mc;
            area.addEventListener(MouseEvent.ROLL_OVER, mouseOver, false, 0, true);
            stage.addEventListener(Event.MOUSE_LEAVE, mouseOut, false, 0, true);
 
            stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown, false, 0, true);
            stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp, false, 0, true);
            stage.addEventListener(MouseEvent.MOUSE_MOVE, moveCursor, false, 0, true);                    
        }
 
        private function drag(e:MouseEvent):void
        {
            take = true;
            e.target.startDrag();
            e.target.mouseEnabled = false;
        }
 
        private function drop(e:MouseEvent):void
        {
            take = false;
            e.target.stopDrag();
            e.target.mouseEnabled = false;        
        }
 
        private function mouseOver(e:Event):void
        {
            cursor.gotoAndStop("handl");
        }
 
        private function mouseDown(e:MouseEvent):void
        {
            cursor.cursor_in_mc.gotoAndStop(2);
        }
 
        private function mouseUp(e:MouseEvent):void
        {
            //f1.stopDrag();
            //f2.stopDrag();
            //f3.stopDrag();
            cursor.cursor_in_mc.gotoAndStop(1);
            f1.x = f1_x;
            f1.y = f1_y;
            f2.x = f2_x;
            f2.y = f2_y;
            f3.x = f3_x;
            f3.y = f3_y;
 
        }
 
        private function mouseOut(e:Event):void
        {
            cursorTweenX = new Tween(cursor, "x", Strong.easeInOut, cursor.x, CURSOR_X, 20, false);
            cursorTweenY = new Tween(cursor, "y", Strong.easeInOut, cursor.y, CURSOR_Y, 20, false);
            cursor.gotoAndPlay(1);
        }
 
        private function moveCursor(e:MouseEvent):void
        {
            cursor.x = stage.mouseX;
            cursor.y = stage.mouseY;
        }
 
    }
}

Старый 12.10.2010, 17:37
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 14  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
ниче не получилось
Конкретнее, что не получилость.

Старый 12.10.2010, 17:44
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 15  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
думаю что не нужно на объект накладывать приемник события
Код AS3:
 addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);

Старый 12.10.2010, 17:45
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 16  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
MOUSE_DOWN - на f1...f3, а MOUSE_UP вешаете на stage внутри обработчика MOUSE_DOWN. И, конечно, убираете из stage листенер этого события в обработчике самого MOUSE_UP. Вот только придется определять кто из f1...f3)) Я обычно сохраняю ссылку как _currentDragged при MOUSE_DOWN.
__________________
Reality.getBounds(this);

Старый 12.10.2010, 17:46
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 17  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
да точно, нужно все отписать от сцены

Код AS3:
	private function mouseUp(e:MouseEvent):void
		{
			cursor.cursor_in_mc.gotoAndStop(1);
 
			f1.stopDrag();
			f2.stopDrag();
			f3.stopDrag();
 
			f1.mouseEnabled = true;
			f2.mouseEnabled = true;
			f3.mouseEnabled = true;
 
			f1.x = f1_x;
			f1.y = f1_y;
			f2.x = f2_x;
			f2.y = f2_y;
			f3.x = f3_x;
			f3.y = f3_y;
 
		}

Старый 12.10.2010, 17:47
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 18  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
думаю что не нужно на объект накладывать приемник события
Если отрубить объекту мышь, то он вообще не сработает. Соответственно drop у вас не вызовется никогда.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
ROLL_OVER , stage
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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