我在這裏遇到了一個嚴重的問題:我有一個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