Текст, исчезающий при повороте компонента табуляции в среде выполнения SWF Openlaszlo

Почему при применении поворота вкладки текст исчезает из вкладок? Есть ли способ сохранить метки в их относительном положении, чтобы они вращались вместе с вкладкой?

код:

<tabs name="dentes" height="200"  width="300" x="${this.width}" y="${this.height}" rotation="90">
    <tabpane name="coroa" text="Coroa" bgcolor="blue" width="100%" height="100%"> 
        <text>Nome:</text>
    </tabpane>
    <tabpane name="raiz" text="Raiz" bgcolor="red" width="100%" height="100%"> 
        <text>Nome:</text>
    </tabpane>
    <tabpane name="canal" text="Canal" bgcolor="green" width="100%" height="100%"> 
        <text>Nome:</text>
    </tabpane>
</tabs>

1 ответ

Это техническое ограничение времени выполнения Flash/SWF при использовании клиентских шрифтов. Это также упоминается в документации:

Руководство для разработчиков OpenLaszlo, глава 21, текстовые представления: в частности, вы должны понимать разницу между клиентскими шрифтами и встроенными шрифтами в приложениях, скомпилированных для SWF. (Приложения, скомпилированные для DHTML, не могут использовать встроенные шрифты). Потому что они не всегда ведут себя одинаково (например, клиентские шрифты не могут быть повернуты или изменены в непрозрачности из-за ограничения Flash Player)

Использовать <font> тег для встраивания шрифтов TTF в ваше приложение. Если вы выберете этот шрифт для своего текста, ротатин будет работать как положено, например:

<canvas width="100%" height="250">

    <!-- ATTENTION: Please download the KentucyFriedChickendFont.ttf file using
         this URL and put it in the same folder as this LZX file.
         http://svn.openlaszlo.org/openlaszlo/trunk/test/resources/ttf/KentuckyFriedChickenFont.ttf
    -->

    <font name="ChickenNoCFF" src="KentuckyFriedChickenFont.ttf" embedascff="false" />
    <font name="ChickenCFF" src="KentuckyFriedChickenFont.ttf" embedascff="true" />

    <inputtext x="100" 
               rotation="10"
               font="ChickenNoCFF" fontsize="32" 
               hasdirectionallayout="false"
               resize="true">
    Embedded font (no CFF)
    </inputtext>

    <!-- Text elements using @hasdirectionallayout="true" need to set
         @embedascff="true" for the SWF10+ runtimes -->
    <inputtext x="100" y="100"
               rotation="10" 
               font="ChickenCFF" fontsize="32" 
               hasdirectionallayout="true">
    Embedded font (embedded as CFF)
    </inputtext>

</canvas>

Вы должны встроить шрифты TTF в свое приложение, и тогда вы можете свободно вращать любой стандартный текстовый компонент.

Если вы используете hasdirectionallayout свойства текстовых компонентов в приложениях SWF, вы должны использовать embedascff="true" атрибут при встраивании пользовательских шрифтов.

Вот скриншот этого примера приложения SWF10, протестированного на 5.0 (транк).

Другие вопросы по тегам