Para quem acompanhou o screencast do post Preloader Personalizado – Flex 3 conseguiu ver como criar o seu preloader e adicioná-lo a um projeto Flex 3. Contudo, a mesma biblioteca disponibilizada não funciona perfeitamente no Flex 4, e vou explicar o porque.
No Flex 3, nosso preloader personalizado extende a classe mx.preloaders.DownloadProgressBar e no Flex 4, a classe que o preloader deve extender é a mx.preloaders.SparkDownloadProgressBar. Só por esse detalhes já conseguimos perceber que houveram mudanças no sistema de preloader após a versão 4 da SDK.
Apesar da nova classe SparkDownloadProgressBar ser uma cópia da classe DownloadProgressBar, houveram algumas mudanças no disparo do evento ProgressEvent.PROGRESS, que agora na nova SDK é disparado toda vez que um novo progresso é inicado, seja ele de download do SWF, download das RSL e na inicialização da aplicação, gerando um progresso de 0 a 100% para cada nova etapa. Com essas mudanças não é mais aconselhavel ter um listener para esse evento para controlar o seu progresso, que era exatamente o que faziamos no Flex 3.
Agora que entendemos as mudanças, vou disponibilizar aqui a biblioteca atualizada para o Flex 4 que não mais escuta o evento ProgressEvent.PROGRESS e funciona perfeitamente com o novo método setDownloadProgress da classe SparkDownloadProgressBar.
Bruno, funcionou legal a biblioteca aqui, porém causa um conflito com a biblioteca flexlib, o title não aparece quando publico minha aplicação, quando tiro o preloader funciona normalmente, o que pode estar acontecendo?