每当我尝试更改编译器常量时,似乎我必须:
这非常烦人且耗时。是否有我可以设置的设置,以便Flash Builder始终读取我已经制作的自定义编译器config.xml文件中的最新更改?
它基本上包含这样的东西:
对版本#这么简单的事情进行更改会变成一个漫长的过程。
有任何解决方法吗?
答案 0 :(得分:1)
我不是Flash Builder的用户,所以请注意这一点。一些可能的解决方法:
在项目中定义常量
你的问题似乎是Flash Builder没有在外部文件中进行更改 - 从谷歌上的一些快速搜索来看,它似乎是一个非常常见的问题,除了你所做的之外没有特别的解决方案。做(或回到4.6)。
要在项目中声明您的功能,请转到项目设置> ActionScript编译器和附加编译器参数下添加常量,如下所示:
-define+=COMPILE::LANG_EN,true
-define+=COMPILE::LANG_FR,false
...
每个人都需要在一个单独的行上,可能需要将COMPILE
替换为CONFIG
(默认值)
使用ANT构建项目
设置可能有点痛苦,但一旦完成,你应该没事。您应该可以这样声明它们:
<mxmlc ... >
<define name="CONFIG::LANG_EN" value="true"/>
<define name="CONFIG::LANG_FR" value="false"/>
</mxmlc>
取自http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7abd.html
在代码中定义常量
可以直接在代码中定义编译常量,尽管它只适用于它声明的代码块(例如类级别)。根据您的需要(例如,如果您设置不同的值与实际删除代码),这可以做您需要的(例如,在常量类上设置,根据不同的常量设置值)编译const。然后在整个代码中使用这些常量)
package
{
config namespace COMPILE;
COMPILE const LANG_EN = true;
COMPILE const LANG_FR = !COMPILE::LANG_EN;
public class MyClass
{
public function MyClass()
{
this.sayHello();
}
COMPILE::LANG_EN
public function sayHello():void
{
trace("hello");
}
COMPILE::LANG_FR
public function sayHello():void
{
trace("bonjour");
}
public function foo():void
{
COMPILE::LANG_EN { trace( "foo" ); }
COMPILE::LANG_FR { trace( "bar" ); }
}
}
}
更改IDE
FlashDevelop可以成为你的朋友。在办公室,我在FlashDevelop上工作,其他一些开发人员使用FlashBuilder。每个人都有自己的优点。
我们使用第一种方法定义的编译器常量,用于需要删除代码块的情况(即支持移动和Web构建),并且我们将嵌入式XML用于其他&#34;常量&#34;取决于构建;版本,服务器ip,api密钥等。在后者的情况下嵌入哪种XML取决于单个编译器const。