Flash 8を長年使用した後、仕事でCS3に移行します。AS 3.0を学ぶ必要があることはわかっているので、主要な/最も顕著な変更についての良い参考資料や要約はありますか?また、フラッシュ環境に関するヒントやコツはありますか?CS3で数分間過ごした後、アクションスクリプトをボタンに直接添付できないことに気付きました。これは私にとっては初めてのことです。他に見守るべきそのような落とし穴はありますか?
3 に答える
私はちょうど約3か月前に完全な切り替えを行いました。これは、私がかなり迅速に立ち上がるのに役立ったいくつかのことです。
1)クラスファイルですべてを行う
そこにある多くのAS3チュートリアルは、タイムラインに貼り付けられたコードだけを扱っています(これは、必要なインポートを探す必要があるため、我慢できません)が、簡単な小さなものには問題ありません。長期的には、主にクラスファイルで機能する方がはるかに優れています。クラスがどのように機能するかを学ぶことは、私にとって大きな扉を開きました。それは、AS2で関数を最初に発見したときと同じ感覚/経験でした:)
2)グラフィックをライブラリに保持し、ワークスペースから外します
たとえば、ライブラリにインポートしたばかりのjpg、gif、pngファイルがあります。movieClipを作成し、クラス名(MyButton
)を付けました。次のコードは、グラフィックをワークスペースに配置します。
var myButton:MovieClip = new MyButton();
myButton.x = 6;
myButton.y = 22;
myButton.buttonMode = true;
addChild(myButton);
3)AS3の新しいボタンコードを使用する
これは、私たちすべての新しい改宗者が苦痛に対処しなければならなかったものですが、今では簡単なことです:)
myButton.addEventListener(MouseEvent.MOUSE_UP, clickThis);
function clickThis(event:MouseEvent):void
{
navigateToURL(new URLRequest("form.html"), "_self");
//navigateToURL(request, '_self');
}
4)使用後は必ずイベントリスナーを削除してください
これを包むのに少し時間がかかりました...なぜそれらを削除しますか?ああ、彼らはまだバックグラウンドで実行されており、私がもう一度聞くと、あらゆる種類の変異したエラーが発生します。
private function volDown(e:MouseEvent):void
{
masker.width = volControl.mouseX;
userVolume = (masker.width / 100) * 1;
volControl.addEventListener(MouseEvent.MOUSE_MOVE, volMove);
}
private function volUp(e:MouseEvent):void
{
lastVolPoint = masker.width;
setVolume(userVolume);
e.updateAfterEvent();
volControl.removeEventListener(MouseEvent.MOUSE_MOVE, volMove);
}
5)イベントを渡すことを忘れないでください
私は貿易によるプログラマーではありません、そしてこれは非常に多くの悲しみを引き起こしました、私はこの出産の苦痛で終わってうれしいです:
myButton.addEventListener(MouseEvent.MOUSE_UP, clickThis);
clickThis関数はイベントを介して起動されるため、次のように渡す必要がありますevent:MouseEvent
。
function clickThis(event:MouseEvent):void
以下のコードは、新しいAS3の人が常に遭遇する恐ろしいAS3「未定義のプロパティへのアクセス」エラーをスローするためです。
function clickThis():void
6)StackOverflowで質問を読んで投稿してください...たくさん!
ところで、私はまだ初心者で、元々はデザイナーであり、AS2開発者でしたが、なぜ関数名の後ろに:voidを付けるのかわかりません。同様のコーディングの背景がある場合は、それがすべて役立つことを願っています:)
AdobedevnetのActionScript言語移行ページをご覧になることをお勧めします。これは、ActionScript3での主な変更点に関する非常に多くの記事を提供します。
ボタンのアクションに関する問題に答えるために、これは機能しなくなりました(そして、ActionScript 2ではすでにそれを行うための最良の方法ではありませんでした)。AS3では、コードをタイムラインに集中させる必要があります。したがって、ボタンにアクションを与えるには、次のように、ボタンにインスタンス名を付けて、CLICKイベントのイベントリスナーを追加する必要があります。
function doSomething ( event:MouseEvent ):void
{
trace( "test" );
}
myButton.addEventListener( MouseEvent.CLICK, doSomething );
Actionscript3IDEを入手してください。Flash Builder、FlashDevlop、FDTなど。これはあなたに本当に速く学ぶことを強いるでしょう。