Форум 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)
-   -   loadClip и JPG картинка с вебкамеры с постоянным обновлением (http://www.flasher.ru/forum/showthread.php?t=139449)

alwwwex 01.05.2010 04:00

loadClip и JPG картинка с вебкамеры с постоянным обновлением
 
Добрый день.

Мне потребовалось добиться отображения картинки с веб-камеры в флеш-ролике.
Именно картинки, а не потокового видео - т.е есть постоянная ссылка на JPG картинку которая постоянно обновляется. На сайте, где сейчас показывается изображение с камеры, сделан простой "рефреш" и для борьбы с кешированием каждый раз к названию картинки прибавляется рандомное значение (к примеру http://site.com/img.jpg?rand=130). По сути, нужно добиться подобного результата на Flash.

на данный момент добился однократного отображения картинки, при помощи:
Код AS1/AS2:

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
 
function onLoadInit(_mc:MovieClip) {
  trace("loaded");
};
 
loader.loadClip("http://www.site.com/img.jpg", img_holder);

Начал делать далее, но возникли проблемы:
  • если поставить это на постоянный цикл - то картинка может не успеть загрузиться
  • если делать через проверку загрузки - нужно как то заменять картинку в клипе со старой на новую.

Прошу помощи и совета. С loadClip, я к сожалению работал очень мало, но пытаюсь разобраться. Меня интересует больше второй пункт - как можно запоминать старую картинку, подгружать следующую и когда загрузиться - заменять их?

Заранее спасибо.

Tails 01.05.2010 04:43

Не проблема, грузите каждую новую картинку только после срабатывания onLoadInit предыдущей, чтоб картинки сохранялись, нужно для каждой новой картинки делать контенер, атачить его из библиотеки или создовать скриптом новый, а старую картинку в предыдущем контенере:
Код AS1/AS2:

_visible=false;

Таким макаром можно будет сделать даже отмотку видео назад, просмотр предыдущего участка и многое другое, былабы фантазия :)

alwwwex 01.05.2010 15:03

Tails, Спасибо! :drinks:
Именно подсказки и не хватало)
Определился, и написал вполне рабочий скрипт. Возможно он не оптимизирован, но работает. Старые контейнеры я не трогал - новые просто создаются "поверх".

Код AS1/AS2:

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
var ok = true; // trigger to load new img
var camfpspause = 1000; // pause 1 sec
var picfromcam= "http://www.site.com/img.jpg?rand="; // cam img url
 
function loadnewpic() {
startTime = getTimer();
this.onEnterFrame = function () {
        currentTime = getTimer();
        if(currentTime-startTime > camfpspause  && ok==true) {
                var container:MovieClip = this.createEmptyMovieClip("container"+Math.random()*10, this.getNextHighestDepth());
                loader.loadClip(picfromcam+Math.random()*100, container);
                ok = false;
        }
}
};
 
function onLoadInit(_mc:MovieClip) {
        loadnewpic();
        ok = true;
};
 
loadnewpic();



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

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