Ваша проблема в том, что в каждом кадре вы фактически добавляете нового дочернего элемента в список отображения - вы фактически не перемещаете один объект, а загружаете несколько объектов в разных положениях. Вам нужно либо переместить ваш загрузчик в другую функцию, которая не запускается для каждого кадра, либо вам нужно поместить его в блок if, который проверяет, существует он или нет.
Попробуйте это.
import flash.display.MovieClip;
import flash.events.*;
stage.frameRate = 31;
var a =0;
private var myLoader:Loader;
btn111.addEventListener(MouseEvent.CLICK, go);
function go(event:MouseEvent):void
{
this.addEventListener(Event.ENTER_FRAME, drawrect);
function drawrect(evt:Event)
{
if (myLoader == NULL)
{
// Create a new instance of the Loader class to work with
myLoader:Loader=new Loader();
// Create a new URLRequest object specifying the location of the external image file
var myRequest:URLRequest=new URLRequest("logo.png");
// Call the load method and load the external file with URLRequest object as the parameter
myLoader.load(myRequest);
// Add the Loader instance to the display list using the addChild() method
addChild(myLoader);
}
// Position image
myLoader.x = 100;
myLoader.y = a++;
if(a > 50)
{
//removeChild(box);
removeEventListener(Event.ENTER_FRAME, drawrect);
}
}
}
Кроме того, я бы советовал не использовать функции внутри функций (если только вы действительно не знаете, что хотите, чтобы это было так ... но вы, вероятно, не хотите, чтобы это было так).
Удачи.