loaderInfo null внутри функции-обработчика creationComplete - PullRequest
4 голосов
/ 30 апреля 2010

Я кодировал этот небольшой фрагмент, чтобы показать, что я не понимаю:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
    public function init():void {
        txtName.text = this.loaderInfo.toString();
    }
    </mx:Script>
    <mx:TextInput x="50" y="10" id="txtName"/>
</mx:Application>

Я получаю следующую ошибку:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Teste/init()[C:\Lucas\flex\AppName\src\Teste.mxml:5]
    at Teste/___Teste_Application1_creationComplete()[C:\User\flex\CornetaRecorder\src\Teste.mxml:2]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]
    at mx.core::UIComponent/set initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]
    at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628]
    at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]

Разве я не могу прочитать loaderInfo внутри обработчика creationComplete? Я пытаюсь передать строку из html в мой flash-компонент, поэтому мне нужно, чтобы loaderInfo работал.

1 Ответ

12 голосов
/ 01 мая 2010

Объект loaderInfo недоступен, пока не сработает событие FlexEvent.APPLICATION_COMPLETE. Попробуйте изменить свой код на это:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
    <mx:Script>
    <![CDATA[
        public function init():void {
            txtName.text = this.loaderInfo.toString();
        }
    ]]>
    </mx:Script>
    <mx:TextInput x="50" y="10" id="txtName"/>
</mx:Application>

Обратите внимание на строку 2, что creationComplete был изменен на applicationComplete.

Надеюсь, это поможет!

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