텍스트 필드가 있고 그 안에 버튼이있는 무비 클립이 있습니다. 사용자가 마우스를 텍스트 위에 놓을 때 텍스트의 색을 변경할 수 있어야합니다. 아래는 코드 스 니펫입니다. 함수 외부에서 텍스트 필드에 대한 참조에 액세스하려면 어떻게합니까? 미리 감사드립니다.함수 범위 외부에서 무비 클립 객체에 액세스
개인 기능 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 (예 : 된 MouseEvent) { VAR의 myTxtFormat : 된 TextFormat = 새의 TextFormat(); myTxtFormat.color = 0xccff00;
var myText:TextField = new TextField;
myText.htmlText = e.currentTarget.name;
myText.setTextFormat(symTxtFormat);
} testMouseOver에서
좋아요, 그래서 내가 추가 한 것을 heres : createRows() - container.name = "myContainer"및 myTxt.name = "htmlTxtField"에 이름을 추가했습니다. testMouseOver()에 을 추가합니다. var containerMC : MovieClip = getChildByName ("myContainer"); var txtField : TextField = containerMC.getChildByName ("htmlTxtField"); 정적 유형 flash.display : DisplayObject를 사용하여 값과 암시 적으로 강제 변환되는 오류 -1118 : 가능성이있는 유형의 flash.text : TextField에 대한 DisplayObject가 표시됩니다. 내가 뭘 잘못하고 있니? – Iris
나는 "as MovieClip"과 "as TextField"를 getChildByName 호출의 끝에 추가하지 않았다. 내 편집을 참조하십시오. –