Как создать объект ActionScript в Haxe - PullRequest
0 голосов
/ 26 марта 2012

Я создаю видеоплеер Actionscript в Haxe и, чтобы избежать asyncError, я пытаюсь создать собственный объект.Как мне это сделать, Хакс?

Свойство client указывает объект, для которого вызываются методы обратного вызова.Объектом по умолчанию является создаваемый объект NetStream.Если вы установите свойство client для другого объекта, методы обратного вызова будут вызываться для этого другого объекта.

Вот мой код.

public function new() 
{
    super();
    trace("video");
    //initialize net stream
    nc = new NetConnection();
    nc.connect(null);
    ns = new NetStream(nc);
    buffer_time = 2;
    ns.bufferTime = buffer_time;

    //Add video to stage
    myVideo = new flash.media.Video(640, 360);
    addChild(myVideo);

    //Add callback method for listeing on NetStream meta data
    client = new Dynamic();
    ns.client = client;
    client.onMetaData = metaDataHandler;


}

public function playVideo(url:String)
{
    urlName = new String(url);
    myVideo.attachNetStream(ns);
    ns.play(urlName);
    ns.addEventListener(NetStatusEvent.NET_STATUS, netstat);
}

function netstat(stats:NetStatusEvent)
{
    trace(stats.info.code);
}

function metaDataHandler(infoObject:Dynamic) 
{
    myVideo.width = infoObject.width;
    myVideo.height = infoObject.height;
}

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Вы, вероятно, должны сделать:

client : Dynamic = {};

0 голосов
/ 01 октября 2012

Это может быть полезно ... http://code.google.com/p/zpartan/source/browse/zpartan/media/ Вы можете видеть, как оно используется http://code.google.com/p/jigsawx/

0 голосов
/ 29 марта 2012

Забыть клиентский объект;это не обязательно для воспроизведения FLV или для обработки асинхронных ошибок.Для этого просто добавьте прослушиватель в NetStream для AsyncErrorEvent.ASYNC_ERROR.

. Я предлагаю вам добавить прослушиватель в NetConnection и NetStream * 1009.* для NetStatusEvent.NET_STATUS, а затем отследить значение event.info.code в приемнике.

Сначала вы должны увидеть строку "NetConnection.Connect.Success", поступающую из NetConnection ;когда вы воспроизводите видео через NetStream , вы должны увидеть «NetStream.Play.StreamNotFound», если есть проблема с загрузкой FLV.В противном случае вы должны увидеть «NetStream.Play.Start».

Если вы не передаете потоковую передачу FLV постепенно, вы можете не увидеть никакого воспроизведения видео, пока файл не загрузится.Если файл фильма длинный, это может объяснить, почему ваша программа работает без ошибок, но не воспроизводит фильм.В Интернете есть небольшие тестовые FLV-файлы, которые вы, возможно, захотите использовать, когда будете отслеживать проблему.

(API воспроизведения FLV в ActionScript причудливый, а документация haXe элементарная, поэтому вы по праву разочарованы.)

...