示例:在 Unity 中调用 ActionScript 函数

此示例介绍在 Unity 中调用不同 AS3 函数的方法。 您将遇见三种脚本:

构建 Flash 时,程序将使用 ExampleClass 的 AS3 实现。在编辑器中运行或构建任何非 Flash平台时,程序将使用 C#/JavaScript 实现。

创建 ActionScript 版本的类将允许您使用原生 AS3 库构建 Flash Player。这在需要使用 Flash 无法导出的 .net 库时尤为有用。

ActionScript 3 (ExampleClass.as)

package
{
	public class ExampleClass
	{
		public static function aStaticFunction() :void
		{
			trace("aStaticFunction - AS3 Implementation");
		}

		public static function aStaticFunctionWithParams(a :int) :void
		{
			trace("aStaticFunctionWithParams - AS3 Implementation");
		}

		public static function aStaticFunctionWithReturnType() :int
		{
			trace("aStaticFunctionWithReturnType - AS3 Implementation");
			return 1;
		}

		public function aFunction() :void
		{
			trace("aFunction - AS3 Implementation");
		}
	}
}


ExampleClass - C#/JavaScript 实现

您可以创建类,以使用 C# 或 JavaScript 来模拟 AS3 实现。这类实现都非常相似。以下是两者的示例。

C# (ExampleClass.cs)

using UnityEngine;

[NotRenamed]
[NotConverted]
public class ExampleClass
{
[NotRenamed]
public static void aStaticFunction()
    {
Debug.Log("aStaticFunction - C# Implementation");
    }

[NotRenamed]
public static void aStaticFunctionWithParams(int a)
    {
Debug.Log("aStaticFunctionWithParams - C# Implementation");
    }

[NotRenamed]
public static int aStaticFunctionWithReturnType()
    {
Debug.Log("aStaticFunctionWithReturnType - C# Implementation");
return 1;
    }

[NotRenamed]
public void aFunction()
    {
Debug.Log("aFunction - C# Implementation");
    }
}

JavaScript (ExampleClass.js)

@NotConverted
@NotRenamed
class ExampleClass
{
@NotRenamed
static function aStaticFunction()
    {
Debug.Log("aStaticFunction - JS Implementation");
    }

@NotRenamed
static function aStaticFunctionWithParams(a :int)
    {
Debug.Log("aStaticFunctionWithParams - JS Implementation");
    }

@NotRenamed
static function aStaticFunctionWithReturnType() :int
    {
Debug.Log("aStaticFunctionWithReturnType - JS Implementation");
return 1;
    }

@NotRenamed
function aFunction()
    {
Debug.Log("aFunction - JS Implementation");
    }
}


如何调用函数

以下代码将在构建 Flash 时调用 ActionScript (.as) 实现中的类函数。这允许您在 flash 导出工程中使用原生 AS3 库。构建非 Flash 平台或在编辑器中运行时,程序将使用类的 C#/JavaScript 实现。

ExampleClass.aStaticFunction();
ExampleClass.aStaticFunctionWithParams(1);
int returnedValue = ExampleClass.aStaticFunctionWithReturnType();

ExampleClass exampleClass = new ExampleClass();
exampleClass.aFunction();

Page last updated: 2013-06-25