У меня есть большой SWF-файл, загружаемый родительским SWF, и я хотел бы начать воспроизведение загружаемого фильма, допустим, когда он будет заполнен на 50%. Согласно моей ожидаемой полосе пропускания пользователя и размеру моего фильма, я рассчитываю лучший момент для этого (пленка может быть загружена на 20%, 30% или 50%). Я хочу оставить пользователей в ожидании минимума, и мне не нужно ждать, пока моя вспышка будет на 100%.Flash - как начать воспроизведение загружаемой SWF-пленки до ее завершения?
Хорошо, это сказало, вот в чем проблема. Я нахожусь в ActionScript 3. У меня есть один фильм, загружающий другой, и я хочу предвидеть загрузку загруженного фильма. У меня есть функция onProgressHandler (mProgress: ProgressEvent) (с прослушивателем, запущенным ProgressEvent.PROGRESS), и у меня есть регулярная функция onLoadComplete (e: Event) (со слушателем, запущенным Event.COMPLETE). Я мог проверить на 20%, завершенный во время моего обычного onProgressHandler. Но затем, когда я определил, что этот момент был достигнут, как я могу предвидеть запуск фильма? Я имею в виду, что обработчик Event.COMPLETE передает e: Event, и я могу использовать e.target для загрузки загруженного объекта в свой фильм. Но что произойдет, если я хочу начать этот процесс до его завершения? Я не могу передать это e: Событие, потому что обработчик COMPLETE еще не запущен ...
Одна важная вещь, чтобы сказать. Пленка, которая загружается, почти пуста. Это очень легкий. Тяжелая пленка загружается, и я хочу, чтобы этот фильм загружался в клип в моем фильме до того, как он завершил загрузку. Это возможно?
Надеюсь, я убедился. Если я этого не сделаю, я попытаюсь объяснить дальше.
Любая помощь будет очень оценена. Огромное спасибо.
Хорошо, я понимаю, и я делаю более или менее. Я сомневаюсь: как я могу ссылаться на тот же материал, который был бы с Event.COMPLETE, прежде чем достигнуть его? Мне нужно e: Событие, которое содержит загруженный фильм, чтобы сделать что-то вроде следующего: var loaderInfo: LoaderInfo = e.target как LoaderInfo; var loaded_swf = e.target.content; loaded_swf.x = 50; loaded_swf.y = 50; mc_control.addChild (loaded_swf); –
@Marcos Buarque. Loader - это DisplayObject. У вас уже есть ссылка на него; если вы не храните загрузчик как временную шкалу или переменную класса, чтобы получить доступ к ней из обработчика событий. Таким образом, вы можете добавитьChild вместо содержимого. Вы также можете изменить его 'x,' y', 'width' и т. Д. Для большинства целей это то же самое, что и изменение самого содержимого, за исключением того, что вам не нужно ждать, пока он будет загружен. –
ваша функция анализирует аргумент типа события (для всего события), но на самом деле вы можете принять любое событие. Я думаю, что ProgressEvent распространяется от Event, поэтому ваша функция может быть такой: onProgressEvent (event: Event): void { if (enoughLoaded) { onComplete (event); } } – Garrt