2011-03-14 57 views
0

我有一個加密的XML文件需要解密並顯示在Flash中。加密的XML文件包含超過33000個字符,當我嘗試解密時,Flash崩潰。 Flash可以解密的數據量有限制嗎?我正在使用rijndael解密和Actionscript 2.0。使用Actionscript 2.0解密XML文件,內存問題?

+0

你是否收到任何錯誤信息? – weltraumpirat 2011-03-14 19:33:16

+0

只是腳本導致Flash播放器運行緩慢,如果它繼續運行,我的電腦可能會變得無響應。然後它問我是否要中止。如果我不這樣做,它就會不斷重現。該文件中唯一的代碼是解密的,所以它不是由其他任何東西引起的。 – decimal 2011-03-14 23:31:21

+0

你可以發佈該代碼嗎? – weltraumpirat 2011-03-15 00:42:51

回答

0

你的問題是在Flash中不存在的多線程能力造成的:所有的計算都應該發生「的中間幀」,即用戶的算法不應該需要更長的時間比屏幕刷新在該區間運行。如果您的計算時間過長,Flash播放器將首先開始丟幀,並且(除非您更改設置)在15秒後顯示您描述的警告。

您可以通過「傳播」跨越多個幀你的算法,確保只有計算的一部分被執行,直到畫面被刷新解決這個問題。你可以,或者通過實施類似Alex Harui's PseudoThread類(基本上不相同,但配備了封裝和所有的爵士樂)通過簡單的加密字符串分割成足夠小部件和執行的enterFrame事件循環解密一次一個這樣做。