私はムービークリップにテキストフィールドがあり、その中にボタンがあります。ユーザーのマウスがテキストの上を移動するときに、テキストの色を変更できるようにする必要があります。以下はコードスニペットです。関数の外側からテキストフィールドへの参照にアクセスするにはどうすればよいですか?前もって感謝します。関数スコープの外にあるムービークリップオブジェクトにアクセスする
プライベート関数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 =新しいれるTextFormat(); myTxtFormat.color = 0xccff00; testMouseOverで
var myText:TextField = new TextField;
myText.htmlText = e.currentTarget.name;
myText.setTextFormat(symTxtFormat);
}
OK、私が追加したものをheres: 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になっています。 私は間違って何をしていますか? – Iris
私は "as MovieClip"と "as TextField"をgetChildByName呼び出しの終わりに追加することを怠りました。私の編集を参照してください。 –