使用动作脚本3来掩盖动画片段中的文本

时间:2011-04-05 19:06:22

标签: flash actionscript-3

我正在动态地将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;

但正在显示的文本仍显示在遮罩区域之外。任何帮助都会很棒。

2 个答案:

答案 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可能但是未经证实的修复。