我正在动态地将xml数据添加到三个文本字段中购买循环,然后将text_info movieclip添加到scroll_box影片剪辑,然后将scroll_box添加到_myCanvas movieClip。我想屏蔽数据但是我没有得到结果我应该。
_myCanvas = getChildByName("myCanvas") as MovieClip;
_myCanvas.height = 369.10;
_myCanvas.width = 596.15;
_myCanvas.x = 114;
_myCanvas.y = 259.05;
var MyClass:Class = ApplicationDomain.currentDomain.getDefinition("MyScrollElement") as Class;
_myScrollElement = new MyClass();
var scroll_box = _myCanvas.addChild(_myScrollElement);
for (i = 0; i < myXML.Row.length(); i++){
var item:text_holder = new text_holder();
scroll_box.addChild(item);
var _data = myXML.Row[i];
//add xml data to text fields
move each textbox to
current_y_right = current_y_right + 131;
item.x = current_x_right;
item.y = current_y_right;
}
var myMask = getChildByName("myMask") as MovieClip;
myMask.height = 369.10;
myMask.width = 596.15;
myMask.x = 114;
myMask.y = 259.05;
_myCanvas.mask = myMask;
但正在显示的文本仍显示在遮罩区域之外。任何帮助都会很棒。
答案 0 :(得分:1)
嗯 - 我不太清楚你是如何在舞台上添加项目的(在时间轴上?) - 如果在IDE中设置实例名称,则不需要重新分配实例名称,只需使用它。另外=确保键入所有变量。有几个没有,这很可能是一个问题(闪存可能也在做假设)。
就掩模而言,我只能假设这是舞台上的一个物体。确保选中“嵌入字体”。这也可能是掩码不在正确深度的问题(您的新创建对象基本上在掩码上)。我可能会建议在运行时创建一个新的Sprite并以这种方式进行屏蔽。
没有看项目,很难说,除此之外。
_myCanvas.height = 369.10;
_myCanvas.width = 596.15;
_myCanvas.x = 114;
_myCanvas.y = 259.05;
var MyClass:Class = ApplicationDomain.currentDomain.getDefinition("MyScrollElement") as Class;
var scroll_box:DisplayObject = new MyClass() as DisplayObject;
_myCanvas.addChild(scroll_box);
for (i = 0; i < myXML.Row.length(); i++){
var item:text_holder = new text_holder();
scroll_box.addChild(item);
var _data:String = myXML.Row[i];
current_y_right = current_y_right + 131;
item.x = current_x_right;
item.y = current_y_right;
}
var myMask:Sprite = new Sprite();
myMask.graphics.beginFill(0x00ff00, 0);
myMask.graphics.drawRect(114, 259.05, 369, 596);
myMask.graphics.endFill();
addChild(myMask);
_myCanvas.mask = myMask;
答案 1 :(得分:0)
屏蔽未嵌入字体的文本字段在flash中存在问题。确保嵌入字体或尽可能使用TLFTextField。我不是100%肯定,但我认为这些问题在TLFTextField中得到了解决。所以再一次,嵌入fonts == surefire方法来修复,TLFTextField可能但是未经证实的修复。