Domanda

Ho un'applicazione scritta in flash (in realtà è scritto in Haxe e correre sotto SHWX, ma non importa, qui).Ho un incantevole complesso di attività che consuma un sacco di potenza della CPU e, a volte, viene eseguito per più di 15 secondi.Se ciò accade, ho un errore dicendo 'Uno script è eseguito per un tempo superiore al periodo di timeout predefinito di 15 secondi." e tutto si blocca.

So che posso usare la continuazione per evitare che questo accada, ma c'è un modo per estendere il 'periodo di timeout predefinito'?È uno strumento per sviluppatori, responsivnes non importa.

È stato utile?

Soluzione

Un altro modo è quello di collegare un swfmill-in base swf via -swf-lib interruttore e si imposta questo ScriptLimits tag c', haxe si ri-utilizzare poi.

Altri suggerimenti

in CS3+ è sufficiente impostare lo Script "limite di tempo", di proprietà dell'swf al momento della pubblicazione - è in flash scheda delle impostazioni di pubblicazione

Quando si verifica l'applicazione, essere consapevoli del scriptTimeLimit proprietà.Se un'applicazione richiede troppo tempo per inizializzare, Flash Player avvisa gli utenti che uno script sta causando Flash Player per eseguire lentamente e richiede all'utente di interrompere l'applicazione.Se questa è la situazione, è possibile impostare il scriptTimeLimit proprietà del tag per un tempo più lungo in modo che l'applicazione Flex ha abbastanza tempo per inizializzare.

Tuttavia, l' valore di default del scriptTimeLimit proprietà è di 60 secondi, che è anche il massimo, solo così potrete aumentare il valore se è già stato impostato su un valore inferiore.Capita raramente di dover modificare questo valore.

Fonte: http://livedocs.adobe.com/flex/3/html/help.html?content=performance_05.html

Io non sono sicuro se c'è qualcosa di più nativo per ottenere questo fatto, ma sembra che ci sia un comando che hack SWF per aggiungere un ScriptLimits tag per estendere il periodo di timeout.

Vi suggerisco di rompere la tua funzione in più piccoli pezzi e loro diffusione su più fotogrammi.In questo modo è possibile visualizzare un'animazione di avanzamento e l'applicazione Flash non rispondere.Così, per esempio, se si dispone di loop più di 1000 pezzi, si fa 100 in un frame, quindi un altro centinaio nel frame successivo, ecc, fino a quando si sono trattati tutti.Non mi consiglia di incidere il vostro swf.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top