我们在项目中使用 as3Crypto 库。我们已经下载了代码,修改了一下并开始使用它。最初,我们已将完整的代码作为项目的一部分。现在我们尝试将其编译为Separate Library文件(.swc)。当我们编译代码时,我们没有收到任何错误,但我们收到一条警告说
Severity and Description Path Resource Location Creation Time Id
flex2.compiler.as3.SignatureExtension.SignatureGenerationFailed[level='warning', column='23', node='ForStatement', line='214', cause='flex2.compiler.as3.SignatureAssertionRuntimeException: Unreachable Codepath
at flex2.compiler.as3.SignatureEvaluator.ASSERT(SignatureEvaluator.java:369)
at flex2.compiler.as3.SignatureEvaluator.UNREACHABLE_CODEPATH(SignatureEvaluator.java:357)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:1560)
at macromedia.asc.parser.ForStatementNode.evaluate(ForStatementNode.java:50)
at flash.swf.tools.as3.EvaluatorAdapter.evaluate(EvaluatorAdapter.java:338)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:1795)
at macromedia.asc.parser.StatementListNode.evaluate(StatementListNode.java:60)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:530)
at macromedia.asc.parser.ClassDefinitionNode.evaluate(ClassDefinitionNode.java:106)
at flash.swf.tools.as3.EvaluatorAdapter.evaluate(EvaluatorAdapter.java:338)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:1795)
at macromedia.asc.parser.StatementListNode.evaluate(StatementListNode.java:60)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:454)
at macromedia.asc.parser.ProgramNode.evaluate(ProgramNode.java:80)
at flex2.compiler.as3.SignatureExtension.generateSignature(SignatureExtension.java:270)
at flex2.compiler.as3.SignatureExtension.doSignatureGeneration(SignatureExtension.java:174)
at flex2.compiler.as3.SignatureExtension.parse1(SignatureExtension.java:137)
at flex2.compiler.as3.Compiler.parse1(Compiler.java:369)
', path='C:\MyData\Flex WorkSpaces\Separate\HurlantCryptoLib\src\com\hurlant\crypto\symmetric\AESKey.as'] HurlantCryptoLib/src/com/hurlant/crypto/symmetric AESKey.as line 214 1312947481229 27
当我们检查代码时,我们将其跟踪到代码文件AESKey.as,尤其是来自静态初始化程序代码块。我不能简单地忽略警告,因为它是我的应用程序安全性的关键部分。
如果有人遇到此问题,请帮我解决此问题。
答案 0 :(得分:0)
要回答标题中的问题,看起来是的,您可以在Flex库项目中使用静态初始值设定项。这是库项目中的一个类:
package test
{
public class StaticInitializerTest
{
public static var VALUE:String = "fail";
{
VALUE = "pass";
}
}
}
这是一个使用它的Flex应用程序:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
import test.StaticInitializerTest;
private function onCreationComplete ():void
{
trace("Static initializers in a Flex library project: " + StaticInitializerTest.VALUE);
}
]]>
</mx:Script>
</mx:WindowedApplication>
这会产生以下输出:
Static initializers in a Flex library project: pass