прокрутка движется с объектом - помощь? - PullRequest
0 голосов
/ 19 августа 2011

У меня здесь серьезная проблема: у меня фон прокрутки размером 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 ]

1 голос
/ 20 августа 2011

Я собрал образец вместе, чтобы увидеть, смогу ли я увидеть то, что вы испытываете, но я не думаю, что вижу то же самое, потому что этот пример работает так, как должен. Вот мой пример :

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 chat также в порядке. Я застрял раньше, и люди помогли мне , так что это только я заплатил вперед.

0 голосов
/ 31 мая 2016

Если вы хотите, чтобы элемент прокручивался с помощью прямоугольника прокрутки:

stage.addChild(item)

Если вы хотите, чтобы элемент был липким, используйте только

addChild(item)

и используйте

root.scrollRect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...