【问题标题】:Converting Sprite based SWF file to mxml将基于 Sprite 的 SWF 文件转换为 mxml
【发布时间】:2012-01-10 22:20:44
【问题描述】:

我使用 AS3 作为 Flash Builder 4.5 中的“Actionscript 项目”编写了一个大型 Actionscript 项目。我有一堆可靠的、可重用的代码,但其中一个重要的组件是一个 main.as 文件,它扩展了 Sprite 并用作我的应用程序的显示代码。

由于各种原因,我现在需要将它作为 Flex 应用程序。我正在尝试尽可能少的包装,所以这就是我所拥有的(感谢互联网):

<?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" minWidth="590" minHeight="700"
           initialize="initPlayer()">`

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.core.UIComponent;
        public function initPlayer():void {
            Alert.show("Testing!");
            var comp:UIComponent = new UIComponent();
            comp.addChild(new MainView());
            addChild(comp);
        }
    ]]>
</fx:Script>
</s:Application>

但是,当我启动它时,它会出现一个空白窗口。没有错误,警报不会触发,什么都没有。知道发生了什么吗?

【问题讨论】:

    标签: flash actionscript-3 apache-flex actionscript mxml


    【解决方案1】:

    尝试使用applicationComplete 而不是initialize。初始化在应用程序生命周期的早期触发,像 addChild 这样的事情更适合在周期的后期(applicationComplete 对应于子组件中的 creationComplete)。

    【讨论】:

      【解决方案2】:

      我使用一个简单的精灵类“TestSprite”代替你的“MainView”。有用。警报和 TestSprite 都有效。所以,我认为你的“MainView”中一定有一些东西阻止它显示它。

      public class TestSprite extends Sprite
      {
          public function TestSprite()
          {
              super();
              graphics.beginFill(0x000000);
              graphics.drawRect(0, 0, 100, 100);
              graphics.endFill();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-14
        • 1970-01-01
        • 1970-01-01
        • 2020-04-03
        • 2012-08-15
        • 2014-10-06
        相关资源
        最近更新 更多