Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.09.2008, 13:34
vigor вне форума Посмотреть профиль Отправить личное сообщение для vigor Найти все сообщения от vigor
  № 1  
Ответить с цитированием
vigor

Регистрация: Aug 2007
Сообщений: 34
По умолчанию Загрузка и проигрывание нескольких мувиков одновременно

Люди, нужна помощь!!!!

Мне необходимо сделать флэшку, которая бы в зависимости от количества параметров, передающихся через flashvars, открывала столько же FLVPlayback компонентов, в каждый из которых бы загружался свой flv-клип (адреса так же передаются через flashvars). Более того, необходимо сделать общее для них управление (тоесть play, stop, etc...). Ктонить знает как это проще всего реализовать?

Я попробовал через цикл по кол-ву мувиклипов:

Код:
var skinLocation:String = "file:///C:/Program Files/Macromedia/Flash 8/en/Configuration/Skins/ClearOverPlaySeekMute.swf";
var my_array:Array = (_level0.moviesArray).split(",");

for (var i = 0; i < array.length; i++) {
	_root.attachMovie("FLVPlayback", "my_player"+i, 10, {width:320, height:240, x:i*320, y:0, skinAutoHide:true, skin:skinLocation, contentPath:(1+1)+".flv"});
}
но он добавляет лишь один проигрыватель...

Еще одна проблема, это как потом к этим проигрывателям обращаться для того, чтобы сделать общее управление? Можно бы было по нажатию на клавишу допустим пробегать циклом по всем этим проигрывателям, но для этого нужно как то в цикле обращаться к каждому из них, а так как имена генерируются динамически при добавлении их в мувик, то я не вижу способа обращаться к ним в цикле....

Жду ваших предложений, идей, чего угодно!!!

Старый 05.09.2008, 18:28
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 2  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
в проблеме не разобрался до конца, но в Вашем коде есть несколько ошибок
Код:
var skinLocation:String = "file:///C:/Program Files/Macromedia/Flash 8/en/Configuration/Skins/ClearOverPlaySeekMute.swf";
var my_array:Array = (_level0.moviesArray).split(",");

for (var i = 0; i < array.length; i++) {
	_root.attachMovie("FLVPlayback", "my_player"+i, 10, {width:320, height:240, x:i*320, y:0, skinAutoHide:true, skin:skinLocation, contentPath:(1+1)+".flv"});
}
т.е непонятно какого массива берется длина, имена свойств в должны быть с подчеркиванием как и в написании их при обычных условиях, для всех образцов
задается одно и то же видео 2.flv

а в цикле потом можно обратится к каждому элементу
как _root["my_player"+i]
__________________
trace("Остановите Землю, я сойду!!!");

Старый 05.09.2008, 19:06
vigor вне форума Посмотреть профиль Отправить личное сообщение для vigor Найти все сообщения от vigor
  № 3  
Ответить с цитированием
vigor

Регистрация: Aug 2007
Сообщений: 34
Большое спасибо за ответ, особенно за "_root["my_player"+i]"!!!. По поводу ошибок, это я просто по быстрому набрал, поэтому допустил некоторые неточности, в приложении код правильный.
Код:
var skinLocation:String = "file:///C:/Program Files/Macromedia/Flash 8/en/Configuration/Skins/ClearOverPlaySeekMute.swf";
var my_array:Array = (_level0.moviesArray).split(",");

for (var i = 0; i < my_array.length; i++) {
	this.attachMovie("FLVPlayBack", "player_"+i, 10, {width:320, height:240, x:i*320, y:0, contentPath:my_array[i], skin:skinLocation, skinAutoHide:true, autoPlay:false});
}
Основная проблема в том, что он не создает для каждого мувика свой проигрыватель. Я пошагово пробежал, он на каждом шаге цикла создает проигрыватель, а на последующем предыдущий проигрыватель удаляется, а новый создается. Может тут дело в attachMovie?

Старый 05.09.2008, 19:33
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Конечно, vigor, Вы же аттачите все плейбеки на одну глубину 10. Поэтому каждый новый выносит предыдущий)
И исправьте то на что указал Mur4ik - width и height пишутся в АС2 с подчеркиванием: _width, _height.
Стало быть, функция аттача будет выглядеть гдето так:
Код:
for (var i = 0; i < my_array.length; i++) {
	this.attachMovie("FLVPlayBack", "player_"+i, 10+i, {_width:320, _height:240, _x:i*320, _y:0, contentPath:my_array[i], skin:skinLocation, skinAutoHide:true, autoPlay:false});
}
__________________
Reality.getBounds(this);

Старый 05.09.2008, 19:34
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 5  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
проблема в том что Вы аттачите все FLVPlayBack на одну глубину "10"

измените Ваш код вот так:
Код:
var skinLocation:String = "file:///C:/Program Files/Macromedia/Flash 8/en/Configuration/Skins/ClearOverPlaySeekMute.swf";
var my_array:Array = (_level0.moviesArray).split(",");

for (var i = 0; i < my_array.length; i++) {
	this.attachMovie("FLVPlayBack", "player_"+i, this.getNextHighestDepth(), {_width:320, _height:240, _x:i*320, _y:0, contentPath:my_array[i], skin:skinLocation, skinAutoHide:true, autoPlay:false});
}
и всё заработает...
__________________
trace("Остановите Землю, я сойду!!!");


Последний раз редактировалось Mur4ik; 05.09.2008 в 19:42.
Старый 05.09.2008, 19:35
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 6  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
упс, опоздал
__________________
trace("Остановите Землю, я сойду!!!");

Старый 05.09.2008, 19:48
vigor вне форума Посмотреть профиль Отправить личное сообщение для vigor Найти все сообщения от vigor
  № 7  
Ответить с цитированием
vigor

Регистрация: Aug 2007
Сообщений: 34
Вот чиорт... у меня просто нет слов... ВСЕМ большое спасибо!

По поводу width, height, x, y, то если я не ошибаюсь в спецификации эти свойства для этого компонента пишутся без нижних подчеркиваний. хотя работают оба варианта.

Но это все мелочи, по сравнению с тем как я лопухнулся с глубиной...8(( Еще раз всем огромное спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.