2010-03-26 8 views
0

사각형 (스프라이트) 안에 텍스트 필드가 있습니다. 텍스트는 사각형 안에 잘 들어 맞습니다. 그러나 텍스트 필드의 실제 크기는 스프라이트의 크기보다 큽니다. (글꼴의 보이지 않는 위쪽 여백)actionscript 텍스트 필드 표시 문제

문제는 마우스 클릭을 감지하는 Sprite에 eventlistener를 추가 할 때 문제가되는 부분입니다. 사각형의 바깥 쪽을 클릭해도 발생합니다. 이 문제를 어떻게 해결할 수 있습니까? (자식 개체 크기가 부모 크기를 초과하지 않도록)

+0

텍스트 필드는 정적입니까, 동적입니까? –

+0

그것은 "정적"입니다 .. – simon

답변

0

에 변화 사각형이 스프라이트 나 무비 클립 iteself 수없는 경우, 당신은 사각형과 그 위에있는 텍스트 필드가 스프라이트 컨테이너 이내에 하나가로 변환. 사각형에 인스턴스 이름을 'base'로 지정하십시오. 우선, 황 (Hwang)은 컨테이너의 mouseChildren 속성을 false로 설정했다. 그런 다음 컨테이너의 hitArea 속성을 사각형과 동일하게 설정합니다. 다음과 같이 보일 것입니다 :

container.mouseChildren = false; 
container.hitArea = container.base; 
-1
sprite.mouseChildren=false 

그리고 어쩌면 textfield.selectable=false도 사용해야합니다.

textField가 너무 높거나 넓습니까?

textfield.width=textfield.texhWidth, textfield.height=textfield.textHeight 
+0

이 작동하지 않습니다 – simon

+0

왜 스프라이트 크기를 초과하는 텍스트가 필요합니까? 는 text.width = text.textWidth + 2 및 text.height = text.textHeight를 설정할 수 있습니다. (일부 점을 추가하면 가끔씩 문자가 조금 자릅니다) – Hwang

+0

나는 그에게 표시에 영향을 미치지 않을 것이라고 생각합니다. 텍스트 필드 –

0

무작위 추측, 아마 스프라이트에 마스크를 적용하면 문제가 해결 될 것입니다.

var mask:Shape = new Shape(); 
mask.graphics.beginFill(0); 
mask.graphics.drawRect(0,0,recWidth,recHeight); 
sprite.addChild(mask); 
sprite.mask = mask;