我在flash cs4中有简单的组合框组件,我尝试添加和这样的事件监听器
mycombo.addEventListener(Event.ADDED_TO_STAGE, added);
function added(e:Event):void
{
trace("HI");
}
即使我手动或通过AS在舞台上有组件,也永远不会被调用,但是如果我向MouseOver添加一个监听器它可以工作,为什么ADDED_TO_STAGE事件不起作用,我也遇到了textFormat样式的问题我用
mycombo.setStyle("textFormat", tf);//suppose tf is a TextFormat object
也不起作用,但是如果我将该行放在MouseOver事件中,那么它的工作原理是什么?请帮忙谢谢!!
答案 0 :(得分:2)
我遇到了同样的情况,发现如果我在ActionScript中创建组件而不是通过可视化设计工具,那么在代码中对组件进行更改就可以了。 因此,我从.FLA文件中删除了该对象,并在相关的.AS文件中创建了它,就像这样。
var ddlQF:ComboBox=new ComboBox();
this.addChild(ddlQF);
ddlQF.move(444,191);
ddlQF.setSize(284,40);
ddlQF.rowCount=10;
var myFormat:TextFormat = new TextFormat();
myFormat.font = "Georgia";
myFormat.size=16;
ddlQF.setStyle("textFormat",myFormat);
答案 1 :(得分:0)
问题1原因:
看来ADDED_TO_STAGE可以在触发之前发生。
将DisplayObject实例添加到舞台显示列表中,直接或通过添加包含DisplayObject实例的子树。如果直接添加DisplayObject实例,则添加的事件将在此事件之前发生。
问题2原因:
同样,我相信事件发生在事件触发之前。因此风格永远不会被处理。