scrollrect与对象一起移动 - 帮助?

时间:2011-08-18 20:55:00

标签: actionscript-3

我在这里遇到了一个严重的问题:我的滚动背景是1320 x 1000大。我正在使用精灵作为容器,我的背景画布放在其中。另外,我在背景精灵中添加(通过addChild)一个分数精灵(持有bg画布的精灵,以便分数显示在bg画布的顶部)。

目标是当我添加一个分数时,它应该粘在背景上(即使滚动正确移动;它应该在背景上有一个固定的位置)。

问题是这不起作用,因为当分数出现时,它会随着滚动而移动,这不是我想要的。我已经尝试过使用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);

2 个答案:

答案 0 :(得分:1)

我把一个示例放在一起,看看我是否能看到你正在经历的东西,但我不认为我看到了同样的事情,因为这个例子看起来像是应该的。这是我的示例

var backgroundBitmapData:BitmapData = new BitmapData(1320, 1000, false, 0x000000);
var canvasBitmapData:BitmapData = new BitmapData(1320, 1000, false, 0xff0000);

var canvasBitmap:Bitmap = new Bitmap(canvasBitmapData);
var canvasRect:Rectangle = new Rectangle(0, 0, 660, 500);

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);

var tempScoreText = new TextField();
tempScoreText.text = "temp score";
backgroundSprite.addChild(tempScoreText);

this.stage.addEventListener(MouseEvent.MOUSE_MOVE, function(event):void {
    backgroundSprite.scrollRect.x = mouseX;
    backgroundSprite.scrollRect.y = mouseY;
});

如果这不是你想要的,也许你可以为我上传一个 swf ,这样我就可以看到你看到了什么?也许 SOF聊天也是有序的。我以前被困住了,而且人们帮助了我所以这只是我向前付钱。

答案 1 :(得分:0)

如果您希望项目使用滚动矩形滚动:

stage.addChild(item)

如果您希望该项目具有粘性,则只能使用

addChild(item)

并使用

root.scrollRect