【问题标题】:The native attribute can only be used with function definitionsnative 属性只能与函数定义一起使用
【发布时间】:2014-01-30 05:36:53
【问题描述】:

ActionScript 3 上下文中的错误消息“本机属性只能与函数定义一起使用”是什么意思?我试过用谷歌搜索信息,但我没有任何运气。我正在尝试更新的代码(来自这里:https://github.com/jmhnilbog/Nilbog-Lib-AS2/blob/master/mx/mx/remoting/debug/NetDebug.as)如下:

import mx.remoting.debug.events.NetDebugTrace;
import mx.remoting.debug.GlobalLocalConnection;
import mx.remoting.debug.events.NetDebugError;
import mx.remoting.debug.NetDebugConfig;
import mx.remoting.debug.events.NetDebugFailedSendError;
import mx.remoting.debug.commands.GetConfig;
import mx.remoting.debug.events.NetDebugStatus;
import mx.remoting.debug.events.NetDebugTraceNetServices;

native class mx.remoting.debug.NetDebug extends Object
{
   public function NetDebug();
   private var _config:mx.remoting.debug.NetDebugConfig;
   private var _glc:mx.remoting.debug.GlobalLocalConnection;
   private var _ncs:Array;
   private var _nextNewId:Number;
   private function _trace(traceobj:Object):Void;
   private function _traceNetServices(who:String, severity:String, number:Number, message:String):Void;
   public function addNetConnection(nc:NetConnection):Number;
   public function getConfig():mx.remoting.debug.NetDebugConfig;
   static public function getNetDebug():mx.remoting.debug.NetDebug;
   static public function globalOnStatus(statusobj:Object):Void;
   static public function initialize():Boolean;
   static private var ndSingleton:mx.remoting.debug.NetDebug;
   public function onEvent(eventObj:Object):Boolean;
   public function onEventError(errorObj:Object):Boolean;
   public function onReceiveCommand(commandobj:Object):Void;
   public function onReceiveError(errorobj:Object):Void;
   public function removeNetConnection(nc:NetConnection):Void;
   public function requestNewConfig():Boolean;
   public function sendCommand(commandobj):Boolean;
   public function sendDebugEvent(eventobj:Object):Boolean;
   public function sendStatus(statusobj:Object):Boolean;
   static public function stripNCDEventToMinmal(ev:Object):Object;
   static public function trace(obj:Object):Void;
   static public function traceNetServices(who:String, severity:String, number:Number, message:String):Void;
   public function updateConfig(config:Object):Void;
   static var version:String;
}; 

【问题讨论】:

    标签: actionscript-3 actionscript-2


    【解决方案1】:

    类不能是native,只能是它们的函数。

    native 关键字表示 AS3 函数是 native 代码(即已编译的程序集)的薄包装。

    【讨论】:

    • 我在发布此内容后所做的是将所有函数定义更改为原生(除了与构造函数关联的函数定义)并从类中删除原生修饰符。这是正确的吗?
    • 根据 Adob​​e 的说法:[Native] 指定一个函数或方法由 Flash Player 在本机代码中实现。 Flash Player 在内部使用 native 关键字在 ActionScript 应用程序编程接口 (API) 中声明函数和方法。 此关键字不能在您自己的代码中使用。。此讨论可能会有所帮助:forums.adobe.com/thread/672331。你能澄清一下你想要做什么吗?
    • 我正在尝试在我的 ActionScript 3 代码中包含 NetServices.as 和 NetDebug.as。不幸的是,他们似乎已经从 AS3 中删除了这些类,所以我正在从一些我发现试图添加它们的旧 AS2 代码向后工作。上面定义的本机类最初是一个外部类。
    猜你喜欢
    • 1970-01-01
    • 2014-07-04
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多