2010-02-09 4 views
0

업데이트 : 이것은 실제 문제가 아닙니다. 다른 Sprite가 생성되어 SimpleButton의 높이와 동일한 Y 위치에 있어야하는 alpha = 0으로 설정되었습니다. 이것은 버튼과의 상호 작용을 막고있었습니다. 여러분의 생각에 감사드립니다. 나는 그 질문을 닫고있다.SimpleButton.y를 변경하면 단추의 hitArea가 이동하지 않는 것 같습니다.


나는 스테이지에서 배치하고있는 SimpleButton을 가지고 있습니다. 나는 그것이 Y 위치로 설정 될 때마다 hitArea를 나누거나 바꿔서 다양한 것을하고 있습니다. 내가 _playButton.y = Y; 버튼이 완벽하게 작동 라인을 제거하면

var playUp:Bitmap = getBitmap('play_up'); 
var playDown:Bitmap = getBitmap('play_down'); 

var Y:Number = 100; 

_playButton = new SimpleButton(playDown, playUp, playDown, playDown); 
_playButton.addEventListener(MouseEvent.CLICK, playClick); 
_playButton.x = (640/2) - (_playButton.width/2); 
_playButton.y = Y; 
_playButton.name = "playButton"; 
var shadow:DropShadowFilter = new DropShadowFilter(); 
shadow.distance = 5; 
shadow.angle = 25; 
shadow.alpha = 0.5; 
shadow.blurX = 8; 
shadow.blurY = 8; 
_playButton.filters = [shadow]; 
addChild(_playButton); 

, 그것은 맞았 는데요 영역은 전체 버튼을 다룹니다.
var Y:Number = playDown.height;으로 설정하면 롤오버를 만들거나 버튼을 전혀 클릭 할 수 없습니다.
var Y:Number = playDown.height - 10;으로 설정하면 버튼의 상위 10 픽셀 만 활성화되며 상단의 10 픽셀을 클릭하여 롤오버 할 수 있습니다.

다른 Sprite에서 버튼을 배치하고 포함 된 스프라이트를 이동하려고 시도했지만 정확히 동일한 동작이 발생했습니다. 라이브러리에서 ActionScript에 대한 수출이 개 이미지와

var playUp:Bitmap = getBitmap('play_up'); 
var playDown:Bitmap = getBitmap('play_down'); 

var Y:Number = 100; 

_playButton = new SimpleButton(playDown, playUp, playDown, playDown); 
_playButton.addEventListener(MouseEvent.CLICK, playClick); 
_playButton.x = (640/2) - (_playButton.width/2); 
_playButton.y = Y; 
_playButton.name = "playButton"; 
var shadow:DropShadowFilter = new DropShadowFilter(); 
shadow.distance = 5; 
shadow.angle = 25; 
shadow.alpha = 0.5; 
shadow.blurX = 8; 
shadow.blurY = 8; 
_playButton.filters = [shadow]; 

var holder:Sprite = new Sprite(); 
holder.addChild(_playButton); 
addChild(holder); 

답변

1

이 잘 작동합니다 :

var playUpBMPD:BitmapData = new PlayUp(200, 40); 
var playDownBMPD:BitmapData = new PlayDown(200, 40); 
var playUp:Bitmap = new Bitmap(playUpBMPD); 
var playDown:Bitmap = new Bitmap(playDownBMPD); 

var Y:Number = 100; 

var _playButton:SimpleButton = new SimpleButton(playDown, playUp, playDown, playDown); 
_playButton.x = (640/2) - (_playButton.width/2); 
_playButton.y = Y; 
_playButton.name = "playButton"; 
var shadow:DropShadowFilter = new DropShadowFilter(); 
shadow.distance = 5; 
shadow.angle = 25; 
shadow.alpha = 0.5; 
shadow.blurX = 8; 
shadow.blurY = 8; 
_playButton.filters = [shadow]; 

addChild(_playButton); 

무엇을 할 getBitmap합니까? 또한 Y는 코드의 다른 곳에서 사용됩니다.

1

이전에 SimpleButton을 사용하지 않았지만 10 분 정도 Google 검색에서 수집 한 내용은 다음과 같습니다. 버튼의 hitState, upState, downState 등의 위치를 ​​수동으로 변경해야 할 수도 있습니다 너는 그것을 움직인다. 다음 예제에서는 버튼의 hitState 등이 스테이지의 특정 위치에 그려져있는 것처럼 보입니다.

가 사과/내가 '경우

http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/display/SimpleButton.html

(W : 그들은 실제로 hitState의 위치를 ​​설정하는 것처럼

http://weblog.cahlan.com/2006/07/simplebutton-class-in-actionscript-30.html

그리고 심지어에는 SimpleButton 참조 페이지에서 예

, 그것은 보인다 완전히 잘못되었습니다.)