Лично у меня не получилось воспроизвести проблему в чистом проекте.

Код AS3:
package com.zackmercury
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Graphics;
import flash.geom.Point;
import flash.text.TextField;
import flash.utils.getTimer;
/**
* ...
* @author ZackMercury
*/
public class Main extends Sprite
{
private var balls:Array = [];
public function Main()
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event = null):void
{
if (hasEventListener(Event.ADDED_TO_STAGE))
removeEventListener(Event.ADDED_TO_STAGE, init);
//entry
var btn:MyButton = new MyButton("Test");
btn.onClick = addBall;
addChild(btn);
addEventListener(Event.ENTER_FRAME, update);
}
private function addBall(e:MouseEvent):void
{
var bmpDt:BitmapData = new BitmapData(100, 100, true, 0x00000000);
var ball:Shape = new Shape();
with (ball.graphics)
{
beginFill(0xCC9911);
drawCircle(50, 50, 50);
endFill();
beginFill(0xFFAA00);
drawCircle(50, 50, 20);
endFill();
beginFill(0x222222);
drawCircle(50, 50, 5);
endFill();
}
bmpDt.draw(ball);
var bmp:Bitmap = new Bitmap(bmpDt, "auto", false);
addChild(bmp);
balls.push(bmp);
}
private function update(e:Event):void
{
for (var i:int = 0 ; i < balls.length; i ++)
{
balls[i].y = (1 + Math.sin(getTimer() / 1000 + i / 5)) / 2 * 400;
balls[i].x = (1 + Math.cos(getTimer() / 1000 + i / 5)) / 2 * (800 - balls[i].width);
}
}
}
}
Быть может, нужно непрозрачность понизить? Что я не так делаю?