更新到HaxeFlixel 3.3.0后,在FlxSprite上设置scrollFactor时出错

时间:2014-04-25 05:28:21

标签: haxe haxeflixel

我刚刚将我的HaxeFlixel安装更新到3.3.0并且在解决了所有其他升级更改后我仍然遇到一个错误我找不到任何解释。我在构成我的背景元素的scrollFactor上设置FlxSprite属性,并且在3.3.0之前没有问题。我似乎无法通过更新找到对该属性的任何引用。

以下是我设置属性的相关代码:

//Setup bg
var bg:FlxSprite;
var scrollFactor:FlxPoint;
for (i in 0...loader.bgArray.length){
    bg = new FlxSprite(0, 0, loader.bgArray[i][0]);
    scrollFactor = new FlxPoint(
        Std.parseFloat(loader.bgArray[i][1]),
        Std.parseFloat(loader.bgArray[i][2]));
    bg.scrollFactor = scrollFactor;
    add(bg);
}

以下是haxelib列表的输出:

  

flixel:[3.3.0]
hxcpp:[3.1.30]
lime-tools:[1.4.0]
lime:   [0.9.7]
openfl-html5:[1.4.0-beta]
openfl-native:[1.4.0]
  openfl-samples:[1.3.0]
openfl:[1.4.0]

当我使用上面的代码片段在我的项目文件夹中运行lime test flash时,我得到:

  

source / PlayState.hx:54:字符3-33:无法访问字段或   标识符scrollFactor用于编写

第54行是我设置bg.scrollFactor的地方。

1 个答案:

答案 0 :(得分:3)

我不确定有关此更新的通知,但目前的情况是scrollFactor访问者(default, null),因此您无法像这样设置它。

它甚至不是最合适的方法,因为在HaxeFlixel FlxPoint中可能并且大多数应该被合并,所以你通常不会使用新的FlxPoint(x, y),而是{{1这将使你的代码运行得更快。

无论如何,根据你目前的情况,只需使用

FlxPoint.get(x, y)

而不是

bg.scrollFactor.set(
  Std.parseFloat(loader.bgArray[i][1]),
  Std.parseFloat(loader.bgArray[i][2])
);

它将完美(并且更快)。