是否有任何变通方法可以使Flex编译器与64位JRE一起使用?如果我在Eclipse中的Ant构建文件中使用MXMLC任务它可以正常工作但是如果我尝试从命令行使用MXMLC(或者从Eclipse中的FDT尝试Run ...命令)它会失败,告诉我......
"加载时出错:C:\ Program Files\Java\jrrt-1.6.0\jre\bin\jrockit\jvm.dll"
(这是一个64位的JRockit运行时,但这无关紧要).
在最新的mac出口上启动mxmlc并显示错误消息:
错误:此Java实例不支持32位JVM.请安装所需的版本.
怎么修?
我有一个由两个文件组成的小动作"项目",称为foo.as和bar.as. 由于我不打算进入的原因,我真的很想从命令行构建.SWF,而不需要设置任何类型的正式项目.我曾经使用的每一个编译器都允许你这样做,但是对于我的生活,我无法弄清楚如何强制MXMLC编译这两个文件并将它们链接到SWF.
天真的,我试试
MXMLC foo.as bar.as
但我被告知只允许一个源文件.
好吧,假设我分别编译了这两个文件,我将如何将它们链接在一起以获得最终的SWF?
注意:我有两个文件而不是一个文件的唯一原因是每个文件只需要一个类.我尝试将两个类放在一个文件中,然后创建其中一个类private,internal但这些想法都不起作用.我会欣喜地发现我可以在一个文件中放置多个类(只有一个是公共的).
在Flash Professional CS4中,当我使用鼠标/键盘输入处理程序名称(如onMouseDown,onKeyUp等)时,即使我为它们添加了事件侦听器,也会出现"迁移问题"警告.这些名称对于函数来说是完全合法的,但由于它们是在ActionScript 2.0中自动触发的,因此我们现在(尽管明智地)警告它们在AS3中的使用不再是自动的.
我理解警告的目的,但它们对我没用.我想抑制这些警告,但不要压制任何其他警告,我通常会发现这些警告很有用.
例如,当我使用这样的代码时:
/** @constructor */
public function MyClass() {
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
protected function onMouseDown(e:MouseEvent):void {
Run Code Online (Sandbox Code Playgroud)
我得到一个像这样恼人的警告:
Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).
有flex编译器(mxmlc)标志(以及Flash Pro设置)可以抑制动作脚本警告或所有警告,但我不希望这样.这太笼统了.
理想情况下,我可以抑制特定的错误/警告号码(警告#1090).
编辑:我发现了更多"高级"编译器标志mxmlc -help advanced,看起来很有希望.具体来说,以下似乎是可能的候选人:
warn-deprecated-event-handler-error
warn-deprecated-function-error
warn-deprecated-property-error
如何让Flash使用这些?
编辑2:我在Flash用户数据目录中找到了一个flex-info.xml样式文档.
[userdatafolder]/Adobe/Flash …
具体来说,我想知道命令是什么......它产生的所有标志并传递给mxmlc.必须有办法,但我无法弄清楚.
我正在更改我没有编写的Flex项目的一组代码,并设置为使用ant任务进行编译.我假设代码库在最后一次检查时是稳定的,但是在尝试使用MXMLC和ant构建项目时遇到了内存问题(请参阅下面的堆栈跟踪).以前,我只是出现内存不足错误.我尝试使用不同的机器并获得更详细的异常(包括图像提取器的问题).我已经尝试过使用各种版本的SDK,我尝试用没有运气来替换<mxmlc>标签<exec executable="mxmlc">.这是我的java版本,如果与它有任何关系:
» java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢!
Buildfile: build.xml
compileSWF:
[echo] Compiling main.swf...
[mxmlc] Loading configuration file /Applications/Adobe Flash Builder 4 Plug-in/sdks/4.0.0beta2/frameworks/flex-config.xml
[mxmlc] Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space
[mxmlc] at java.awt.image.PixelGrabber.setDimensions(PixelGrabber.java:360)
[mxmlc] at sun.awt.image.ImageDecoder.setDimensions(ImageDecoder.java:62)
[mxmlc] at sun.awt.image.JPEGImageDecoder.sendHeaderInfo(JPEGImageDecoder.java:71)
[mxmlc] at sun.awt.image.JPEGImageDecoder.readImage(Native Method)
[mxmlc] at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119)
[mxmlc] at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
[mxmlc] at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
[mxmlc] at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
[mxmlc] …Run Code Online (Sandbox Code Playgroud) 我试图在Array上做一个非常特殊的变化.当我有以下内容时:
public class TileArray extends Array {
// Intentionally empty - I get the error regardless
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样做?
var tl:TileArray = [1,2,3];
Run Code Online (Sandbox Code Playgroud)
尽管我能做到这一点
var ar:Array = [1,2,3];
Run Code Online (Sandbox Code Playgroud)
我收到的错误是这样的:
Implicit coercion of a value with static type Array to a possibly unrelated type
我们可以从flash-builder自动生成flex-confix xml文件,这样想要自己编译项目的用户就可以在不购买FB的情况下做这样的事情.所以我们使用类似-dump-config slotConfig.xmlflex编译器参数的东西.这会为我们生成一个文件...有很多详细的评论,比如我从该项目中生成的这些评论:
<flex-config>
<!-- benchmark: output performance benchmark-->
<!-- benchmark usage:
<benchmark>boolean</benchmark>
-->
<compiler>
<!-- compiler.accessible: generate an accessible SWF-->
<accessible>false</accessible>
<!-- compiler.actionscript-file-encoding: specifies actionscript file encoding. If there is no BOM in the AS3 source files, the compiler will use this file encoding.-->
<!-- compiler.actionscript-file-encoding usage:
<actionscript-file-encoding>string</actionscript-file-encoding>
-->
<!-- compiler.allow-source-path-overlap: checks if a source-path entry is a subdirectory of another source-path entry. It helps make the package names of MXML …Run Code Online (Sandbox Code Playgroud) 我有包含FLV视频序列的电影剪辑.
当这个FLV在从mxmlc编译的SWF中播放时,视频完全被破坏 - 所有不同颜色的块.如果我从IDE编译,视频播放正常.
它比这更复杂:
有没有人知道任何Flex编译器选项或SWC创作策略来解决这个问题?
我正在尝试通过mxmlc以这种方式编译我的项目:
[prj_folder]\src>mxmlc mymxml.mxml -library-path+=../libs -sp+=..\assets
Run Code Online (Sandbox Code Playgroud)
我得到这样的错误:
[prj_folder]\src\view\controls\controlname.mxml(7): Error: Problem finding external st
ylesheet: assets/cssname.css
<fx:Style source="assets/cssname.css"/>
Run Code Online (Sandbox Code Playgroud)
[prj_folder]\src\view\constants\Images.as(24):col:3:错误:无法转码assets/icons/icon1.png.
如何为编译器包含资产?
mxmlc ×10
apache-flex ×8
flash ×5
actionscript ×2
java ×2
64-bit ×1
ant ×1
arrays ×1
command-line ×1
extends ×1
flex4 ×1
flex4.5 ×1
video ×1