Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   netConnection(); (http://www.flasher.ru/forum/showthread.php?t=127729)

LUCKY SHAMROCK 22.07.2009 00:19

netConnection();
 
Спасибо что тему прикрили переспрашиваю заного..

Код AS1/AS2:

var file = dataObject.path+dataObject.modelName+"_Welcome.flv";
_global.f = file;
var connection:NetConnection = new NetConnection();
connection.connect(null);
var streaming:NetStream = new NetStream(connection);
 
main = function () {
                my_video.attachVideo(streaming);
                streaming.play(_global.f);
                streaming.pause(true);
                streaming.onStatus = function(getObjects:Object):Void  {
                if (getObjects.code == "NetStream.Play.Start") {
                        streaming.pause(false);
                        delete streaming.onStatus;
                }
                trace(getObjects.code);
                streaming.onMetaData = function(meta:Object):Void  {
                                duration = meta.duration;
                                trace(duration);
                }
                checkEnd = setInterval(this, "checkEndStatus", 100);
                function checkEndStatus() {
                        trace(streaming.time); // вот в функции не хочет проигриватца интервал.. почему?
 
                        if (streaming.time >= duration) {
                        clearInterval(checkEnd);
                        }
                }
        }
}

вообшем в коде више у меня не срабативает setInterval.. тоесть не трассирует.. где ошибка?

dimarik 22.07.2009 00:24

ошибка в setInterval, this. Ведь функция checkEndStatus анонимна и не находится в области видимости this. Вынесите её за пределы main.

LUCKY SHAMROCK 22.07.2009 01:13

Димарик да я знаю что она работает вне main но вот и хотел чтоби она работала именно в main.. потому что у меня 5 будет таких контейнеров.. нуда ладно я попробую иначе сделать, а вот что касаетца етих строк:

Код AS1/AS2:

if (getObjects.code == "NetStream.Play.Start") {
                        streaming.pause(false);

ето означает что клип бил полностю загружен в контейнер и его можна проигривать не так ли? но почему то когда тестирую на сервере то бивает клип прериваетца что должно значить клип не бил полностю загружен??

DarkLight 22.07.2009 01:20

Start = скачалось время, равное длине буфера нетстрима. По умолчанию это секунда насколько я помню. Специфического события 100% загрузки у потока нет, можно самому на медиасервере дописать при желании.

LUCKY SHAMROCK 22.07.2009 01:35

спасибочки.. а из за чего может приторможение битй клипов? ето нормальное явление? мне кажетца у меня много естй оперативной системы время:

Код AS1/AS2:

counter = function () {
        start_time = getTimer();
        countdown = 60000;
        onEnterFrame = function () {
                elapsed_time = getTimer()-start_time;
                timer.mytf.htmlText = time_to_string(countdown-elapsed_time);
        };
        function time_to_string(time_to_convert) {
                elapsed_hours = Math.floor(time_to_convert/3600000);
                remaining = time_to_convert-(elapsed_hours*3600000);
                elapsed_minutes = Math.floor(remaining/60000);
                remaining = remaining-(elapsed_minutes*60000);
                elapsed_seconds = Math.floor(remaining/1000);
                remaining = remaining-(elapsed_seconds*1000);
                elapsed_fs = Math.floor(remaining/10);
                if (elapsed_hours<10) {
                        hours = "0"+elapsed_hours.toString();
                } else {
                        hours = elapsed_hours.toString();
                }
                if (elapsed_minutes<10) {
                        minutes = "0"+elapsed_minutes.toString();
                } else {
                        minutes = elapsed_minutes.toString();
                }
                if (elapsed_seconds<10) {
                        seconds = "0"+elapsed_seconds.toString();
                } else {
                        seconds = elapsed_seconds.toString();
                }
                if (elapsed_fs<10) {
                        hundredths = "0"+elapsed_fs.toString();
                } else {
                        hundredths = elapsed_fs.toString();
                }
                if (seconds < 10) {
                        trace("ostalosj 10 secund special sound");
                }
                if (seconds < 1) {
                        delete onEnterFrame;
                        return "00:"+'<font color="'+_global.col+'">'+"00"+'</font>'+":00";
                        //return '<font color="'+_global.col+'">'+"time is up"+'</font>';
                        // zdesj scrypt 4to proisxodit posle 60 secund
                }
                return minutes+":"+'<font color="'+_global.col+'">'+seconds+'</font>'+":"+hundredths;
        }
};

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

Добавлено через 2 часа 17 минут
Dimarik вот и моя проблема которую не мог обяснить словами.. сейчас проше понятнее.. работает сетИнтервал для первого видео всё отлична програл.. и идёт проверка как только время сровнялось играет функция лооп и мне необходимо прослидить опять же концовку второго клипа уже.. но когда визиваю в очередной раз сетИнтервал функцию всё виснет.. как мне боротца с етим?

Код AS1/AS2:

var file = dataObject.path+dataObject.modelName+"_Welcome.flv";
_global.currentClip = file;
var connection:NetConnection = new NetConnection();
connection.connect(null);
var streaming:NetStream = new NetStream(connection);
my_video.attachVideo(streaming);
streaming.play(_global.currentClip);
 
/*function main() {
        my_video.attachVideo(streaming);
        streaming.play(_global.currentClip);
        streaming.pause(true);
        streaming.onStatus = function(getObjects:Object):Void  {
 
                if (getObjects.code == "NetStream.Play.Start") {
 
                        streaming.pause(false);
                        delete streaming.onStatus;
                }
        };
}*/
ета функция тоже будет запускатца и будет нужда снова затронутй setInterval
 
function loop() {
        loop.attachVideo(streaming);
        streaming.play(_global.currentClip);
        streaming.pause(true);
        streaming.onStatus = function(getObjects:Object):Void  {
 
                if (getObjects.code == "NetStream.Play.Start") {
 
                        streaming.pause(false);
                        delete streaming.onStatus;
                }
        };
}
 
 
streaming.onMetaData = function(meta:Object):Void  {
        duration = meta.duration;
        trace(duration);
};
function checkEndStatus() {
        trace(streaming.time);
        if (streaming.time>=duration) {
                _global.currentClip = dataObject.path+dataObject.modelName+"1"+"_Loop.flv";
                loop();
                // вот как мне тут запросить setInterval при переходе на лооп функцию не врубаюсь?
                clearInterval(checkEnd);
        }
}
checkEnd = setInterval(this, "checkEndStatus", 1000);

Добавлено через 3 часа 2 минуты
всё я ужасно извиняюсь ошибка била моя в етой цтрочке:
Код AS1/AS2:

clearInterval(checkEnd);

не нада вообше интервал стерать.. спасибо за внимание

Добавлено через 3 часа 3 минуты
всё я ужасно извиняюсь ошибка била моя в етой цтрочке:
Код AS1/AS2:

clearInterval(checkEnd);

не нада вообше интервал стерать.. спасибо за внимание

iNils 22.07.2009 13:58

Пока.


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

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