可能なクラス名の衝突の他に、ActionScript 3の「トレーサ」のような名前を持つトップレベル(パッケージ名なし)クラスを作成することに何らかの問題や副作用がありますか?そのようなクラスをトップレベルにして、コード内でimportステートメントを使用する必要はありません。これまで私は何の問題もなかった。AS3で最上位クラスを作成することの副作用ですか?
答えて
ベストプラクティスは、必要に応じていつでもパッケージを使用することです。あなたが構築しているものがユーティリティであれば、パッケージをutil
に入れたほうが良いでしょう。 コア機能として見ることができる
あなたが開発している場合、何かは、トップレベルメンバーを実装するには問題はありません。
最後に計画しているのは、再利用性です。再利用することのできないもの(最終的な実装クラス)を構築していることが分かっている場合は、swfをコンパイルしても機能し続ける必要があるため、トップレベルのクラスになることを心配しないでください。
代わりに、あなたは枠組みとして再利用したい機能を作っている、場合は、おそらく将来の発展と柔軟性のためのフレームワークレベルメンバーとしてそれを置く方がいいでしょう。
zzzzBovさんの回答は良いアドバイスです。しかし、あなたの質問に明示的に答えてください:可能な名前の衝突は確かにあなたがやっていることに対する唯一の副作用です。
+1。明白な答えをありがとう。他の答えは、[他の]問題もないが条件付きのトーンがあることを示しています。これは知っておくと良いことです。あなたのGecko btwを愛しています! – Triynko
私は考えていた可能性のある問題を説明しようとしています。それは技術的に名前衝突ではないため投稿しています(文字の場合が異なります)。
大文字と小文字の違い(たとえば、 "flash"、 "fl"、 "com"、またはカスタムパッケージ)の違いを除いて、トップレベルパッケージの名前を共有するトップレベルクラスがあるとします。 。 "var x:"のようなものを入力して完全修飾クラス名を入力しようとすると、FlashDevelopのようなプログラム内のコード補完エンジンは、 "Flash"クラス(存在する場合)ではなく、あなたが入力しようとしているかもしれない "フラッシュ"パッケージ。主に、それがそのように機能するという少しの感覚を作り出すため、非常に刺激的です。それはちょっとコードを完成させる必要があります。(
したがって、トップレベルのクラスには、
カスタムパッケージには、Vectorという名前のクラスがあり、Flash 9を使用していましたが、ファイルを保存するためにFlash 10を使用するまで、すべてが完璧でした。問題は私でした。エラー#1007:非コンストラクタでインスタンス化しようとしました。これを修正する唯一の方法は、ASクラスの名前を変更することでした。幸いにも、バックエンドクラスのバインディングJavaのクラスVectorで動作します。
トップレベルのクラスでは、Flashがクラスパッケージを処理していないようです。
この質問の日付がほぼ2年前であっても、これが誰かを助けてくれることを願っています。
- 1. AS3でカスタムtrace()クラスを作成する
- 2. BXの副作用ですか?
- 3. エラースタック上にオブジェクトを作成することはできませんが、ヒープ上にのみ作成できるクラスを作成する際には、
- 4. Pythonの副作用を適用する
- 5. 作成されたすべてのコントロールに.NETでハンドルがあることを確認することの副作用は何ですか?
- 6. AS3でドロップシャドウのテキストを作成する
- 7. 副作用のゲッター
- 8. LD_LIBRARY_PATHの副作用
- 9. 最大値で宣言(var、constant)を使用した副作用
- 10. Assembly.Loadを複数回呼び出すことの副作用
- 11. jQueryとは反対側です。最上位(最上位/最上位)
- 12. *副作用*を生成する式は正確には何ですか?
- 13. MVC副作用は
- 14. AS3とFlashDevelopのみを使用してflvプレーヤーのラッパーを作成することはできますか?
- 15. WinformsでControl.Controls.Addの副作用は何ですか?
- 16. のMongoDB:MapReduceの副作用
- 17. OCamlの副作用とトップレベルの表現
- 18. Go言語の副作用
- 19. C++マクロの副作用
- 20. symfonyのキャッシュフォルダを副作用なく削除できますか?
- 21. 動的SQLのCommandTypeを含まない副作用ですか?
- 22. multi_schemaと副作用の問題
- 23. AS3で視覚的に作成されたクラスを編集
- 24. このif節で副作用が実行されるかどうか
- 25. constexprによってスローされた例外に副作用を使用することは合法ですか?
- 26. 関数型プログラミングの副作用は何ですか?
- 27. AS3でFLVPlaybackを作成できない
- 28. 行のActivity.setContentView()を2回呼び出すことによる副作用
- 29. Mooseでクラス属性を作成する最善の方法は何ですか?
- 30. データベーステーブルのクラス/オブジェクトを作成することはできますか?
ありがとうございました。 Tracerはtraceコマンドを置き換えます。トレーサのトレース、再ルーティング、ログ、Tracer.write(... args)およびTracer.writeError(e:Error)の呼び出しのイベントのディスパッチ。再利用可能なSWCにコンパイルされたフレームワーク(フラッシュベースのOS [shell/gui/dock-controls/net-transactionなど])の一部です。トレーサは特別なケースです。一時的にどこでも使用できるので、インポート・ステートメントを必要としないトップレベルのクラスとして理に適っていると思います。興味があればTracerの実装を掲載しました:http://stackoverflow.com/questions/715738/creating-a-custom-trace-class-in-as3/4453850#4453850 – Triynko
マークされた回答: "...問題はありませんトップレベルメンバーを実装しています。 [私が言及した可能な名前の衝突以外] – Triynko