Вы можете связать 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();
}