Autor Zpráva
mila
Profil
Mám jednoduchý flash s jednou vrstvou o dvou framech. Ve druhém framu je video (flv) a action script, který ho pustí (z manuálu). Všechno funguje fajn, dokud neudělám dvě (z mého pohledu nesouvisející) věci.

- Kód obalím jako funkci a tu zavolám.
- Kdekoli vytvořím setInterval() - klidně s prázdnou fcí.

Video se normálně spustí, ale když dojde na první zavolání fce v intervalu, tak se zastaví a už nerozjede.

Nic mě už nenapadá, protože se to děje jen když video spouštím nějakou fcí a ten setInterval volá jen prázdnou fci. Ostatní jede normálně dál (například jiné flv vložené ne fcí).

stop();
setInterval(function(){}, 2000);
function run(v) {
var c = new NetConnection();
c.connect(null);
var s = new NetStream(c);
v.attachVideo(s); // v je video na stagi
s.play('movie.flv');
}
run(v);


Díky za případnou pomoc.
mila
Profil
Tak jsem konečně došel k tomu, kde je problém (polož otázku a odpověz si:))
Možná se to bude někomu hodit, protože já se trápil celý víkend...

Aby to fungovalo, tak potřebuju někde referenci na NetConnection. Když to nevolám ve fci, tak c je globální proměná a zůstane mi. Při volání z fce po jejím dokončení ztratí kontext a je zrušena. To volání fce přes setInterval zdá se pustí nějakým způsobem garbage collector, NetConnection je zrušeno fyzicky a video přestane hrát.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0