2014-02-04 3 views
0

Я получил эти функции:Сохранить координаты положения ребенка

private function onEmptySpaceClicked(e:MouseEvent):void{ 

    var myVar = e.currentTarget.name; 

    if (e.currentTarget.name == "ES1"){ 
    trace("click on one"); 
    clickPuzzles.click1 = true; 
    } 
    if (e.currentTarget.name == "ES2"){ 
    trace("click on two"); 
    clickPuzzles.click2 = true; 
    } 

public function buildIt(e:MouseEvent):void{ 
if (clickPuzzles.click1){ 
     test.x = e.currentTarget.x; 
    test.y = e.currentTarget.y; 
    test.visible = true; 
} 
} 

Функция builIt вызывается с помощью другого класса.

Все работает, но есть ли возможность сохранить e.currentTarget.x и y в функции onEmptySpaceClicked как значение?

А затем использовать его в моей функции buildIt?

Как:

private function onEmptySpaceClicked(e:MouseEvent):void{ 

    var myVar = e.currentTarget.name; 

    if (e.currentTarget.name == "ES1"){ 
    trace("click on one"); 
     clickPuzzles.click1 = true 
    e.currentTarget.x && e.currentTarget.y = valueOfEs1 
    } 
    if (e.currentTarget.name == "ES2"){ 
    trace("click on two"); 
     clickPuzzles.click2 = true 
    e.currentTarget.x && e.currentTarget.y = valueOfEs2 
    } 

public function buildIt(e:MouseEvent):void{ 
if (clickPuzzles.click1){ 
     test.position = valueOfEs1 
    test.visible = true; 
} 
if (clickPuzzles.click2){ 
     test.position = valueOfEs2 
    test.visible = true; 
} 
} 

Спасибо за вашу помощь


EDIT

Спасибо за вас советы.

Вот что я сделал:

private function onEmptySpaceClicked(e:MouseEvent):void{ 
      trace("click on it neww"); 
var myVar = e.currentTarget.name; 
      var valXes1; 
      var valYes1; 
      var valXes2; 
      var valYes2; 
     if (e.currentTarget.name == "ES1"){ 
      trace("il faut écouter emplacement"); 
      clickPuzzles.click1 = true; 
      valXes1 = e.currentTarget.x; 
         valYes1 = e.currentTarget.y; 
      trace(valXes1); 
        } 
      if (e.currentTarget.name == "ES2"){ 
      trace("il faut écouter emplacement VARI"); 
      trace("puzzle2 est vrai"); 
      clickPuzzles.click2 = true; 
      valXes2 = e.currentTarget.x; 
         valYes2 = e.currentTarget.y; 
      trace(valXes2); 
        } 
} 


     public function buildIt(e:MouseEvent):void{ 
      var valXes1; 
      var valYes1; 
      var valXes2; 
      var valYes2; 
if (clickPuzzles.click1){ 
     test.x = valXes1 
     test.y = valYes1 
     test.visible = true; 
} 
if (clickPuzzles.click2){ 
    trace("puzzle2 is called"); 
     test.x = valXes2 
     test.y = valYes2 
     test.visible = true; 
} 
} 

Загадки 2 или 1 хорошо званых, но, кажется, что valXes1 и valXes2 имеют точно такое же значение (valYes1 и valYes2 тоже).

Что я сделал не так?


EDIT 2

Итак, я позиционируется emptyspace и emptyspace 2 так:

  emptyspace .x = 0; 
      emptyspace .y = 0; 

         emptyspace2.x = 50; 
      emptyspace2.y = 50; 

In the function onEmptySpaceClicked 

if (e.currentTarget.name == "ES1"){ 
     trace("il faut écouter emplacement"); 
     clickPuzzles.click1 = true; 
     valXes1 = e.currentTarget.x; 
       valYes1 = e.currentTarget.y; 
     trace(valXes1); 
    } 
if (e.currentTarget.name == "ES2"){ 
     trace("il faut écouter emplacement VARI"); 
     trace("puzzle2 est vrai"); 
     clickPuzzles.click2 = true; 
     valXes2 = e.currentTarget.x; 
       valYes2 = e.currentTarget.y; 
     trace(valXes2); 

the trace(valXes1) is 0 and the trace(valXes2) is 50. 

Так это работает.

НО, в этой функции:

public function buildIt(e:MouseEvent):void{ 
      var valXes1; 
      var valYes1; 
      var valXes2; 
      var valYes2; 
if (clickPuzzles.click1){ 
     test.x = valXes1 
     test.y = valYes1 
     test.visible = true; 
} 
if (clickPuzzles.click2){ 
    trace("puzzle2"); 
     test.x = valXes2 
     test.y = valYes2 
     test.visible = true; 
} 
} 

след ("puzzle2") показывает (хорошо), но тест позиция = на valYes1 и valXes1
(так что "тест" мувиклип является положение не в том месте)

Знаете ли вы, что не так?

ответ

0

да, но вместо

e.currentTarget.x && e.currentTarget.y = valueOfEs1 

вы бы

valXes1 = e.currentTarget.x; 
valYes1 = e.currentTarget.y; 

или создать точечный объект и место х и у в одной точке

import flash.geom.Point; 

es1Point = new Point(); 
es2Point = new Point(); 

es1Point.x = e.currentTarget.x; 
es1Point.y = e.currentTarget.y; 
etc etc ... 
+0

Спасибо! Поэтому ошибок нет, но странно valXes1 и valXes 2 имеют одинаковое значение (0)! Ты знаешь почему ? Я отредактирую свой пост, чтобы показать вам, что я сделал. – user2421975

+0

Нет, вызываются emptyspaces. emptyspace = new Emptyspace (stage, usableItems [0]); addChildAt (emptyspace, 0); – user2421975

+1

им нужно будет находиться на сцене или, по крайней мере, располагаться, прежде чем вы сможете захватить x или y, кроме 0 – InkeyString

Смежные вопросы