【问题标题】:Accessing movie clip object outside the function scope在函数范围之外访问影片剪辑对象
【发布时间】:2009-05-19 22:19:08
【问题描述】:

我有一个影片剪辑,它有一个文本字段,然后在其中有一个按钮。当用户鼠标悬停在文本上时,我需要能够更改文本的颜色。下面是代码sn-p。如何从函数外部访问对 Text 字段的引用?提前致谢。

私有函数 createRows() { var containerMc:MovieClip = row;

//Create Text           
var myTxt:TextField = new TextField();
myTxt.htmlText = labelName;
myTxt.antiAliasType = AntiAliasType.ADVANCED;
myTxt.selectable = false;

//Create Symbol Format Text
var myTxtFormat:TextFormat = new TextFormat();
myTxtFormat.color = 0x000000;
myTxtFormat.font  = font;
myTxtFormat.bold = "bold";
myTxtFormat.size = fontSize;

//Format text
myTxt.setTextFormat(myTxtFormat);
containerMc.addChild(myTxt);

//Create button         
var btn:Sprite = new Sprite();
btn.graphics.beginFill(rowColor);

btn.graphics.drawRect(0, 0, width, height);
btn.graphics.endFill();
btn.alpha = 0;
btn.name = someName;
btn.buttonMode = true;

btn.addEventListener(MouseEvent.MOUSE_OVER,testMouseOver);              
containerMc.addChild(btn);

}

私有函数 testMouseOver(e:MouseEvent) { var myTxtFormat:TextFormat = new TextFormat(); myTxtFormat.color = 0xccff00;

var myText:TextField = new TextField;
myText.htmlText = e.currentTarget.name;

myText.setTextFormat(symTxtFormat);

}

【问题讨论】:

    标签: flash flash-cs3 flashdevelop


    【解决方案1】:

    您知道,如果文本是一个按钮,您所要做的就是进入按钮内部,在悬停状态下创建一个关键帧...并更改文本的颜色。你不需要任何动作脚本

    【讨论】:

      【解决方案2】:

      在 testMouseOver 你可以试试这个:

      var containerMC:MovieClip = getChildByName("container movie clip name") as MovieClip;
      var txtField:TextField = containerMC.getChildByName("htmlTxtField") as TextField;
      

      您还必须设置文本字段的名称属性:

      myTxt.name = "htmlTxtField";
      

      【讨论】:

      • 好的,这就是我添加的内容: createRows() - 我为 container.name="myContainer" 和 myTxt.name = "htmlTxtField" 添加了一个名称;在 testMouseOver() 我添加 var containerMC:MovieClip = getChildByName("myContainer"); var txtField:TextField = containerMC.getChildByName("htmlTxtField");我收到错误 -1118:将具有静态类型 flash.display:DisplayObject 的值隐式强制转换为可能不相关的类型 flash.text:TextField。我做错了什么?
      • 我忽略了将“as MovieClip”和“as TextField”添加到 getChildByName 调用的末尾。查看我的编辑。
      猜你喜欢
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多