2011-08-18 2 views
0

여기에 심각한 문제가 있습니다. 1320 x 1000 크기의 스크롤 배경이 있습니다. 내 배경 캔버스가 내부에 배치 된 컨테이너로 스프라이트를 사용하고 있습니다. 또한 (addChild를 통해) 백그라운드 스프라이트 안에 점수 스프라이트를 추가합니다 (bg 캔버스를 보유하고있는 글씨이므로 bg 캔버스 상단에 점수가 나타납니다).scrollrect가 object - help로 이동합니까?

목표는 내가 점수를 추가 할 때 배경에 붙어 있어야한다는 것입니다 (스크롤 퀴트가 움직일 때도 배경에 고정 된 위치가 있어야 함).

문제는 점수가 표시 될 때 스크롤 기능으로 이동하고 이것이 내가 원하는 것이 아니기 때문에이 기능이 작동하지 않는다는 것입니다. 나는 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); 
+0

방법 당신은 당신의 클립을 움직이고 있습니까? 언급 한 모든 코드가 괜찮은 것 같습니다 (비록 다소 혼란 스럽기 때문에 오인 될 수 있습니다). 이 도움이 – Jacksonkr

+0

희망 (이 코드는 단지 발췌) : '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

답변

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 채팅도 순서에 있습니다. 나는 전에 붙이게되었다. 그리고 사람은 나를 도왔다 그래서 이것은 단지 그것을 나에게 지불하고있다.

+0

답변 해 주셔서 감사합니다. 나는 그렇게 빨리해볼 것이고, 그것이 효과가 있는지 알려줄 것이다. :) – drpelz

0

당신은 항목이 스크롤 RECT로 스크롤하려면 : 당신이 항목이 끈적하려면

stage.addChild(item) 

, 만

addChild(item) 

를 사용하고 사용

root.scrollRect 
관련 문제