Flash AS3.0包含动态文本的MovieClip按钮文本区域侦听无效,怎么解决呀?
我建立了一个透明的矩形图层覆盖到了动态文本图层上面,可是还是不行啊,只有在非文本区域按钮才起作用,请各位闪客高手指点迷津~~...
我建立了一个透明的矩形图层覆盖到了动态文本图层上面,可是还是不行啊,只有在非文本区域按钮才起作用,请各位闪客高手指点迷津~~
展开
展开全部
这个办法可以解决:
import flash.text.TextField;
import flash.display.SimpleButton;
import flash.display.Shape;
import flash.events.MouseEvent;
var txt:TextField=new TextField();
//我们来设定文本大小,在这里加上边框是让你看清楚,在没有文本的区域也是有感应的.
txt.width=50,txt.height=50;
txt.text = "按钮 ";
txt.border=true;
var btn:SimpleButton=new SimpleButton();
//我们来绘制一个区域,用以感应区域
var s:Sprite=new Sprite();
with (s.graphics)
{
beginFill(0xFFFFFF,1);
drawRect(0,0,50,50);
endFill();
}
addChild(btn);
btn.upState = txt;
btn.overState = txt;
btn.downState = txt;
btn.hitTestState = s;
//现在我们来为文本添加事件
btn.addEventListener(MouseEvent.CLICK,onClick);
function onClick(evt:MouseEvent):void
{
trace(evt.target);
}
当然影片剪辑还有一个属性就是hitArea,这个属性可以指定另外一个显示对象作为这个显示对象的点击区域.你不妨一试.
import flash.text.TextField;
import flash.display.SimpleButton;
import flash.display.Shape;
import flash.events.MouseEvent;
var txt:TextField=new TextField();
//我们来设定文本大小,在这里加上边框是让你看清楚,在没有文本的区域也是有感应的.
txt.width=50,txt.height=50;
txt.text = "按钮 ";
txt.border=true;
var btn:SimpleButton=new SimpleButton();
//我们来绘制一个区域,用以感应区域
var s:Sprite=new Sprite();
with (s.graphics)
{
beginFill(0xFFFFFF,1);
drawRect(0,0,50,50);
endFill();
}
addChild(btn);
btn.upState = txt;
btn.overState = txt;
btn.downState = txt;
btn.hitTestState = s;
//现在我们来为文本添加事件
btn.addEventListener(MouseEvent.CLICK,onClick);
function onClick(evt:MouseEvent):void
{
trace(evt.target);
}
当然影片剪辑还有一个属性就是hitArea,这个属性可以指定另外一个显示对象作为这个显示对象的点击区域.你不妨一试.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询