Home > ActionScript, Work > IE, we have a problem

IE, we have a problem

January 30th, 2009 Leave a comment Go to comments

Em 2005 projetei um site que usaria AJAX e Flash integrados, um dispararia eventos para o outro, o conteúdo em determinadas horas seria exibido no HTML, outras horas no Flash. Naquela época encontrei um problema que aparentemente era comum, quando eu tentava carregar conteúdo com imagens, algumas vezes o IE tropeçava em seu próprio jeito de lidar com o cache e entendia que a imagem já tinha sido carregada, quando na verdade ainda não havia, o resultado disso é que as imagens simplesmente não eram exibidas.
Tratando alguns eventos, consegui resolver o problema e ficou tudo bem.

Agora, anos depois, um problema parecido, porém, até agora sem solução.

A estrutura de arquivos

 

Estrutura de arquivos

Estrutura de arquivos

Alguns requisitos do projeto tornaram necessário criar uma pasta para cada produto com seus htmls, mas os swfs eram compartilhados por todos.

A exibição do conteúdo

Exibição do conteúdo

Exibição do conteúdo

Apesar de alguns detalhes em html, a página era basicamente constituída de 3 swfs, existindo o seguinte:

  • O filme 1 se comunica com o filme 2 usando LocalConnection;
  • Quando determinados eventos acontecem no filme 2, é criada uma comunicação com o filme 1 também via LocalConnection;
  • O filme 3 não se relaciona com os outros dois.

Características

  • Os filmes foram publicados para a versão 10 do player;
  • O filme 1 tem 100 KB e recebe parâmetros via FlashVars;
  • O filme 2 tem 110 KB e recebe parâmetros via FlashVars;
  • O filme 3 tem 60 KB;

O problema

Nos browsers FF, Chrome e Safari tudo funciona perfeitamente, porém, no IE, em alguns momentos o filme 1 não é carregado. Eventualmente quando damos refresh na página, o filme volta a ser carregado.

Soluções tentadas, todas sem sucesso

  1. Eu havia imaginado que talvez fosse alguma questão com o cache do IE, por isso fizemos o controle de cache no header do HTML e linguagem servidor que estava sendo utilizada;
  2. Uso de um número aleatório no fim da chamada do swf para tentar quebrar o cache;
  3. Pensando que poderia ser algum bug de versões antigas do swfObject – eu não tinha a informação sobre qual versão estava sendo utilizada – sugeri o download da versão mais recente e atualização do código;
  4. Ainda sem sucesso partimos para a forma de inclusão do swf como o flash gera;
  5. Por fim, tentamos o uso do Embed do objeto na forma mais antiga;
  6. Troca do filme 1 por um novo filme contendo apenas um shape.

Em nenhuma das tentativas houve sucesso, então, partimos para uma ultima tentativa, unir todos os swfs, num só. Eu poderia ter tentado fazer um Load deles num quarto swf, mas achei melhor unir de verdade, então, reprogramei tudo para que funcionassem juntos.

Por algum motivo, tendo apenas um swf, tudo voltou a funcionar normalmente.

Da pesquisa

Descobri que algumas pessoas tem esse tipo de problema desde a versão 7 do player  - foi o mais antigo que encontrei – e normalmente esse erro acontece no IE.

Resultado

A única solução que conseguimos encontrar foi unir todos os swfs em um, se alguém teve esse problema e achou alguma solução, por favor, comente.

Categories: ActionScript, Work Tags:
  1. No comments yet.
  1. No trackbacks yet.