【问题标题】:Flex 4 Sprite Visual Element ProblemFlex 4 Sprite 视觉元素问题
【发布时间】:2011-05-04 06:45:51
【问题描述】:

我有以下 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>

当我运行应用程序时,我收到以下错误:

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

提前致谢:)

【问题讨论】:

    标签: actionscript-3 flex4 mxml flashplayer-10


    【解决方案1】:

    使用creationComplete="init();" 代替initialize="init();"

    【讨论】:

    • 我试过你的建议。但这次我得到了: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] ...
    【解决方案2】:

    也许你还没有实例化你的 'con' 对象。有没有可能这条线

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

    没有被您的&lt;s:Application&gt; &lt;/s:Application&gt; 括号括起来?

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 1970-01-01
      • 2012-07-28
      • 2011-07-29
      • 1970-01-01
      • 2010-09-05
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多