Update: solutie mai eleganta la problema cu Flash > JS > IE6

Update la articolul Flash > Javascript > Kill IE:

M-au atras unii si altii atentia ca time-out-ul de 1-2 secunde despre care vorbeam este total irelevant pe o conexiune lenta, unde paginile se incarca in mai mult de 2 secunde. Asa e, pe conexiuni lente rezolvarea cu un mic timeout in Flash inaintea executarii js-ului nu e buna. Asa ca am mutat “timeout-ul” din Flash direct in JS:

1. Setam un setInterval:

var int = setInterval("action()",50);

2. Setam numele (name / id) SWF-ului in cauza, ca sa-l putem identifica si ca sa putem proba ca s-a incarcat in cache inainte de a trece mai departe:

var movieName = "flashul_meu";

3. Cream functia action():

function action() {
  //verificam daca swf-ul cu pricina s-a incarcat
  if (movieIsLoaded(thisMovie(movieName))) {
    mumu();  //apelam ce vroiam sa apelam din Flash 
    clearInterval(int); //stergem setInterval-ul
  }
}

Cam asta e. Codul respectiv il poti pune oriunde (la inceputul / la sfarsitul paginii, intr-un fisier js extern etc.) – el va rula in liniste pana la incarcarea swf-ului, dupa care se va auto-termina.

Comments are closed.