2015-04-27 3 views
0

Я пытаюсь импортировать внешний SWF, используя код ниже:AS3: Как изменить размер внешнего загруженного SWF?

var r:URLRequest = new URLRequest("movie.swf"); 
var imageLoader:Loader = new Loader(); 

imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); 

imageLoader.load(r); 
addChild(imageLoader); 

function onLoadComplete(e:Event):void 
{ 
    imageLoader.width = 100; 
    imageLoader.height = 75; 

} 

При попытке изменить размер, внешний фильм исчезает. Где я ошибаюсь?

ответ

0

я нашел решение, которое работало для меня, поместив загруженную фильм внутри контейнера и изменение размеров самого контейнера вместо того, изменение размера загрузчика ,

1

Попробуйте Event.INIT вместо этого. Некоторые вещи доступны в Event.COMPLETE, а некоторые в другом, несмотря на то, что порядок их появления исправлен, что предполагает, что все возможно в более позднем, но это не так.

As per comment, I dug out an old link explaining the matter.

Очень похожее событие в Event.COMPLETE является Event.INIT которого срабатывает, когда внешний актив готов к использованию, полностью ли загружен или нет. Например, очень немногие кадры внешнего SWF могут быть готовы для отображения до того, как весь файл будет загружен, поэтому вам может понадобиться сделать что-то с этими кадрами, пока вы хотите, чтобы остальная часть фильма загружалась. С другой стороны, некоторые файлы могут быть полностью загружены, но еще не инициализированы, так как инициализация может занять второй или два после завершения процесса загрузки файла, так что вы можете подождать, пока этот файл будет готов для прежде чем пытаться использовать этот актив.

Я знаю what the documentation of the init событие говорит:

Событие INIT всегда предшествует полное событие.

Итак, все должно быть доступно в том случае, если последний уволен, правда? Согласно опыту, это не так. Время и время, снова меняя одно событие на другое, решают проблему, которая всегда была аналогична заданной в этом вопросе.

Первое звено также указать это, самое непосредственное отношение к этому вопросу:

Event.INIT обычно используется при попытке извлечь ширину и высоту изображения, когда он закончит загружен. Такое свойство недоступно сразу, когда файл заканчивает загрузку, поэтому попытка восстановить эти свойства с использованием Event.COMPLETE не удалась, вместо этого следует использовать Event.INIT.

+0

Как и что? Что вы не можете сделать в полном объеме, что вы можете сделать в init? – BotMaster

+0

@BotMaster ширина и. Высота в зависимости от этого вопрос по крайней мере. Я отредактировал свой ответ, чтобы предоставить дополнительную информацию. – null

0

Попробуйте вместо ширины и высоты, используя ScaleY и ScaleY:

imageLoader.scaleX = 0.5; // 50% 
imageLoader.scaleY = 0.3; // 30% 
Смежные вопросы