Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Группа Событий Мышки


Автор: UserSuperPupsik 18.8.2013, 21:38
 smile 
Здравствуйте!

 Опишу, проблему!
 1). Надо, чтобы при нажатии на картинку (а их много) левой кнопкой мыши в значение переменной objectik записалось имя экземпляра, т.е. если есть код



Код

var simbol1:Simbol1=new Simbol1();//название экемпляра - simbol1, а Simbol1 - название класса 
символа
,то надо objectik=<название экземпляра>

 2). Надо чтобы после нажатия левой клавиши мыши на объект(картинка) двигалась согласно указателю мышки.
 3). При Втором нажатии левой кнопки мыши картинка остановилась там где и стоял указатель мыши
 И текущая позиция (x,y) записались в значения переменных x1, y1., т.е.

Код

x1=mouseX;
              y1=mouseY;

4) Затем, если я нажму на другую картинку то всё выше сказанное должно повториться и для этой картинки.
 Помогите, пожалуйста решить эту проблему!

Автор: SoWa 19.8.2013, 12:12
По первому пункту: добавляйте на каждый экземпляр класса Simbol1 обработчик клика мыши, в котором у свойства event доступно свойство currentTarget - тот экземпляр, по которому кликнули.
По второму пункту: так как у вас уже есть экземпляр, то на событие сцены mousemove добавляйте обработчик, который будет двигать ранее записанный экезмпляр.
По третьему пункту: см. первый пункт. У вас есть уже записанный экземпляр, который движется. Значит, надо что-то в него записать что вам надо, и обнулить переменную objectik
Четыертый пункт автоматически выполняется, так как первые три при соблюдении рекомендации будут работать на все экземпляры класса

Автор: UserSuperPupsik 19.8.2013, 13:22
Вот, что я хотел! smile
Код

addEventListener(MouseEvent.CLICK,funct);
 
function funct(e:MouseEvent):void
                        { 
    if(i==1) {
            e.target.startDrag()
            trace(e.target.name)
            
            i=2;
            
            }
                
    else if (i==2){
                 e.target.stopDrag()
                trace(e.target.name)
                i=1;
                //e.target.x=100
                //e.target.y=100
                  }
                        }


Добавлено через 1 минуту и 21 секунду
Всем спасибо за помощь! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)