Autor | Zpráva | ||
---|---|---|---|
pozortucnak Profil * |
#1 · Zasláno: 12. 6. 2010, 11:43:51
Dobrý den.
Našel jsem si tento zdrojový kód, funguje skvěle.... <script type="text/javascript" language="JavaScript"> newImage = new Image(); function LoadNewImage() { var unique = new Date(); document.images.webcam.src = newImage.src; newImage.src = "http://path/to/webcam.jpeg?time=" + unique.getTime(); } function InitialImage() { var unique = new Date(); newImage.onload = LoadNewImage; newImage.src = "http://path/to/webcam.jpeg?time=" + unique.getTime(); document.images.webcam.onload=""; } </script> Jen bych ten kód potřeboval upravit, aby byl mezi načítanými obrázky zhruba vteřinový interval... Poradíte jak na to? Trochu jsem si s tím hrál, ale tak nějak nerozumím tomuto:newImage.onload = LoadNewImage; způsobu volání funkce... http://web.nickshanks.com/code/js/cams |
||
tayger Profil * |
#2 · Zasláno: 13. 6. 2010, 17:44:06
připadá mi to trochu divné, že volání funkce není zakončeno závorkamy, ale jinak ten řádek znamená, přiřaď do newImage.onload výsledek funkce LoadNewImage. Domnívám se, že ta pravá strana bude vlastnost nebo metoda objektu newImage. Pokud jde o to spomalení, tak řešit přes časovací funkci setTimeout() může být řešením, jen netuším kam to hodit, to už nechám na tobě, možná už při inicializaci nebo před zobrazením.
|
||
__construct Profil |
#3 · Zasláno: 13. 6. 2010, 20:42:00
pozortucnak:
Prečo to robíš tak zložito ? <script type="text/javascript"> refreshImage = function(){ img = document.getElementById("cam"); img.src="http://adresa/video.jpg?rand=" + Math.random(); } window.onload=window.setInterval(refreshImage, 1*1000); </script> <img alt="obrázok" src="http://adresa/video.jpg" id="cam" /> |
||
Chamurappi Profil |
#4 · Zasláno: 14. 6. 2010, 11:15:14
Reaguji na pozortucnaka:
„nějak nerozumím tomuto:newImage.onload = LoadNewImage; způsobu volání funkce“ Funkce se nevolá, je to obyčejné přiřazení. Jakmile nastane událost onload na obrázku newImage , zavolá se funkce LoadNewImage .
Uprav ji takhle: function LoadNewImage() { var unique = new Date(); document.images.webcam.src = newImage.src; setTimeout(function() { newImage.src = "http://path/to/webcam.jpeg?time=" + unique.getTime(); }, 1000); } Reaguji na taygera: „připadá mi to trochu divné, že volání funkce není zakončeno závorkamy“ Však to také není volání funkce, proto tam nejsou závorky. „jinak ten řádek znamená, přiřaď do newImage.onload výsledek funkce LoadNewImage“ To by znamenal, kdyby se funkce volala. Viz Rozdíl mezi voláním funkce a funkcí ve FAQ. Reaguji na __constructa: „Prečo to robíš tak zložito ?“ Není to složité zbytečně — skript funguje tak, že přednačte nový obrázek do keše a pak teprve nahradí starý src v <img> za nový. Uživatel díky tomu nevidí postupné načítání nového obrázku, prakticky pořád bude mít na očích kompletní obrázek.
„window.onload=window.setInterval(refreshImage, 1*1000);“ Přiřazuješ výsledek setInterval u, což je číslo, a zavolá se okamžitě, nikoliv až při onload u.
|
||
Časová prodleva: 2 roky
|
|||
Formis Profil * |
#5 · Zasláno: 21. 12. 2011, 16:15:20
Zdravím,
oba zde uvedené příklady zdrojových kóků mi fungují pouze při prvním načtení obrázku, pak již ne a ukáže se pouze obdelníšek s křížkem. setInterval funguje. Když dám vlastnosti nenačteného obrázku, tak cesta k obrázku je správně, ale na konci celé cesty je nějaké nesmyslné číslo např. : ...temp6h.png0.18482253581786512 . První načtený obrázek má konec v pořádku : ... temp6h.png . Neví někdo, kde by mohl být problém? Jde mi o to, že se mi tento soubor(temp6h.png) pravidelně uploaduje, tak bych chtěl, aby se mi automaticky načítal(zobrazoval v miniaplikaci na ploše nebo v html souboru). Nebo je vhodnější použít jiný kód? Předem díky za pomoc. |
||
Časová prodleva: 12 let
|
0