пустая ссылка при переходе по элементам с нестандартной тематикой искры - PullRequest
2 голосов
/ 16 ноября 2011

Я упростил свой mxml до двух элементов: Button и CheckBox. Кнопка имеет очень простой пользовательский скин, есть 3 состояния, которые просто загружаются напрямую из swc (BackButtonUp, BackButtonMouseover и BackButtonClick). Все отображается нормально и работает, если вы используете мышь. Если вы нажмете все, вот когда он рухнет.

Я скомпилировал против flex sdk 4.5 и 4.5.1. Оба дают одинаковые результаты. Нет предупреждений / ошибок ни в режиме разработки, ни для самого ActionScript. Я понятия не имею, что не так, потому что трассировка стека не дает мне никакого собственного кода.

Если я изменю свой скин на <s:Rect> объекты, то все будет работать нормально. Только когда я использую загруженные символы SWC, происходит сбой.

Вылетает со следующим исключением (после нажатия клавиши TAB 6 раз):

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at fl.text::TLFRuntimeTabManager$/onKeyFocusChange()[F:\stage\Flash11.5_Main_325_Stage\main\authortool\Stage\tlfRuntime\fl\text\TLFRuntimeTabManager.as:73]

Это мое приложение mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" 
           width="400" height="400">
    <s:layout>
        <s:BasicLayout/>
    </s:layout>

    <s:Button x="10" y="10" skinClass="skins.BackButton" />
    <s:CheckBox x="10" y="100" />
</s:Application>

Это мой пользовательский скин mxml - это имена символов в файле .swc):

<?xml version="1.0" encoding="utf-8"?>
<s:SparkButtonSkin 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
    minWidth="21" minHeight="21" 
    alpha.disabled="0.5" 
    xmlns:local="*" >

    <fx:Metadata>
        <![CDATA[ [HostComponent("spark.components.Button")] ]]>
    </fx:Metadata>

    <!-- states -->
    <s:states>
        <s:State name="up" />
        <s:State name="over" />
        <s:State name="down" />
        <s:State name="disabled" />
    </s:states>

    <local:BackButtonUp id="buttonUp" includeIn="up, disabled"/>
    <local:BackButtonMouseover id="buttonOver" includeIn="over"/>
    <local:BackButtonClick id="buttonDown" includeIn="down"/>
</s:SparkButtonSkin>

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Я работаю в основном во Flash CS5, но у меня была очень похожая проблема с этим.Из вашего кода похоже, что вы устанавливаете скины только для вверх, вниз, снова и отключено.Когда вы перемещаетесь по элементам, он фактически выбирает их, но у вас нет выбранных скинов, поэтому он выдает ошибки.Попробуйте установить «selectedUpSkin», «selectedDownSkin», «selectedOverSkin» и «selectedDisabledSkin».Я думаю, что это должно решить вашу проблему.

0 голосов
/ 23 октября 2014

Это проблема TLF в CS 5.5 и CS6. Просто измените текст на классический текст, и он будет работать нормально.

...