2009-10-27 42 views
2

我想使用vkontakte的新包装功能,通过在SWF包装下运行来增强您的应用程序功能。如何从简单的AS文件启动应用程序?

这是一个使用此机制的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); 
    } 
    } 
} 

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

回答

0

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

1

您是否试图制作一个 actionscript项目或一个flex应用程序项目(以前不使用Flex框架,后者呢)?您至少需要一个应用程序mxml文件才能使用Flex框架。如果您在Flex中创建“Actionscript项目”,主应用程序文件(.as)将成为您的“文档类”或包装。下面是关于使用ActionScript应用程序包装一个相关的帖子:

Possible to use Flex Framework/Components without using MXML?

你会在这里看到,虽然你仍然需要使用MXML“初始化” ActionScript类的位。

+0

Vkontakte的包装器(http://vkontakte.ru/swf/api_wrapper.swf)只与纯AS交互良好,所以我需要创建一个AS中间包装器来做到这一点。调用流程应如下所示:VK Wrapper(纯AS) - > My Wrapper(纯AS) - > My Application(mx:应用程序)。 – 2009-10-27 15:17:26

相关问题