Использование actionscript 3 для маскировки текста в мувиклипе - PullRequest
0 голосов
/ 05 апреля 2011

Я динамически добавляю данные xml в три текстовых поля, покупаю цикл, а затем добавляю текстовый клип text_info в видеоклип 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 ]

1 голос
/ 06 апреля 2011

Ну, я не совсем понимаю, как вы добавляете элементы на сцену (на временной шкале?) - если имя вашего экземпляра установлено в 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;
0 голосов
/ 06 апреля 2011

Маскирование текстовых полей, в которых нет встроенных шрифтов, проблематично во флэш-памяти. Убедитесь, что вы вставили шрифты ИЛИ, если возможно, попробуйте использовать TLFTextField. Я не уверен на 100%, но я думаю, что эти проблемы решаются в TLFTextField. Итак, еще раз, встраивание шрифтов == верный способ исправить, TLFTextField возможно, но недоказанное исправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...