Да, изменение размера Sprite делает его исчезающим.Ручная настройка ширины и высоты спрайта работает как масштабирование, и когда на спрайте ничего не нарисовано, оно не будет отображаться (поскольку вы не можете установить масштаб на «ничто»).Если вы хотите, чтобы Sprite имел ширину и высоту, нарисуйте на нем что-нибудь, например, прозрачный прямоугольник:
sprite.graphics.lineStyle(1, 0, 0);
sprite.graphics.drawRect(0, 0, myWidth, myHeight);
Некоторые подробности здесь: http://www.kirupa.com/forum/archive/index.php/t-274593.html
UPD:
var sprite:Sprite = new Sprite;
var loader:Loader = new Loader();
sprite.addChild(loader);
loader.load(new URLRequest("road_01.png"));
Если задать размер спрайта до загрузки изображения, спрайт не будет отображаться.
Решение 1: прослушать событие Complete в загрузчике и установить размер после.
loader.loaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
private function onImageLoaded(event:Event):void
{
// whatever you want to make with sprite
// e.g.
sprite.width = 100;
}
Решение 2: используйте свойства спрайта scaleX
и scaleY
, чтобы изменить его размер:
var sprite:Sprite = new Sprite;
var loader:Loader = new Loader();
sprite.addChild(loader);
loader.load(new URLRequest("road_01.png"));
sprite.scaleX = 0.5;