Я вырываю волосы. У меня есть эта чрезвычайно странная ошибка:
У меня есть собственный класс "StagedSprite", который расширяет Sprite. Его цель - автоматически выравниваться по границе сцены при каждом изменении размера сцены.
СЕЙЧАС, я загружаю PNG-файл "ybmp" (Bitmap) и добавляю его как дочерний элемент в "loadingIcon" (StagedSprite). В Flash CS5 PNG правильно отображается на экране (тоже выровнено). Но если я опубликую и запускаю SWF из Firefox или IE, PNG НЕ ПОКАЗывается!
Что даже БОЛЬШЕ странно то, что выдает следующий код:
//var ybmp:Bitmap = the loaded bitmap
//loadingIcon is a StagedSprite
loadingIcon.addChild(ybmp);
trace(ybmp.bitmapData.width,ybmp.bitmapData.height);
trace(ybmp.width,ybmp.height);
trace(loadingIcon.width,loadingIcon.height,loadingIcon.getChildAt(0),loadingIcon.stage);
Я поместил результаты «trace» в TextField на экран. В CS5 приведенный выше код выдает:
215 200
215 200
215 200 [object Bitmap] [object Stage]
В Firefox и IE приведенный выше код выдает:
215 200
215 200
0 0 [object Bitmap] [object Stage]
Что это такое?!? В браузерах растровое изображение добавляется в «loadingIcon», но «loadingIcon» по-прежнему имеет нулевую ширину и высоту. ?!?!?
Я мог бы также вставить сюда код StagedSprite, но он немного большой и не имеет свойства scrollRect. В конце концов, что может быть причиной его запуска в инструменте разработки Flash, но НЕ в браузерах? .. *
Заранее большое спасибо,
Bill
РЕДАКТИРОВАТЬ:
Боже мой По какой-то еще невероятной причине для loadIcon были настроены scaleX и scaleY на 0. Но это ONLY в версии для браузера. В моем коде у меня ничего не было, установив его scaleX или scaleY на что-либо, предполагая, что он должен быть установлен в 1 по умолчанию.
У кого-нибудь есть ЛЮБЫЕ предложения, почему в браузерах мой "loadingIcon" имел бы нулевой масштаб, но не в CS5? В обоих случаях это один и тот же код, я проверил это 1000 раз ...