3

Flex 3.6 でネイティブ拡張を作成しています。コード化されたネイティブ側は、Flex ライブラリ プロジェクトを作成し、.ane ファイルを作成します。最後に、.ane ファイルを myFlex プロジェクトにインポートしました。
これが私が抱えていた問題です。アプリをデバッグしているときに、「1046: 型が見つからないか、コンパイル時の定数ではありませんでした: ExtensionContext」というエラーが発生します。Library project .as class を添付しました。

前もって感謝します

package com.extension.samples
{
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;
    import flash.external.ExtensionContext;

    public class NetworkConnectionANE extends EventDispatcher
    {
        public var _extContext : ExtensionContext;

        public function NetworkConnectionANE(target:IEventDispatcher=null)
        {
            _extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE", null);
            super(target);
        }
        public function Connect(path:String):int
        {
            return _extContext.call("nativeFunc", path);
        }
        public function dispose():void
        {
            _extContext.dispose();
        }
    }
}

編集: 別の Flex デスクトップ アプリでライブラリ プロジェクトから作成された .swc ファイルを使用しようとしましたが、同じエラー
も _extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE",""); で試しました。
編集:Flex SDKに関する問題、SDK 4.6では問題ありません。ここで問題は、Flex 3.6 SDK の lib プロジェクトで Extension を使用する方法です。

4

3 に答える 3

6

フラッシュ ビルダーでプロジェクトを右クリックして、プロジェクトのプロパティに移動し、フレックス ライブラリ コンパイラに air ライブラリを追加します。

于 2013-01-15T20:49:01.770 に答える
-1

私が知っているように、次の場合は ExtensionContext.createExtensionContext() が null になる可能性があります。

  1. 呼び出しは .ane ファイルにありません。これを .swc または .swf ファイルから呼び出すことはできません。つまり、呼び出す前に .ane ファイルにコンパイルする必要があります。

  2. 拡張機能でサポートされていないプラットフォームで拡張機能を使用しようとしています。たとえば、PC で iOS 拡張機能を使用しようとするとします。

  3. 拡張機能の ID が存在しません。拡張 ID は、次のように extension.xml で指定したものと同じである必要があります。

    <extension xmlns="http://ns.adobe.com/air/extension/3.5">
        <id>com.extension.samples.NetworkConnectionANE</id>
        <versionNumber>0.0.1</versionNumber>
        ....
    

ところで、OS 固有の API を指定する場合を除き、ExtensionContext.createExtensionContext 呼び出しの 2 番目のパラメーターを設定する必要はありません (これを行うアプリも見たことがありません)。

于 2012-12-04T16:36:26.260 に答える