如何从简单的AS文件启动应用程序?

时间:2009-10-27 13:53:38

标签: flex actionscript-3 wrapper vk

我想使用vkontakte的新包装器功能,通过在SWF包装器下运行来增强您的应用程序功能。

这是使用此机制的sample application。它使用纯动作脚本来显示它的内容,而不是mx:Application

由于以下错误,我的mx:Application上的包装器失败了:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
 at mx.managers::FocusManager/activate()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\FocusManager.as:702]
 at mx.managers::SystemManager/activateForm()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:2493]
 at mx.managers::SystemManager/activate()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:2451]
 at mx.core::Application/initManagers()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\Application.as:1152]
 at mx.core::Application/initialize()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\Application.as:834]
 at DummyApp/initialize()[C:\Users\Eran.HOME\Documents\Web Projects\MaxiMarketing\TestMarketing\src\DummyApp.mxml:0]
 at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::childAdded()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:2127]
 at mx.managers::SystemManager/initializeTopLevelWindow()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:3396]
 at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:3219]
 at mx.managers::SystemManager/docFrameListener()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:3065]

所以我想我可以为包装器创建一个包装器,它可以启动我的应用程序并想出这个(DummyApp是我想要午餐的应用程序):

package 
{
 import Components.SidePanel;

 import flash.display.Sprite;
 import flash.events.Event;

   public class AppWrapper extends Sprite 
   {    
     public function AppWrapper() {
      this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
     }

     public function onAddedToStage(e: Event): void {
      var mainApp:DummyApp = new DummyApp();

      this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
     }
   }
}

不幸的是 - 它也失败了,问题仍然存在,如何从一个简单的AS文件启动应用程序?

2 个答案:

答案 0 :(得分:1)

您是否正在尝试创建 actionscript项目或Flex应用程序项目(以前不使用Flex Framework,后者会这样做)?您至少需要一个应用程序mxml文件才能使用Flex框架。如果在Flex中创建“Actionscript项目”,则主应用程序文件(.as)将是您的“文档类”或包装器。以下是使用Actionscript Application包装器的相关文章:

Possible to use Flex Framework/Components without using MXML?

你会在这里看到,你仍然需要使用一些mxml来“初始化”actionscript类。

答案 1 :(得分:0)

Vkontakte的包装现在支持Flex,这使得这个问题已经过时了。