我有以下簡單的haxe/openfl代碼,並且無法弄清楚爲什麼它應該爲一個目標編譯並且爲其他目標編譯失敗。我的理解是,OpenFL應該將Flash API帶到所有支持的語言/平臺。OpenFL:針對不同目標的編譯結果不一致
$ haxelib run openfl build project.xml neko
然而,編譯它閃爍時,會產生一個錯誤:編譯ネ目標時
//test.hx
import flash.display.Sprite;
class Test {
static function main() {
var g:Sprite = new Sprite();
g.graphics.drawPath([1, 2], [1.1, 1.2,2.1,2.2]); //problem line
}
}
彙編是OK
$ haxelib run openfl build project.xml flash
./Test.hx:5: characters 23-29 : Array<Int> should be flash.Vector<Int>
./Test.hx:5: characters 23-29 : For function argument 'commands'
它看起來怪我因爲從錯誤消息看來,對於一個目標,函數drawPath
需要Array
類型參數,對於另一個目標,相同的函數需要Vector
鍵入的參數。
任何想法爲什麼發生這種情況,以及如何使這兩個目標的工作?
順便說一句,如果我編譯這HTML5,我得到:
$ haxelib run openfl build project.xml html5
./Test.hx:5: characters 3-22 : flash.display.Graphics has no field drawPath
功能甚至不存在這裏。上述結果與HAXE 3.0.1和最新openfl爲2014年二月的
我真的不明白,爲什麼你的編譯命令是「openfl建設......」,我用「石灰建設......」還是我錯過了又一次更新? :) –
@CreativeMagic我使用'haxelib run openfl build',因爲這是編譯OpenFL項目時由FlashDevelop使用的命令。什麼是你使用的完整命令?謝謝。 – tinlyx
順便說一句,因爲我使用msys/mingw32,我需要使用'haxelib run lime'而不是'lime'。 stackoverflow.com/questions/21837170/ – tinlyx