Проблема с визуальным элементом спрайта Flex 4

У меня есть следующий класс ActionScript 3.0:

public class ShopRaider extends Sprite {
public function ShopRaider () {
    // some code
}

}

У меня есть файл приложений .mxml как таковой:

<s:Application name="Spark_SpriteVisualElement_addChild_test"
           xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx"
           initialize="init();">

<fx:Script>
    <![CDATA[
        import com.ShopRaider;
        private var game:ShopRaider;

        private function init():void
        {
            game = new ShopRaider();
            con.addChild(game);
        }
    ]]>
</fx:Script>

<s:SpriteVisualElement id="con" width="640" height="480" ></s:SpriteVisualElement>

when i run the application, i get the following error:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at spark.components::Application/initialize()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:907]
at ShopRaider/initialize()
at spark.core::SpriteVisualElement/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\core\SpriteVisualElement.as:2053]
at spark.core::SpriteVisualElement/addChild()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\core\SpriteVisualElement.as:2010]
at ShopRaider/init()[C:\Users\ltadmin\Adobe Flash Builder 4\ShopRaider\src\ShopRaider.mxml:16]
at ShopRaider/___ShopRaider_Application1_initialize()[C:\Users\ltadmin\Adobe Flash Builder 4\ShopRaider\src\ShopRaider.mxml:6]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:12266]
at mx.core::UIComponent/set processedDescriptors()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1630]
at mx.core::UIComponent/initializationComplete()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7280]
at mx.core::UIComponent/initialize()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7259]
at spark.components::Application/initialize()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:916]
at ShopRaider/initialize()
at spark.core::SpriteVisualElement/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\core\SpriteVisualElement.as:2053]
at spark.core::SpriteVisualElement/addChild()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\core\SpriteVisualElement.as:2010]
at ShopRaider/init()[C:\Users\ltadmin\Adobe Flash Builder 4\ShopRaider\src\ShopRaider.mxml:16]
at ShopRaider/___ShopRaider_Application1_initialize()[C:\Users\ltadmin\Adobe Flash Builder 4\ShopRaider\src\ShopRaider.mxml:6]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:12266]
at mx.core::UIComponent/set processedDescriptors()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1630]
at mx.core::UIComponent/initializationComplete()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7280]
at mx.core::UIComponent/initialize()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7259]
at spark.components::Application/initialize()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:916]
at ShopRaider/initialize()
at mx.managers.systemClasses::ChildManager/childAdded()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\systemClasses\ChildManager.as:189]
at mx.managers.systemClasses::ChildManager/initializeTopLevelWindow()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\systemClasses\ChildManager.as:341]
at mx.managers::SystemManager/initializeTopLevelWindow()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2810]
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::kickOff()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2637]
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2539]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:515]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

Где я ошибаюсь? Кажется, это самый простой пример, но я застрял. Пожалуйста помоги !!

PS: я использую FLEX 4, Flash Player 10 и Flash Builder 4.

Заранее спасибо :)


person codemaniac    schedule 04.05.2011    source источник


Ответы (2)


используйте creationComplete="init();" вместо initialize="init();"

person Timofei Davydik    schedule 04.05.2011
comment
я попробовал ваше предложение. Но на этот раз я получил: TypeError: Error #1009: Cannot access a property or method of a null object reference. at spark.components.supportClasses::SkinnableComponent/commitProperties()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:427] at spark.components::Application/commitProperties()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:931] at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772] ... - person codemaniac; 04.05.2011

Возможно, вы не создали экземпляр своего объекта 'con'. Возможно ли, что линия

<s:SpriteVisualElement id="con" width="640" height="480" ></s:SpriteVisualElement>

не заключен в скобки <s:Application> </s:Application>?

person Jim In Texas    schedule 22.08.2011