簡體   English   中英

更新到HaxeFlixel 3.3.0后,在FlxSprite上設置scrollFactor時出錯

[英]Error setting scrollFactor on FlxSprite after update to HaxeFlixel 3.3.0

我剛剛完成了將HaxeFlixel安裝更新到3.3.0的工作,在解決了所有其他升級更改之后,我仍然遇到一個錯誤,找不到任何解釋。 我設置了scrollFactor對房地產FlxSprite s表示彌補我的背景元素,和之前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]
石灰工具:[1.4.0]
青檸:[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

我不確定有關此更新的通知,但實際上當前的情況是scrollFactor訪問器是(default, null) ,因此沒有機會像這樣進行設置。

它甚至也不是最合適的方法,因為在HaxeFlixel中, FlxPoint可以並且大部分應該合並,因此通常不使用new FlxPoint(x, y)而是FlxPoint.get(x, y)將使您的代碼運行更快。

無論如何,根據您的當前情況,只需使用

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

代替

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

並且可以完美地運行(並且速度更快)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM