Некоторые текстовые поля не отображаются

#actionscript-3 #actionscript

#actionscript-3 #actionscript

Вопрос:

В основном я добавляю динамические спрайты и текстовые поля, которые я заполняю из xml, в цикле for. Я создаю своего рода таблицу, поэтому для каждого спрайта я добавляю новые данные в текстовые поля. Я загрузил xml и передал данные в 2 xml-списка, оба отслежены и работают нормально… Позже я добавляю данные из xml-списка в массив, который затем зацикливаю в цикле for.

Проблема в том, что из 1-го xml-списка видны 6 из 7 текстовых полей, 1 нигде не может быть найдено : / из 2-го xml-списка видно только 1 из 4…

Я перепробовал все, их трассировка возвращает, что они видны, в хорошем положении, заполнены текстом, контрастируют цветом с фоном…

Если у кого-нибудь есть идеи, что меня беспокоит, я был бы признателен за любую помощь…

Спасибо!

Марио

PS: вот часть, которая, вероятно, вызывает проблемы..

 for(mojbroj = 0; mojbroj < dohvatiosamih2; mojbroj  )
{
    if(mojbroj % 2)
    {
        lista.graphics.beginFill(0xdddddd);
        lista.graphics.drawRect(150, prenesi   (mojbroj   1) * 17, 200, 17);
        lista.graphics.endFill();

    }
    else 
    {
        lista.graphics.beginFill(0xbbbbbb);
        lista.graphics.drawRect(150, prenesi   (mojbroj   1) * 17, 200, 17);
        lista.graphics.endFill();

    }

    poljeIme.x = 150;
    poljeIme.y = prenesi   (mojbroj   1) *17;
    poljeIme.height = 17;
    poljeIme.defaultTextFormat = ovo_fmt;
    poljeIme.text = textArray3[mojbroj];
    /*  
    poljeIme.background = true;
    poljeIme.backgroundColor = 0xff0000;
    */
    poljeKvadrat.x = 305;
    poljeKvadrat.y = prenesi   (mojbroj   1) * 17;
    poljeKvadrat.height = 17;
    poljeKvadrat.defaultTextFormat = ovo_fmt;
    poljeKvadrat.text = textArray4[mojbroj];

    addChild(lista);
    addChild(poljeIme);
    addChild(poljeKvadrat);
    // textArray.push(poljeIme);
    trace(poljeIme.y   "   "   poljeIme.x);

}
  

Комментарии:

1. Привет, Марио, к сожалению, данных для воспроизведения вашей проблемы мало, но вы можете захотеть проверить эти распространенные ошибки: 1. Убедитесь, что вы не получаете пустые строки из используемых вами xml-узлов для текстовых полей, которые не отображаются; 2. Если вы используете встроенные шрифты, убедитесь, что встраивание работает и для свойства .embedFonts установлено значение true для текстового поля. HTH

2. спасибо за ваш ответ. Встроенные шрифты не используются в этих конкретных текстовых полях, массивы преобразуют данные в строки из узлов xml. проблема в том, что внутри цикла for генерируются все текстовые поля, и только последнее не отображается…

3. Хорошо, я все еще строю догадки, но вы установили значение y для обоих текстовых полей равным prenesi (mojbroj 1) * 17. Я предполагаю, что prenesi — это смещение, а 17 — высота текста. Есть ли у вашего списка заголовок или что-то в этом роде? В противном случае я не понимаю, почему вы используете (mojbroj 1). Кроме того, для видеоролика, содержащего ваш список, у вас применена маска или вы используете свойство scrollRect ? Не могли бы вы выделить свой код во фрагмент, который можно было бы легко воспроизвести / протестировать?

Ответ №1:

Вы делаете это addChild(lista); на каждой итерации, но я предполагаю, что вы определили это перед вашей for итерацией, и она содержит фон с цветными строками. Возможно, lista находится поверх последнего текстового поля. Попробуйте make lista.alpha = 0.5 и посмотрите, просвечивает ли ваше текстовое поле.