2009-05-27 6 views

答えて

0

非型配列。 Actionscript(ECMAScript/Javascriptの方言なので、簡単に使えるとわかっている場合)は、Arrayクラスを持っています。それは型がなく、慣れるだけのものです。

すべての動的オブジェクトは、ハッシュテーブルにすることができます。これは実際には時々本当にいいです。

シンタックスはかなり似ているので、拾いやすいです。スコープの違いがありますが、変数と関数の宣言が異なっています。

ECMAScriptはJava/C++よりもダイナミックであり、非常に便利です。

Flexを使用している場合は、MXMLを十分に活用しようとすると、ある種の作業がはるかに簡単になります。

私はこれに気づくようにこれに追加しようとします。

+0

AS3では、クラスは単なるクラス以上のものであると聞きましたが、それは「クラスオブジェクト」と呼ばれています。私はこれを理解していませんでした。 –

+0

それは本当に大きな問題ではない、クラスはまだほとんど同じように動作します。 – CookieOfFortune

1

ActionScript 3.0は、能力の限りでは、C++よりもJavaに最も近いと言えます。インタフェース、単一継承、メタデータをサポートしています。それは両方の構文とは異なりますが。 C/C++/JavaスタイルからActionScriptへの移行の最大の違いは、変数の定義です。 ActionScript 3で、それは、このようなとして行われることになるのに対し

int x = 0; 

var x : int = 0; 

varが必要であり、型が後に指定されているCでは、int型を宣言するためには、次の操作を行います結腸

機能にも同様の変更が必要です。 Cで:

void foo(int x) { //yeah } 

とActionScript 3:

function foo(x: int) : void { //yeah } 

のActionScript 3はまた、ブラケット演算子[]の使用を介してメタデータをサポートします。おそらく最も一般的なメタデータはBindableです。Bindable宣言の後の変数は、変数の変更時に自動的に更新されるコンポーネントにバインドされます。

[Bindable] 
var x : int = 0; 

これはおそらく、私が考えることができるCスタイルとASスタイルの最も大きな違いです。 Flexを使用している場合、MXMLはまったく新しい構文と能力を提供します。

編集:ちょっとしたことを思い出しました:ActionScript 3でコンストラクタのオーバーロードがありません。デフォルトのコンストラクタが残っています。オプションのパラメータを追加したい場合は、次のようにそうする必要があります。

は、上記の例で
class Foo 
{ 
    public function Foo(x : number, y : int = 3, z : string = "default") : void 
    { //stuff here } 
} 

、xが必要ですが、両方y、zは任意であり、3と「デフォルト」にデフォルト設定され、それぞれ。

オブジェクトクラスについてのご質問は、hereがJavaとAS3の違いを詳しく説明している良い記事です。

Thisはどのようなクラスオブジェクトであるかを説明します。本質的にすべてのクラス宣言はClassクラスのインスタンスです。それは混乱の種ですが、あなたがそれに慣れても、プログラムの仕方やAS3がどのようにOOを行うかは、実際には変わりません。 AS3 OOはJava OOに非常に近いです。

+0

より明確にすることができます。私は、AS3ではクラスが単なるクラス以上のものであると聞いています。クラスは「クラスオブジェクト」と呼ばれています。私はこれを理解していませんでした。 –

-1

クラスとクラス階層は、AS3では「偽造」されています。 AS3はJavascriptに近く(実際にはクラスの概念はありません)、プロトタイプベースのオブジェクトで動作します。

+0

あなたはより明確になることができます。私は、AS3ではクラスが単なるクラス以上のものであると聞いています。クラスは「クラスオブジェクト」と呼ばれています。私はこれを理解していませんでした。 –

+0

JavaとJavascriptの対比は、http://peter.michaux.ca/articles/transitioning-from-java-classes-to-javascript-prototypesにあります。 Actionscriptでは "class" esを使用できますが、 MXMLCコンパイラは、プロトタイプベースのオブジェクト定義を使用するようにコードをマッサージしています。 – an0nym0usc0ward

+0

あなたはクラスがAS3で偽造されていると思います。 AS2はjavascriptと似ていましたが、AS3はjavaとよく似ています。私が与えた答えのリンクを読んでください。 AS3は現在、適切な「育った」言語です:) – kenneth

0

ActionScript 3のクラスは、実際にはクラス「オブジェクト」です。つまり、それらはClassクラスのインスタンスであり、Objectから派生しています。ここを参照してください:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Class.html

そして、ここで:

ここ

http://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html

そして、いくつかの非常に興味深い細部:

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000069.html

CookieOfFortuneはクラスの実用的な意味合いという点で正しいですオブジェクトから派生する(あなたの日々の点でAY)コーディングは最小限である - あなたはJavaで行うほとんど同じ方法で、あなたのクラスのインスタンスを作成します。

// Java 
MyClass myClass = new MyClass(); 

// AS3 
var myClass:MyClass = new MyClass(); 

// Or if you prefer a more loosely typed approach 
var myClass = new MyClass(); 

しかし、それは次のように実際にはよりですので、舞台裏で、ActionScriptのは、ECMAScriptの3規格に基づいています(それは厳密にコンパイルすることができますが)、それはプロトタイプ指向です(たとえそれが開発者から抽象化されていても "クラス自体、プロトタイプを宣言しています")、それはオブジェクト指向パラダイム(yay、closure!)など。それはは多くの点でJavaのようにと感じていますが、実際にはJavaScriptによく似ています。それはひどく便利だないことを...

----------------------------------------------------------------------------- 
^  ^     ^          ^
JS  AS3      Java          C++ 

:C++は右に外れたのであれば、Javaが真ん中にあった、とJavaScriptが左にあった、3間の概念的な類似性は、このようになります。モデル、必然的。 ;)

HoorayImヘルプは正しいですが、間違いなくいくつかの迷惑があります。コンストラクタのオーバーロードがないだけでなく、あらゆる種類のメソッドのオーバーロードはありません。イベントはすべて文字列で識別されます。注意しないとさまざまな問題が発生する可能性があります。 ActionScript enumのようなものはありません。抽象クラスの概念はありません。リストは続く。

しかし、これらの部門では不足しているので、柔軟性に優れています。それで、あなたはそれを持っています。C++のようなものはほとんどありませんが、Javaに似ていますが、実際にはJavaScriptのスーパーセットに似ています。希望が助けてくれる!

+0

私は追加する必要があります(これは私の意見ですが、また、ActionScript 3はJava開発者にアピールするように設計されていました。 Javaに慣れていれば、ActionScriptへの移行を手伝ってくれるAdobeの方々への移行は非常に簡単です。 –

関連する問題