我在这里遇到了一个严重的问题:我有一个1320 x 1000大的滚动背景。我使用一个精灵作为容器,在其中放置背景画布。此外,我还在背景精灵中添加了一个分数精灵(通过addChild)(一个持有bg画布的分数,使分数出现在bg画布的顶部)。scrollrect with object - help?
我们的目标是,当我添加一个分数时,它应该被粘贴到背景上(即使当卷动移动时;它在背景上应该有一个固定的位置)。
问题是,这不起作用,因为当分数出现时,它随着scrollrect移动,这不是我想要的。我已经用globalToLocal尝试过了,但还没有成功。可能是因为我不太了解globalToLocal(反之亦然)。请任何人都可以帮我解决这个问题吗?提前致谢。
这些都是一些代码摘录:
private var backgroundBitmapData:BitmapData = new BitmapData(1320, 1000, false, 0x000000);
private var canvasBitmapData:BitmapData = new BitmapData(1320, 1000, false, 0x000000);
private var canvasBitmap:Bitmap = new Bitmap(canvasBitmapData);
private var canvasRect:Rectangle = new Rectangle(0, 0, 660, 500);
private var backgroundSprite:Sprite = new Sprite();
backgroundSprite.scrollRect = new Rectangle(0, 0, 660, 500);
canvasBitmap.scrollRect = new Rectangle(330, 250, 660, 500);
backgroundSprite.addChild(canvasBitmap);
backgroundSprite.cacheAsBitmap = true;
addChild(backgroundSprite);
tempScoreText = new ScoreTextField(String(10), textFormat, oldAstX, oldAstY, 20);
scoreTexts.push(tempScoreText);
backgroundSprite.addChild(tempScoreText);
如何你是否在移动剪辑?看起来你提到的所有代码都很好(虽然我对此有些困惑,所以我可能会误解)。 – Jacksonkr
希望这有助于(这些代码是只是摘录): 'player.update(stage.mouseX + canvasBitmap.scrollRect.x,stage.mouseY + canvasBitmap.scrollRect.y,plDelay,步骤);' 代码2: 'canvasRect.x = player.x - 330; canvasRect.y = player.y - 250; if(canvasRect.x <0)canvasRect.x = 0; if(canvasRect.y <0)canvasRect.y = 0; if(canvasRect.x> 659)canvasRect.x = 659; if(canvasRect.y> 499)canvasRect.y = 499; canvasBitmap.scrollRect = canvasRect;' – drpelz