![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
Есть 3 кнопки. По нажатию на каждую грузится видео.
Мне нужно, чтоб при загрузке ролика сразу грузилось первое видео, тоисть при нажатии на певую кнопку Вот главная функция public function Main() { if(stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); v.addEventListener(Event.COMPLETE, onVideoLoad); // подписываемся на созданное событие загрузки v.loadMoviesXML("Mov.xml"); v.loadMovie(v.loaded[0]); } private function click(event : MouseEvent) : void { switch (event.target) { case btn1: { trace("1->>>>" + v.loaded[0]); v.loadMovie(v.loaded[0]); } break; case btn2: v.loadMovie(v.loaded[1]); trace("2->>>>" + v.loaded[1]); break; case btn3: v.loadMovie(v.loaded[2]); trace("3->>>>" + v.loaded[2]); break; } } } |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 28
|
А покажите, пожалуйста, этот самый код, который добавили в функцию?
|
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
вот
просто добавил код который грузит ролик при нажатии 1 кнопки. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 28
|
скорее всего загвоздка в том, что stage еще нет при при срабатывании этого кода. попробуйте перенести этот код в функцию init, которая запускается при stage==true
|
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
та же ошибка,
11->>>>undefined Load new movie: null TypeError: Error #2007: Параметр url не должен быть равен нулю. at flash.display::Loader/_load() at flash.display::Loader/load() at VideoLoader/loadMovie() at Main/init() at Main() ![]() |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
Понятн, а куда мне тогда этот кусочек кода поставить,
чтоб грузился ролик сразу при загрузке? |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
Ставил в onVideoLoad - ничего не получается.
![]() v экземпляр класса VideoLoader вот код package { import flash.display.Sprite; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.text.*; public class VideoLoader extends Sprite { private var loadStatus : TextField = new TextField(); public var loaded : Array = []; public var loader : Loader = new Loader(); public function VideoLoader() { trace("11->>>>" + loaded[0]); addChild(loader); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMovieLoaded); } private function onMovieLoaded(e : Event) : void { //loaded.push((e.currentTarget as LoaderInfo).content.parent); // parent для AVM1 trace('Movie Loaded #', loaded.length, (e.currentTarget as LoaderInfo).content); dispatchEvent(new Event(Event.COMPLETE)); // создаем событие на загрузку } public function loadMovie(url : String) : void { trace('Load new movie: ', url); loader.load(new URLRequest(url)); } public function loadMoviesXML(xmlUrl : String) : void { trace('Load XML', xmlUrl); var loader : URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onMoviesXMLLoad); loader.load(new URLRequest(xmlUrl)); } private function onMoviesXMLLoad(e : Event) : void { trace('XML loaded'); var xmlData : XML = new XML((e.target as URLLoader).data); var movies : XMLList = xmlData..datname; for (var i : int = 0;i < movies.length();i++) { loaded.push(movies[i].toString()); } // loadMovie(this.loaded[0]); // новая строка } } } |
|
|||||
|
onMovieLoaded срабатывает когда загружено видео (по событию Event.COMPLETE). Т.е. что бы вызвался этот метод, предварительно надо вызвать loadMovie. Если тебе надо автоматом загрузить видео (с событиями ты судя по всему не дружишь) раскомментируй строку // loadMovie(this.loaded[0]); // новая строка в onMoviesXMLLoad.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|