我想使用AS3为Flash创建自定义组件,但是当我创建我的类的实例并将其添加到舞台时,屏幕上不显示任何内容。我似乎无法弄清楚......在屏幕上不显示组件的自定义类Actionscript 3
我所拥有的是一个扩展MovieClip的类,它包含几个textField组件,为此我设置文本然后调用addChild(tfn);但没有...
任何帮助非常感激。
下面的代码:
包com.utils { 进口的flash.display.MovieClip; import flash.text.TextField; import flash.display.Loader; import fl.controls.Button; import flash.net.URLRequest; import flash.text.TextFormat; import flash.events.MouseEvent; import flash.events.Event;
public class LeaderBoardLoader extends MovieClip {
// components
public var txtPosition:TextField;
public var thumbHolder:MovieClip;
public var container:MovieClip;
public var txtName:TextField;
public var txtVotes:TextField;
public var btnViewVid:Button;
public var imgLoader:Loader;
// text styling
public var myFormat:TextFormat;
public var myFormat2:TextFormat;
public var myFormat3:TextFormat;
public function LeaderBoardLoader(position:String, imageURL:String, pers:String, votes:String, vidURL:String)
{
txtPosition = new TextField();
thumbHolder = new MovieClip();
txtName = new TextField();
txtVotes = new TextField();
btnViewVid = new Button();
container = new MovieClip();
myFormat = new TextFormat();
myFormat2 = new TextFormat();
myFormat3 = new TextFormat();
imgLoader = new Loader();
trace("started");
//Giving the format a hex decimal color code
myFormat.color = 0xFFFFFF;
//Adding some bigger text size
myFormat.size = 16;
//Giving the format a hex decimal color code
myFormat2.color = 0xFFFFFF;
//Adding some bigger text size
myFormat2.size = 11;
//Giving the format a hex decimal color code
myFormat3.color = 0xEF0000;
//Adding some bigger text size
myFormat3.size = 10;
trace("started");
container.width = 500;
container.height = 50;
txtPosition.x = 0;
txtPosition.y = 0;
txtPosition.text = position + ".";
txtPosition.setTextFormat(myFormat);
trace("started1");
//imgLoader.load(new URLRequest(imageURL));
imgLoader.width = 60;
imgLoader.height = 60;
thumbHolder.addChild(imgLoader);
thumbHolder.x = 20;
thumbHolder.y = 0;
trace("started2");
txtName.text = pers;
txtName.x = 100;
txtName.y = 10;
txtName.setTextFormat(myFormat2);
trace("started3");
txtVotes.text = votes;
txtVotes.x = 100;
txtVotes.y = 20;
txtVotes.setTextFormat(myFormat2);
trace("started4");
btnViewVid.textField.text = "VIEW VIDEO";
btnViewVid.textField.setTextFormat(myFormat3);
btnViewVid.x = 200;
btnViewVid.y = 20;
btnViewVid.addEventListener(MouseEvent.CLICK, viewVideo);
addChild(txtPosition);
addChild(thumbHolder);
addChild(txtName);
addChild(txtVotes);
addChild(btnViewVid);
}
function viewVideo(evt:MouseEvent):void
{
trace("hulo light");
}
}
}
所有的痕迹,没有编译器错误....
这可能不会解决它,但看过[这个问题](http://stackoverflow.com/questions/6298284/textformat-doesnt-do-anything)后,我想你想设置'defaultTextFormat'属性手动而不是调用'setTextFormat' – 2011-06-10 12:52:41