as3 движущееся изображение от одного mc к другому - PullRequest
0 голосов
/ 23 октября 2011

С помощью приведенного ниже кода я создал несколько imgMcA и несколько imgMcB, а затем загрузил изображения в imgMcA.ImgMcBs не имеют изображения в данный момент.Таким образом, если щелкнуть один из imgMcA, изображение должно быть передано в один из пустых imgMcB (может быть случайным образом), а если щелкнуть imgmcB позже, изображение должно вернуться к своему imgMcA назад.Я не мог узнать, как я могу это сделать.

Заранее спасибо

 function imageList(mcname, img, index){

    var imgMcA:MovieClip=new MovieClip();
    imgMcA.graphics.beginFill(0x000000);
    imgMcA.graphics.drawRect(0,0,imgWidth,imgHeight);
    imgMcA.graphics.endFill();
    imgMcA.name=lemma;
    imgMcA.addEventListener(MouseEvent.CLICK, moveImage);


    var imgMcB:MovieClip=new MovieClip();
    imgMcB.graphics.beginFill(0x000000);
    imgMcB.graphics.drawRect(0,0,imgWidth,imgHeight);
    imgMcB.graphics.endFill();
    imgMcB.name=index;
    addChild(imgMcB);


    var imgLoader:Loader = new Loader();
    imgLoader.load(new URLRequest(img));
    imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, changeProperties);
    imgLoader.mouseEnabled=false;
    imgMcA.addChild(imgLoader);

  }

  function moveImage(evnt:MouseEvent){

  }

1 Ответ

0 голосов
/ 23 октября 2011

Вы можете связать mcA и mcB, добавив их к тому же родителю.

function createBlock():void
{
   var imgLoader:Loader = new Loader();
   //add the loading code here...

   var mcA:Sprite = new Sprite();
   var mcB:Sprite = new Sprite();
   // add Click event listeners for both Mcs here...

   var parent:Sprite = new Sprite();

   //add Children
   parent.addChild(mcA);
   parent.addChild(mcB);
   addChild(parent);
}

function mouseClickHandler(event:MouseEvent)
{
    var dispatcher:Sprite = event.currentTarget as Sprite;

    //if you added a Loader to it
    if( dispatcher.numChildren > 0)
    {
        //retrieve the image
        var img:Loader = dispatcher.getChildAt(0);

        //identify the parent
        var parent:Sprite = dispatcher.parent;

        var index:int = parent.getChildIndex(dispatcher);

        //identify the receiving MC
        //of course this only works with two children!!!
        if(index > 0)
            var receiver:Sprite = parent.getChildAt(0) as Sprite;
        else
            receiver = parent.getChildAt(1) as Sprite;

        //add the image to the other MC 
        receiver.addChild(img); 

    }
}

Остальное не слишком сложно для достижения. Вам нужно будет использовать логическое значение и добавить TextField. Если TextField содержит текст, установите для логического значения значение true.

Возможно, стоит взглянуть на классы, или вы можете использовать объект в качестве контейнера для мувиклипов, TextField и логического значения, хотя класс даст вам больше гибкости ...

С классом вам не придется повторяться, чтобы найти, что и для чего. Ваш слушатель Click будет выглядеть примерно так:

private function mouseClickHandler(event:MouseEvent)
{
   receiver.addChild( image );
   if( hasText)
    imageReturn(); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...