【问题标题】:flash cs4 combobox component totally ignore styles and eventsflash cs4 组合框组件完全忽略样式和事件
【发布时间】:2011-01-15 06:57:13
【问题描述】:

我在 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 事件中它会起作用,为什么?请帮忙谢谢!!

【问题讨论】:

    标签: flash actionscript-3 flash-cs4


    【解决方案1】:

    问题 1 原因:

    似乎 ADDED_TO_STAGE 可以发生在触发器之前。

    来自https://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/events/Event.html#ADDED_TO_STAGE

    DisplayObject 实例直接或通过添加包含 DisplayObject 实例的子树添加到舞台显示列表中。如果直接添加DisplayObject实例,则添加事件发生在该事件之前。

    问题2原因:

    同样,我相信事件发生在事件触发之前。因此样式永远不会被处理。

    【讨论】:

      【解决方案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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-01
        • 2011-01-02
        • 1970-01-01
        • 2020-12-14
        • 2020-07-17
        • 2016-10-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多