Como estender período de tempo limite padrão no aplicativo Flash?
Pergunta
Eu tenho um aplicativo escrito em Flash (na verdade, ele é escrito em Haxe e executado sob SHWX mas não importa aqui). Eu tenho uma tarefa bastante complexa, que consome muita energia da CPU e às vezes executa por mais de 15 segundos. Se isso acontecer, eu tenho um erro dizendo 'Um script foi executado por mais tempo do que o período de tempo limite padrão de 15 segundos.' e tudo deixa de funcionar.
Eu sei que posso usar continuações para impedir que isso aconteça, mas há uma maneira de estender esse 'período de tempo limite padrão'? É uma ferramenta de desenvolvedor, responsivnes realmente não importa.
Outras dicas
em CS3 + você simplesmente definir a propriedade "Script limite de tempo" do swf no momento da publicação - é na guia Flash das configurações de publicação
Quando você testar seu aplicativo, estar ciente do scriptTimeLimit propriedade. Se um aplicativo leva muito tempo para inicializar, o Flash Player alerta os usuários que um script está causando Flash Player para executar lentamente e solicita que o usuário abortar a aplicação. Se esta é a situação, você pode definir a propriedade scriptTimeLimit da tag para um tempo mais longo para que o aplicativo Flex tem tempo suficiente para initialize.
No entanto, o valor padrão da propriedade scriptTimeLimit é de 60 segundos, que também é o máximo , então você só pode aumentar o valor se você tiver definido anteriormente para um valor menor. Você raramente precisa alterar este valor.
Fonte: http: //livedocs.adobe. com / flex / 3 / html / help.html? content = performance_05.html
Eu não tenho certeza se há algo mais nativa para obter este feito, mas parece haver um comando que hacks o SWF para adicionar um ScriptLimits tag para estender o período de tempo limite.
Eu sugiro quebrar sua função em pedaços menores e espalhá-los ao longo de vários quadros. Desta forma, você pode exibir uma animação progresso e o aplicativo Flash não vai ficar sem resposta. Por exemplo, se você tem um loop mais de 1000 itens, você faz 100 em um quadro, em seguida, outros cem no próximo quadro, etc, até que tenha processado todos eles. Eu não recomendaria hacking seu swf.