![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
Загрузка нескольких swf через XML и заброс ссылок на элементы в массив - соственно ищу пример, а то начал сам клепать, че т не оч выходит?
Пасиб. |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
var loaded:Array = []; public function loadMovie(url:String):void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMovieLoaded); loader.load(new URLRequest(url)); } public function onMovieLoaded(e:Event):void { loaded.push((e.currentTarget as LoaderInfo).content); } |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
Че т я неправильно делаю..
![]() Цитата:
<?xml version="1.0"?> <mover> <mov id="1"> <datname>Soviet.swf</datname> <autname>Сталин</autname> <movname>Взрыв атомной бомбы Soviet</movname> </mov> <mov id="2"> <datname>Trinity.swf</datname> <autname>Neo</autname> <movname>Взрыв атомной бомбы Trinity</movname> </mov> <mov id="3"> <datname>Underwater.swf</datname> <autname>Водная бомбочка</autname> <movname>Взрыв атомной бомбы Underwater</movname> </mov> </mover> Последний раз редактировалось Killer_13; 09.12.2009 в 02:40. |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
|
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
воть...
не идет.. package { import flash.display.*; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.*; import flash.events.*; import flash.events.ProgressEvent; public class VideoLoader extends Sprite { private var loadStatus:TextField = new TextField(); public var loaded:Array = []; public function VideoLoader(nr:int) { trace("Mov1 -> "+nr); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMovieLoaded); loader.load(new URLRequest("mov.xml")); } function onMovieLoaded(e:Event):void { loaded.push((e.currentTarget as LoaderInfo).content); trace("Mov ID -> ", loaded[loaded.length - 1]); } } } |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
ладненько...
то что я выложил - это половина программы, отвечающая за загрузку одного мувиклипа - все что нужно было это загрузить xml и выдрав из него ссылки на мувики отправить их на функцию loadMovie вот расширенный код.. для загрузки xml... public function loadMoviesXML(xmlUrl:String):void { var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onMoviesXMLLoad); loader.load(new URLRequest(xmlUrl)); } private function onMoviesXMLLoad(e:Event):void { var xmlData:XML = new XML((e.target as URLLoader).data); var movies:XMLList = xmlData..datname; for (var i:int = 0; i < movies.length(); i++) { loadMovie(movies[i].toString()); } } |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
неизвесный метод "loadMovie" |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
да епрст...
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; public class VideoLoader extends Sprite { private var loadStatus:TextField = new TextField(); public var loaded:Array = []; public function VideoLoader() { loadMoviesXML("mov.xml"); } public function loadMovie(url:String):void { trace('Load new movie: ', url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMovieLoaded); loader.load(new URLRequest(url)); } private function onMovieLoaded(e:Event):void { loaded.push((e.currentTarget as LoaderInfo).content); trace('Movie Loaded #', loaded.length, (e.currentTarget as LoaderInfo).content); } 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++) { loadMovie(movies[i].toString()); } } } } |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 302
|
Ура! Пас! Работает.
Сейчас наверное глупый еще один вопрос задам... Из другого класса хочу вызвать произвольное видео из массива. соответственно создю экземпляр этого класса и обращаюсь к элементу массива, - потом ложу в контейнер, ... опять че т не так... ![]() Последний раз редактировалось Killer_13; 09.12.2009 в 03:51. |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
немного исправляем VideoLoader
public function VideoLoader () { } private function onMovieLoaded(e:Event):void { loaded.push((e.currentTarget as LoaderInfo).content); trace('Movie Loaded #', loaded.length, (e.currentTarget as LoaderInfo).content); dispatchEvent(new Event(Event.COMPLETE)); // создаем событие на загрузку } public var v:VideoLoader = new VideoLoader; public function Main(){ v.addEventListener(Event.COMPLETE, onVideoLoad); // подписываемся на созданное событие загрузки v.loadMoviesXML("mov.xml"); } private function onVideoLoad(e:Event):void { v.removeEventListener(Event.COMPLETE, onVideoLoad); var video:DisplayObject = v.loaded[0]; // массивы начинаются с ноля! addChild(video); video.x = 160; video.y = 50; } |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|