AS2: нет видео с netstream, только аудио

Так что у меня проблема с AS2 при загрузке видео netstream.

my_vid = _root.createEmptyMovieClip("my_vid", _root.getNextHighestDepth());
var video:Video = new Video();
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
my_vid.attachVideo(video);

and later 
ns.play("http://localhost/video.mp4");

Я на самом деле могу слушать аудио в фоновом режиме, но по какой-то причине я не вижу изображения. Я попробовал с видео только без мувиклипа, а наоборот и продолжаю слушать только аудио.

Я определенно делаю что-то не так, но что?

1 ответ

Ваша проблема в том, что вы никогда не прикрепляете видео объект к сцене. Эта линия my_vid.attachVideo(video); ничего не делает, потому что MovieClip не имеет метода с именем attachVideo,

Вам нужно создать видео объект в вашей библиотеке и добавить его на сцену. Для этого выполните следующие действия в IDE:

  1. Нажмите стрелку в правом верхнем углу панели libray и выберите New Video... из выпадающего списка.
  2. В диалоговом окне выберите Video (ActionScript-controlled) переключатель и нажмите кнопку ОК.
  3. Перетащите только что созданный видеообъект на сцену и присвойте ему имя экземпляра (например, myVideo).
  4. Выберите ваш видеообъект на сцене и нажмите F8, чтобы создать из него новый символ.
  5. Установите для символа тип MovieClip, установите флажок "Экспорт для ActionScript" и укажите идентификатор (например, videoContainer), затем нажмите ОК.
  6. Удалите символ со сцены, сохранив его в библиотеке.

Теперь у вас есть элемент в вашей библиотеке, который вы можете прикрепить с помощью кода, который уже содержит видеообъект, готовый к работе. Ваш код должен быть изменен следующим образом, при условии, что вы использовали те же имена, что и я выше.

//attach the container from the library
my_vid = _root.attachMovie("videoContainer", "my_vid" _root.getNextHighestDepth());
//create a reference to the video object inside the container
var video:Video = my_vid.myVideo;
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
//
// ...
//
ns.play("http://localhost/video.mp4");
Другие вопросы по тегам