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

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

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

Регистрация: Oct 2007
Сообщений: 3
По умолчанию В одной флешке в двух окнах один и тот же flv-ролик

У меня есть один flv-файл. Есть флешка на AS3, внутри которой созданы 2 объекта, которые через NetStream скачивают и проигрывают этот flv-ролик. То есть 2 NetStream'а обращаются к одному и тому же ролику.
Нужно чтобы на экране в одной флешке играло в двух окнах один и тот же ролик!!!

Фишка в том, что кэш почему-то не работает... и ролик одновременно в двух потоках не грузится... то есть второй поток начинает его грузить С НУЛЯ после того, как его скачает первый поток...
Подскажите, пожалуйста, как можно справиться с такой проблемой?

Старый 11.03.2008, 23:43
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 2  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
было бы прикольно если бы можно было отрисовывать видео в мувике.
А возможно ли это?

Старый 12.03.2008, 02:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
У меня работает нормально =/ только не нужно 2 стрима. 1 и аттачить его к разным видео.
__________________
Hell is the possibility of sanity

Старый 12.03.2008, 09:09
debacle вне форума Посмотреть профиль Отправить личное сообщение для debacle Найти все сообщения от debacle
  № 4  
Ответить с цитированием
debacle

Регистрация: Oct 2007
Сообщений: 3
Цитата:
У меня работает нормально =/ только не нужно 2 стрима. 1 и аттачить его к разным видео.
Как работает? Делаю, например, вот так вот:

Код:
package {
    import flash.display.Sprite;
    import flash.events.NetStatusEvent;
    import flash.events.SecurityErrorEvent;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.Event;

    public class NetConnectionExample extends Sprite {
        private var videoURL:String = "1.flv";
        private var connection:NetConnection;
        private var stream:NetStream;

        public function NetConnectionExample() {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Stream not found: " + videoURL);
                    break;
            }
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function connectStream():void {
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            var video1:Video = new Video();
            video1.attachNetStream(stream);
            var video2:Video = new Video();
            video2.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video1);
            addChild(video2);
            video2.x = 200;
            video2.y = 200;
        }
    }
}

class CustomClient {
    public function onMetaData(info:Object):void {
    }
    public function onCuePoint(info:Object):void {
    }
}
Ну то есть, 1 стрим, аттачу его к двум видео. На экране отображается только то видео, которое было приаттачено последним (ну то есть video2). Первое не отображается!!!

Старый 12.03.2008, 12:10
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 5  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
У меня тоже показывает только последнее. В чем причина?
(на ас2 один стрим можно было аттачить к нескольким видео)

Пробовал ФЛВшки со звуком и без

Старый 12.03.2008, 12:18
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
/**
* ...
* @author wvxvw
* @version 0.1
*/

package controller.ut {

	import flash.events.Event;
	import flash.events.NetStatusEvent;
	import flash.events.AsyncErrorEvent;
	import flash.events.EventDispatcher;
	import flash.net.NetConnection;
    import flash.net.NetStream;
	
	import controller.evt.EventList;
	import controller.evt.NCCevt;
	
	public class ULvideoconnector extends EventDispatcher {
		
		private var nc:NetConnection;
		private var url:String = '';
		private var ns:NetStream;
		
		public function ULvideoconnector() {
			url = '';
		}
		
		public function connect(s:String) {
			url = s;
			nc = new NetConnection();
			nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
			nc.connect(null); //url
		}
		
		private function netStatusHandler(evt:NetStatusEvent):void {
			if (evt.info.code == "NetConnection.Connect.Success") {
               ns = new NetStream(nc);
			   ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
			   ns.addEventListener(NetStatusEvent.NET_STATUS, msStatusHandler);
			   dispatchEvent(new NCCevt(EventList.VIDEO_READY, ns, url));
			   ns.play(url);
			}
		}
		private function asyncErrorHandler(evt:AsyncErrorEvent):void { };
		
		private function msStatusHandler(evt:NetStatusEvent):void {
			trace(evt.info.code); 
		}
		
	}
	
}
import controller.evt.EventList; - Тут просто перечислены названия ивентов.
import controller.evt.NCCevt; - Это ивент содержащий ссылку на стрим, его получают сразу несколько инстансов видео.
Все вроде играет...
__________________
Hell is the possibility of sanity

Старый 12.03.2008, 12:47
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 7  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Интереснее знать почему приведенный пример не работает

Старый 12.03.2008, 14:25
debacle вне форума Посмотреть профиль Отправить личное сообщение для debacle Найти все сообщения от debacle
  № 8  
Ответить с цитированием
debacle

Регистрация: Oct 2007
Сообщений: 3
Цитата:
Все вроде играет...
хм... странно... у меня опять же играет то видео, которое приаттачено последним...
Я сделал так:
Код:
public class Main extends MovieClip
{
	public function Main()
	{
		var c : ULvideoconnector = new ULvideoconnector();
		c.addEventListener(NCCevt.VIDEO_READY, videoReadyHandler);
		c.connect("1.flv");
	}
	
	private function videoReadyHandler(event : NCCevt) : void
	{
		var video1:Video = new Video();
		var video2:Video = new Video();
		video1.attachNetStream(event.netStream);
		video2.attachNetStream(event.netStream);
		addChild(video1);
		addChild(video2);
		video1.x = 100;
		video1.y = 100;
		video2.x = 200;
		video2.y = 200;
	}
}
Может я что-то делаю не так??


Последний раз редактировалось debacle; 12.03.2008 в 14:28.
Старый 12.03.2008, 18:54
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, ей богу... я не знаю =( У меня чуть по-сложнее структура, но принцип точно такой же...
Может нельзя 2 объекта видео в одном родителе с одинаковыми стримами? Бред конечно... но никаких предположений больше нет... Проeкт дома, сейчас не получится потестить. Самое смешное, я даж не думал, что в этом есть проблема, как написал, так и работало %)
__________________
Hell is the possibility of sanity

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

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

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


 


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


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