
Код AS3:
package
{
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.LoaderInfo;
import flash.display.Loader;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
public class Main extends Sprite
{
private var _game_width:int = 800;
private var _game_height:int = 600;
private var _loader:Loader;
private var _url_request:URLRequest;
private var _progress_bar:Shape;
private var _progress_bar_line:Sprite;
private var _movie:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
//Защита от ресайза
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
//Загружаем игрушку
_url_request = new URLRequest("адрес swf");
_loader = new Loader();
_loader.load(_url_request);
_loader.contentLoaderInfo.addEventListener(Event.OPEN, onOpenLoader);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressLoader);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
//отрисовываем контейнер прогресс-бара
private function onOpenLoader(evt:Event):void {
_progress_bar = new Shape();
_progress_bar.graphics.beginFill(0x00ffff, 1);
_progress_bar.graphics.drawRect((game_width-300)/2, (game_height-50)/2, 300, 50);
_progress_bar.graphics.endFill();
addChild(_progress_bar);
}
//отрисовываем прогресс-бар
private function onProgressLoader(evt:Event):void {
if (_progress_bar_line != null) {
removeChild(_progress_bar_line);
}
_progress_bar_line = new Sprite();
_progress_bar_line.graphics.beginFill(0xff00ff, 1);
_progress_bar_line.graphics.drawRect((game_width - 300) / 2, (game_height - 50) / 2, (300 * _loader.contentLoaderInfo.bytesLoaded / _loader.contentLoaderInfo.bytesTotal), 50);
_progress_bar_line.graphics.endFill();
addChild(_progress_bar_line);
}
//удаляем прогресс-бар, отображаем игрушку, освобождаем ресурсы
private function onLoaderComplete(evt:Event):void {
removeChild(_progress_bar);
removeChild(_progress_bar_line);
_progress_bar = null;
_progress_bar_line = null;
_url_request = null;
//_loader.width = _game_width;
//_loader.height = _game_height;
_movie = Sprite(_loader.content);
_loader = null;
addChildAt(_movie, 0);
};
//геттеры
public function get game_width():int
{
return _game_width;
}
public function get game_height():int
{
return _game_height;
}
}
}
Проблема собственно в функциях

Код AS3:
//отрисовываем контейнер прогресс-бара
private function onOpenLoader(evt:Event):void {
_progress_bar = new Shape();
_progress_bar.graphics.beginFill(0x00ffff, 1);
_progress_bar.graphics.drawRect((game_width-300)/2, (game_height-50)/2, 300, 50);
_progress_bar.graphics.endFill();
addChild(_progress_bar);
}
//отрисовываем прогресс-бар
private function onProgressLoader(evt:Event):void {
if (_progress_bar_line != null) {
removeChild(_progress_bar_line);
}
_progress_bar_line = new Sprite();
_progress_bar_line.graphics.beginFill(0xff00ff, 1);
_progress_bar_line.graphics.drawRect((game_width - 300) / 2, (game_height - 50) / 2, (300 * _loader.contentLoaderInfo.bytesLoaded / _loader.contentLoaderInfo.bytesTotal), 50);
_progress_bar_line.graphics.endFill();
addChild(_progress_bar_line);
}
Мне нужно отрисовать объект а потом изменять его ширину. Не получается - при изменениее ширины

Код AS3:
_progress_bar_line.width += 1
объект вовсе пропадает. Нужно создать объект и изменять его, а не перерисовывать его каждый раз как я это делаю. Хэлпните, если сможете.