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

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

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

Регистрация: Oct 2011
Сообщений: 5
Attention Динамическое создание объектов

Приветствую всех!

Подскажите как динамически создать 30 объектов в цикле и добавить их на сцену? Раньше в 2.0 я делал это через eval(). Но в 3.0 не все так просто. Есть рабочий кусок кода который создает один мувик в который с FMS идет потоковое видео. Мне нужно на экран отобразить 30 разных видео потоков. И соответвенно потом знать как обращаться к каждому мувику..

Код AS3:
nsPlayer = new NetStream(nc);
			nsPlayer.play(flashVars.Str_name);
			vidPlayer = new Video(maxWidth, maxHeight);
			vidPlayer.x = vidPlayer.y = 0; 
			vidPlayer.width = maxWidth;
			vidPlayer.height = maxHeight;
 
			vidPlayer.attachNetStream(nsPlayer);
			PlaybackVideo = new MovieClip()
			PlaybackVideo.x = startBigX;
			PlaybackVideo.y = startBigY
			PlaybackVideo.addEventListener(MouseEvent.CLICK, switchMode);
			PlaybackVideo.addChild(vidPlayer);
			addChild(PlaybackVideo);

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Как-то
Код AS3:
var videos:Array = []; /* of Video */
var quantity:int = 30;
 
nsPlayer = new NetStream(nc);
 
for (var i:int=0; i<quantity; ++i) {
  var temp:Video = new Video(maxWidth, maxHeight);
      temp.x = 0;
      temp.y = maxHeight * i;
      temp.attachNetStream(nsPlayer);
      temp.addEventListener(MouseEvent.CLICK, switchNode);
  videos.push(temp);
  addChild(temp);
}
 
nsPlayer.play(flashVars.Str_name);
Дальше к видео можно обращаться так:

Код AS3:
Video(videos[i]).x = 10;
Video(videos[i]).y = 10;
__________________
adobe AS3 manual


Последний раз редактировалось strangedk; 31.01.2013 в 19:50.
Старый 31.01.2013, 19:38
fanilx вне форума Посмотреть профиль Отправить личное сообщение для fanilx Найти все сообщения от fanilx
  № 3  
Ответить с цитированием
fanilx

Регистрация: Oct 2011
Сообщений: 5
Точно! Спасибо. в массиве ссылка на объект..

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вопрос вроде звучал как
Цитата:
отобразить 30 разных видео потоков.
__________________
Reality.getBounds(this);

Старый 31.01.2013, 20:46
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 5  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Пропустил, невнимательно читал. Но автору видимо достаточно добавления массива
__________________
adobe AS3 manual

Старый 31.01.2013, 20:48
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 6  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
отобразить 30 разных видео потоков.
Сомневаюсь что это возможно на обычном десктопе (о ноутбуках, нетбуках и прочем вообще умолчим), безотносительно к flash.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 31.01.2013, 21:27
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 7  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Мы в одном чате делали много потоков сразу, да, тормозило прилично. Но можно делать хитрости в виде обновления видео только при наведении мыши. Или обновлять по таймеру.

Сразу 30 конечно не имеет смысла.
__________________
adobe AS3 manual

Старый 03.02.2013, 22:20
fanilx вне форума Посмотреть профиль Отправить личное сообщение для fanilx Найти все сообщения от fanilx
  № 8  
Ответить с цитированием
fanilx

Регистрация: Oct 2011
Сообщений: 5
С логикой потоков у меня нет проблем. 30 потоков отображаются без тормозов. Разрешение и фпс маленькие + обновление по событиям.

В рамках темы появился еще один вопрос:
Сначала хотел делать комнату для конференции заранее определенную на 30 мест для каждого пользователя, но вспомнил про возможность использования общих объектов SharedObjects. При появлении нового пользователя добавлять всем клиентам его видео..
Делаю так:
Код AS3:
	nc = new NetConnection();
	nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
	nc.connect(flashVars.server);
....
private function onNetStatus(event:NetStatusEvent):void{
	// к серверу конектиться удачно видео приходит..
	so = SharedObject.getRemote("ballPosition", nc.uri, true);
	// вопрос: как то надо заводить этот объект на стороне сервера? 
	//потому как на сервере нет никаких объектов.. что делаю не так?
	trace(so.connect(nc)); // undefined?
	so.addEventListener(SyncEvent.SYNC, syncHandler);
	so.setProperty("x", Math.random());
}
private function syncHandler(event:SyncEvent):void { 
	trace(so.data.x) // тишина сответственно
}
что делаю не так?

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

Теги
fms , видео
Опции темы
Опции просмотра

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

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


 


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


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