在HTML视图中使用Flex库API

时间:2011-10-11 07:14:32

标签: html flex

我有一组Flex专有库(SWC中的ActionScript API),我想知道是否可以使用这些API 完全在HTML中构建UI来实现功能,而不是Flex基于UI /视图。如果是,那么方法(或一些例子)是什么?

这样做的一个原因是重新使用现有的Flex(域层)API(短期内),而不是像JavaScript那样重写它们。

3 个答案:

答案 0 :(得分:0)

我不知道支持ActionScript的HTML呈现器(AKA浏览器)。您需要一个ActionScript代码的JavaScript / HTML端口才能在HTML / JavaScript Web应用程序中使用它。对于很多事情,我认为这非常困难。

答案 1 :(得分:0)

http://ui.ajax.org提供了一个JavaScript框架,在组件方面非常接近Flex。它甚至使用基于XML的布局框架,如MXML,称为AML。

它的绑定方式与使用{}标记的Flex绑定方式几乎相同,请参阅:http://ui.ajax.org/#demos/features.smartbindings。我认为这就像你能得到的一样接近。

答案 2 :(得分:0)

据我所知,在HTML / JS中使用AS库的唯一方法是构建SWF,它通过ExternalInterface将这些库的API暴露给JS。

您可以使用JSInterface库,这比原始的ExternalInterface更方便。创建JS对象并将其属性映射到库API方法。像这样(AS代码):

var inited:Boolean = false;

try
{
    JSInterface.initialize( this );
    inited = true;
} catch( e:Error )
{
    trace( "ERROR cannot initialize JSInterface: " + e.message );
}

if( inited )
{
    var apiObject:JSDynamic = new JSDynamic( "Object" );
    apiObject.apiFunc1 = library.func1;
    apiObject.apiFunc2 = library.func2;
    // etc

    JSInterface.window.yourAPIName = apiObject;
}

此后,您将能够通过调用yourAPIName.apiFunc1()yourAPIName.apiFunc2()等来访问JS代码中的库函数。

是否可接受或不强烈取决于您的库的性质。对于UI库,我确信如果不重写JS中的代码就不可能使用它们。