ActionScript

  • kinectFaceTrakingANE

    kinectの顔の識別点を取得するANE(Adobe Native Extension)が無かったので作りました。
    そしてサンプルソフトとソース一式をGitHubにて公開しました。速度も安定して60FPSでるようになっています。

    0809_1.png

    >>全文へ

  • Flash用Away3D 4.2

    2014年2月5日付でAway3Dの公式ブログに「Away Foundation roadmap 2014」と題する記事が公開され、2014年のロードマップが示されました。その中からFlash用Away3D 4.2について、ブログ記事にもとづいてご紹介します(なお、JavaScript版Away3Dの開発については「Away3D TypescriptとWebGL」をお読みください)。

    >>全文へ

  • Feathers 1.2.0が公開される

    Feathers はStaringフレームワークで使われるオープンソースのUIコンポーネントです。その最新バージョンFeathers 1.2.0が公開されました(「Feathers 1.2.0 now available」参照)。このリリースはStarling Framework 1.4.1以降に対応します。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第8回 Starlingフレームワークの実装に見るオブジェクトのリサイクル

    全8回の短期連載「Starlingフレームワークを用いたStage3Dによる2Dアニメーション」は今回が最後になります。そこで、少し視点を移して、Starlingフレームワークの使い方でなく、Starlingのクラスがどのようにつくられているかを見てみます。具体的には、Stage3Dの速さを活かすため、どう最適化がはかられているかを確かめます。中でもとくに、オブジェクトの使い回しに注目して、Starlingフレームワークにかぎらず、ActionScript 3.0で使える技を拾っていきましょう。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第7回 StarlingフレームワークとBox2Dで物理演算シミュレーションを行う

    今回は、Starlingフレームワークで物理演算エンジンとして「Box2DFlash」(以下単にBox2Dと呼びます)を使ってみます。Box2DはC++から移植された物理エンジンです。描画の速いStage3Dなら、物理シミュレーションの処理も期待できます。本稿では、Box2Dのv2.1aを用います。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第6回 Starlingフレームワーク1.3の新たなフィルタのクラスとトゥイーンのメソッド

    2013年1月14日にStarlingフレームワーク1.3が公開されました。その中でも、表現の幅を拡げる新たなフィルタの機能について解説します。また、トゥイーンにも使いやすいメソッドがひとつ加わりましたので、簡単にご紹介しましょう。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第5回 Starlingフレームワークでイベントリスナーを扱う

    前回の「StarlingフレームワークのTweenクラスにおける最適化とJugglerクラスの実装」では、Jugglerクラスを用いたコールバックについてご説明しました。けれど、もちろんStarlingフレームワークでも、定義済みActionScript 3.0と同じようにイベントリスナーが使えます。そして、基本的な考え方には、違いがありません。ただ、具体的なイベントの扱いが異なったり、Starlingフレームワーク独自の工夫が加えられた部分もあります。今回は、そのあたりを中心に解説します。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第4回 StarlingフレームワークのTweenクラスにおける最適化とJugglerクラスの実装

    前回の「StarlingフレームワークのTweenクラスによるアニメーション」では、TweenとJugglerのふたつのクラスを使ったトゥイーンアニメーションについて解説しました。今回もこのふたつのクラスを扱います。ただし、トゥイーンアニメーションのつくり方ではなく、TweenとJugglerクラスをお題として、Starlingフレームワークがどのように最適化をはかっているのか、その工夫や考え方についてご説明します。そして、TweenやJugglerクラスの実装も覗いてみます。今回は、中級者寄りの内容です。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第3回 StarlingフレームワークのTweenクラスによるアニメーション

    Starlingフレームワークには、スクリプトでトゥイーンアニメーションを行うstarling.animation.Tweenクラスが備わっています。ActionScript 3.0に定義済みのfl.transitions.Tweenクラスとは少し使い勝手が違います。StarlingフレームワークのTweenクラスを用いたアニメーションについてご説明します。

    >>全文へ

  • Starlingフレームワーク1.3が公開

    2013年1月14日にStarlingフレームワーク1.3が公開されました。強力な機能が加わるとともに、最適化もさらに進められました。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第2回 Starlingフレームワークでスプライトシートを使う

    Starlingフレームワークで用いるアニメーションは、スクリプトだけでつくらなければならない訳ではありません。ムービークリップシンボルにつくり込んだフレームアニメーションも、コンテンツにもってこられます。そこで使うのが、スプライトシートです。スプライトシートの書出しは、Flash Professional CS6から備わりました。

    >>全文へ

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション 第1回 Starlingフレームワークで書く初めてのアニメーション

    「Starling」は、Flash Player 11の新しい描画機能「Stage3D」にもとづいてつくられた2次元の描画用フレームワークです。ハードウェアの「GPU」を用いることにより、速くて滑らかな描画ができます。これから何回かにわたって、Starlingフレームワークによるスクリプティングを解説します。まずは、Stage3Dにインスタンスを置いて、簡単にアニメーションさせます。

    なお、Starlingはオープンソースのフレームワークなので、予めダウンロードしてインストールしておかなければなりません。Starlingフレームワークのインストール方法については、FumioNonaka.com「Starlingフレームワークをインストールする」をお読みください。

    >>全文へ

  • [AS3] ループ処理におけるカウンタ変数の減算と加算 3

    Adobe Developer ConnectionにKeith Gladstien氏が「Flashのパフォーマンスの最適化」という記事を寄稿されました。その中で「Flashでは、最も実行速度の速いループは逆forループです」と書かれています。ループ処理のカウンタ変数を加算するか減算するかの違いは、本F-siteの記事でも何度か比べてきました。そこで、改めてforループについて少し考えてみます。

    >>全文へ

  • [AS3] StarlingフレームワークのTweenとJuggler APIがアップデートされる

    Starling Forumに「Tween & Juggler API Updates」という記事が投稿されました。StarlingフレームワークのTweenとJugglerに新たな機能が加わったとのことです。

    >>全文へ

  • Flash Professional CS6アップデート2が公開

    すでに予告されていたとおり、Flash Professional CS6アップデート2(12.0.2)が公開されました。AIR 3.4とFlash Player 11.4がサポートされます。そのアップデートの概要がAdobe Flash Professional Team Blog「Flash Professional CS6 Update2 | Now Available」に掲載されましたので、ご紹介します。

    >>全文へ

  • Flash Professional CS6のアップデータが9月に公開

    来る9月にFlash Professional CS6のアップデータが公開されます。Flash Player 11.4とAIR3.4のサポートが拡充され、新たな機能とともに、いくつかの重要なバグ修正が加わります。Adobe Flash Professional Team Blog「Announcing Flash Professional CS6 updater, coming this September!」で発表されました。

    >>全文へ

  • [AS3] Starlingフレームワーク1.2が公開される

    2012年8月15日づけでStarlingフレームワーク1.2が公開されました。公式サイトblogの「Starling 1.2」に新たな機能が紹介されましたので、かいつまんでご説明します。

    >>全文へ

  • Flash Professional CS6から書出したスプライトシートはどう使うのか

    Flash Professional CS6から、[ライブラリ]のシンボルをスプライトシートとして書出せるようになりました。先日の7月28日土曜日に開かれたF-siteセミナーでは、その具体的なやり方が説明されました(図001)。その開催後に集めたアンケートに、疑問な点としてスプライトシートの使い方を挙げた方が数名いらっしゃいました。

    >>全文へ

  • [AS3] Starlingフレームワークの衝突検出

    最近、Starlingフレームワークにおける衝突検出(Collision Detection)が扱われた学習用の英語ビデオ「Starting with Starling ー Ep 8: Collision Detection」を観ました。インスタンス同士の重なりを調べる、いくつかのやり方が紹介されています(図001)。それらをざっと眺めてみましょう。

    図001■Starlingフレームワークで衝突を検出するやり方
    Collision Detection
    *「Starting with Starling ー Ep 8: Collision Detection」より引用

    >>全文へ

  • [AS3] StarlingフレームワークのDisplayObject.hitTest()メソッド

    Starlingフレームワークには当たり判定のメソッドとして、DisplayObject.hitTest()が定められています。ただし、ActionScript 3.0定義済みのメソッドと細かな点に違いがあります。

    >>全文へ

  • [AS3] Starling Wikiで紹介されたActionScript 3.0最適化のコツ

    Starling Wikiに「Performance Optimization」(パフォーマンスの最適化)という記事が掲載されました。記事の最後の項目は「ActionScript Tips」と題して、StarlingフレームワークにかぎらないActionScript 3.0の最適化のコツを解説しています。それらをご紹介しながら、コメントを加えてみます。

    >>全文へ

  • [AS3] Starlingフレームワークを最適化するSpriteオブジェクトのフラット化とQuadBatchクラス

    Starlingフレームワークで子インスタンスをもてるオブジェクトとしては、Spriteがもっぱら使われます。その子オブジェクトの見た目がしばらく変わらないときは、Sprite.flatten()メソッドを呼出すと描画が最適化されます。その描画を速めるために、おもに内部的に用いられるのがQuadBatchクラスです。Starling Wiki「Performance Optimization」に解説されていた内容から、ふたつの項目を採上げてご紹介します。

    >>全文へ

  • Flash Player 11.3とAIR 3.3が正式公開

    Adobe Flash Player 11.3とAIR 3.3が正式に公開されました。最新のバージョンは11.3.300.257です。新たな機能はAdobeのThibault Imbert氏がByteArray.org「Introducing Flash Player 11.3 – AIR 3.3 beta」で紹介されています。その内容をまとめました(スクリプトはこの記事から引用しています)。

    flash_512.png

    >>全文へ

  • [AS3] ADC OnAir第2回「Stage3Dを学ぼう!Flashで2Dコンテンツ」

    2012年5月23日水曜日20:30から配信したADC OnAir第2回は、Flash Player 11から備わったStage3Dを使うフレームワークStarlingとFlash Professional CS6と連携してコンテンツをHTML5対応で書出す[Toolkit for CreateJS]についてご説明しました。それらの解説記事がADCなどに公開されましたので、ご紹介します。

    ADC OnAir第2回

    >>全文へ

  • [AS3] Starlingフレームワークのスクリプトをフレームアクションに書いてみる

    Stage3DはFlashのステージの背面にコンテンツを描きます(図001)。ですから、描画やアニメーションの処理は、Flashのフレームアクションではなく、クラスとして定義する方が扱いやすいといえます。Starlingフレームワークではそれだけでなく、フレームアクションに書こうとすると面倒なことになります。試みにご紹介しましょう。

    図001■Stage3D(Starling)とFlashのステージの関係
    図001

    >>全文へ

  • [AS3] StarlingフレームワークにEventDispatcher.dispatchEventWith()メソッドが加わる

    開発が進んでいるStarlingフレームワークの新しいバージョンに、EventDispatcher.dispatchEventWith()メソッドが加わる予定のようです。開発者のDaniel Sperl氏より、Starling Forumにイベントシステム整備の提案として投稿されました。このメソッドは、EventDispatcher.dispatchEvent()と同じく、イベントを配信します。では、どこが違うのか、氏の投稿記事に沿って見てみましょう。

    >>全文へ

  • [AS3] 45度回転した矩形領域に対するクリック座標の判定

    2012年2月28日に催された「ADC MEETUP Round 04 Social Gaming」で、中野亘氏のつくられたパズルゲーム「ワクチンケース」の中でタッチされた座標を、45度傾けた格子で調べられたらというアイデアが出されました(図001)。これをお題として頂戴します。

    図001■45度傾けた格子で座標を調べる
    kyounoshikaku_01.png

    >>全文へ

  • [AS3] Starlingはじめました

    「Starling」は、Flash Player 11の新しい描画機能「Stage3D」にもとづいてつくられた2次元の描画用フレームワークです。Flash Professional CS5.5でStarlingフレームワークを使ってみたい方のために、いくつか解説を書き始めました。これまでのまとめをご紹介します。詳しくは、それぞれの記事をお読みください。

    >>全文へ

  • [AS3] テキストが入ったAIファイルを読込むと − パンドラの箱

    IllustratorからFlashへの互換は、バージョンが進むごとによくなっているようです。けれど、安心していると足元をすくわれかねません。Flash Professional CS5.5に、テキストが含まれたIllustratorのAIファイルを読込んでみます(図001)。

    図001■テキストが含まれたIllustratorのアートワーク
    図001

    >>全文へ

  • [AS3] Text Layout Framework(TLF)で悩みがちなこと

    TLFテキストやText Layout Frameworkのコンポーネントライブラリを使うと、不思議な結果に出逢うことがあります。しかも、Flash Playerのバージョンによって、動きが変わったりします。その中のからいくつか解明できたことをご紹介します。

    >>全文へ

  • [AS3] 間違いだらけ(?)のMatrix3Dクラスのドキュメント

    間違いだらけというかは別にして、Matrix3Dクラスのドキュメントには誤っている のかどうかもわかりにくい説明が少なくありません。内容を正しく理解するには、ActionScriptだけでなく、数学の知識も必要になるからです。さらに、日本語訳の問題がややこしさを増します。

    Matrix3D

    >>全文へ

  • [AS3] 外部から読込んだSWFをメモリから消し去るには

    Loaderクラスにより外部から読込んだSWFが要らなくなり、メモリから消したいときどのようにしたらよいでしょう。Loader.unload()メソッドを呼出すだけでは足りません。その場合に行うべき処理を確かめます。

    >>全文へ

  • [AS3] Flash Player 11でMovieClipクラスに唯一備わったプロパティMovieClip.isPlaying

    Flash Player 11でMovieClipクラスにひとつだけ、MovieClip.isPlayingというプロパティが備わりました。

    >>全文へ

  • [AS3] Flash Player 11でビットマップのサイズ制限がなくなる

    昨日10月4日にAdobeからFlash Player 11が正規公開されました。その機能のひとつとして、ビットマップの大きさにこれまであった制限がなくなりました。

    >>全文へ

  • [AS3] BitmapData.setPixel()とBitmapData.setVector()メソッドでピクセルを塗る

    [ヘルプ]の[モバイル]/[Flash Platformのパフォーマンスの最適化]/[ActionScript 3.0のパフォーマンス]/[ピクセルの操作]には、メソッドBitmapData.setPixel()BitmapData.setVector()を用いたピクセル操作の最適化が説明されています。そこでwonderflに投稿したテスト用のコードで、3つのやり方について速さを比べてみました。

    >>全文へ

  • [AS3] Flash CS5に潜む謎のクラスWorld II − 内緒の物理エンジン

    以前の記事でご紹介した「Flash CS5に潜む謎のクラスWorld」は、非ドキュメントの物理エンジンに含まれているようです。昨年11月に書かれた英文blogに、ライブラリの中身を探った解説がありました。そのblogのテスト用コードをもとに、簡単なサンプルをつくってみました。

    >>全文へ

  • [AS3] 三角関数で座標を回転するふたつの計算方法

    角度からxy座標を定めるには、三角関数が用いられます。具体的には、つぎのふたつの計算の仕方があります。これらふたつの違いと使い方をご紹介します。

      【角度からxy座標を定める】
    1. 原点からの距離がrで正のx軸となす角度がθの座標
    2. x座標: r cosθ
      y座標: r sinθ
    3. 座標(x, y)を原点でθ回転した座標
    4. x座標: x cosθ - y sinθ
      y座標: x sinθ + y cosθ

    >>全文へ

  • [AS3] Dictionaryオブジェクトのキーにプリミティブ値を指定した場合

    Dictionaryオブジェクトは、参照をキーとして値が設定できることに特長があります(詳しくは、「Dictionaryクラスを使ってみる」をお読みください)。しかし、プリミティブ値もキーとして使えます。その場合、Dictionaryオブジェクトのキーの扱いが少し違ってくるようです。なお、参照とプリミティブの違いについては、「Stringはプリミティブ値かオブジェクトか」2「ActionScript 3.0の場合」をご参照ください。

    >>全文へ

  • [AS3] 矢印キーでインスタンスを移動させる

    MovieClipインスタンスを矢印キーで上下左右に動かす例のご紹介です(図001)。ただし、少しひねりを加えて、キーを押し続けたときに入力が繰返される速さではなく、フレームレートで進むようにします。

    図001■MovieClipインスタンスを矢印キーで上下左右に動かす
    AS3_OptimizingPerformance_01_02_008.png

    >>全文へ

  • [AS3] ガベージコレクションを働かせる裏技

    ガベージコレクションは、メモリに余裕があるとなかなか発動されません。[ムービープレビュー]などのデバッグ環境とAIRであればSystem.gc()メソッドが使えます。でも、一般のネット環境ではこのメソッドは使えません。そこで、正規サポートはされてはいない裏技をひとつご紹介します。

    >>全文へ

  • [AS3] Flash CS5に潜む謎のクラスWorld

    Flash Professional CS5で、つぎのようにクラスWorldのインスタンスをつくってみます。もちろん、そういう定義済みクラスもなければ、カスタムクラスを定めた訳でもありません。

    var test:World = new World();

    普通はそのクラスの「型が見つからない」とか「未定義である」といったエラーが起こるはずです。ところが実際には、コンパイルエラー#1136が示されます。

    引数の数が正しくありません。正しくは 2 です。

    >>全文へ

  • [AS3] TLFテキストを含むインスタンスがステージの表示リストから除かれるとき

    ステージに置いたインスタンスがタイムラインから除かれるときには、DisplayObject.removedFromStageイベント(定数Event.REMOVED_FROM_STAGE)が起こります。ところが、そのインスタンスがTLFテキストを含むと、内部的に初期化が行われるため、一筋縄ではイベントが意図どおりに扱えません。

    >>全文へ

  • [AS3] ふたつの数値の最大値・最小値を得るにはMathクラスより条件演算子?:の方が速い

    ふたつの数値のうちの最大値または最小値を求めるには、Math.max()Math.min()メソッドが使われます。けれど、計算の速さが求められる場合には、条件演算子?:を用いて単純に大小比較した方がお得です。

    >>全文へ

  • [AS3] 距離はPointやVector3DクラスのメソッドよりMath.sqrt()と三平方の定理で求める方が速い

    PointやVector3Dクラスには、座標と座標の間の距離を求める同じ名前の静的メソッドdistance()があります。しかし、速さを稼ぐにはこれらのメソッドでなく、Math.sqrt()メソッドを用いて三平方の定理で導く方がお得です。

    >>全文へ

  • [AS3] Text Layout Framework(TLF)でハマらないために

    Flash Professional CS5から備わったText Layout Framework(TLF)は、テキストにInDesignのような細かな設定が加えられます。他方、Text Layout Frameworkのライブラリがデフォルトではランタイム共有ライブラリから読込まれるため、インスタンスは独自の生成過程を経ます。タイムラインに[TLFテキスト]を置いただけで、思わぬ結果になることもありますので注意が必要です。

    >>全文へ

  • [AS3] ifと静的メソッドとコメント ー [自動フォーマット] vol.4

    久しぶりの[自動フォーマット]ネタです(図001)。Flash Professional CS5で確かめています。

    図001■ifステートメント内の静的メソッド呼出しにコメントを加える
    FF1103261_001.gif

    >>全文へ

  • [AS3] 配列のインデックスを式で計算したときはuint型で渡す

    配列やVectorインスタンスのエレメントを扱うとき、インデックス番号を式で与えることがあります。その場合、配列アクセス演算子[]に式を直接書込むのでなく、uint型に変換(キャスト)するか、式の値はuint型の変数に入れたうえでその変数を渡すようにしましょう。その方が、書く手間は少し増えても、処理が速まります。

    >>全文へ

  • [AS3] コーディング規約のチェックツールFlexPMD

    コーディング規約のチェックツールFlexPMDのメッセージを日本語訳しました。自分の書いたスクリプトがAdobe標準にどれだけ合っているか、確かめてみてはいかがでしょう。データを納めたXMLは、水玉製作所「FlexPMD日本語訳」で確認およびダウンロードできます。FlashDevelopでの設定方法も説明されています。

    >>全文へ

  • [AS3] キーボードのキー操作をVectorオブジェクトで扱う

    キーボードのキー操作を扱うふたつの手法」では、タイムラインに配置したMovieClipインスタンス(my_mc)を、キーボードの矢印キーで上下左右に動かしてみました(再掲図001)。この同じお題をVectorクラスで整えてみましょう。

    図001■ タイムラインに配置したMovieClipインスタンスを矢印キーで上下左右に動かす(再掲)
    AS3_OptimizingPerformance_01_02_008.png

    >>全文へ

  • [AS3] Vectorインスタンスには長さを定めた方がよい

    Adobeのドキュメント「VectorクラスとArrayクラス」は、Vectorインスタンスには予め長さ(Vector.lengthプロパティ)を定めた方がパフォーマンスはよいと説明します。ただ、日本語の意味がわかりにくいように思われます。

    Vectorのサイズが時間よりも先に指定されない場合、Vectorの容量が不足すると、サイズが増えます。Vectorのサイズが増えるたびに、メモリの新しいブロックが割り当てられます。Vectorの最新の内容がメモリの新しいブロックにコピーされます。データを余分に割り当てて複製することにより、パフォーマンスに影響があります。

    >>全文へ

  • [AS3] 条件演算子?:はいつ使うとよいか

    条件演算子?:の処理は、ifステートメントで書くこともできます。それぞれどのように使い分けたらよいでしょうか。本稿では、処理の速さを比べてみます。

    *なお、この記事の英語版はJActionScriptersに載せています。
    The English version of this article is posted to JActionScripters.

    >>全文へ

  • [AS3] 配列を初期化するには

    配列つまりArrayインスタンスをつくるには、つぎのふたつの書き方があります。どちらがよいのでしょうか。

    var constructed_array:Array = new Array();
    var literal_array:Array = [];

    どちらにしたところで、大きな違いはありません。けれど、気分によって変えるのはやめましょう。統一はしないと、見にくいです。だとすると、やはりどちらがお得なのかは気にかかります。

    >>全文へ

  • [AS3] 3次元回転の軸をベクトルの外積で求める

    3次元空間のオブジェクトをマウスポインタの位置に応じて回すときの考え方です(図001)。Matrix3Dクラスで座標変換する場合、水平方向と垂直方向それぞれについて回転を加える方法がひとつあります。今回はもうひとつのやり方として、水平・垂直合わせてベクトルの外積により回転軸を求めてみます。

    図001■四方に置いた面を上下左右に回す
    Gihyo100901-001.gif

    >>全文へ

  • [AS3] 直線で閉じた図形を描く

    Graphicsクラスの描画メソッドを使うと、Spriteなどのインスタンスに直線が引けます。そこで、頂点座標にしたがって多角形などの閉じた図形が描ける関数を定義してみましょう(図001)。さほど難しいスクリプトではありません。けれど、あえてややこしく書いてしまうことも少なくないようです。そうならないためのちょっとしたコツをご紹介します。

    図001■閉じた図形を描く
    FF1101201_001.gif

    >>全文へ

  • [AS3] ふたつの配列を連結する

    ふたつの配列を連結するには、Array.concat()メソッドを用います。ところが、Grant Skinner氏がtwitterで面白い手法を紹介していました。JavaScriptについて書かれたものの、ActionScript 3.0でも使えます。

    >>全文へ

  • [AS3] キーボードのキー操作を扱うふたつの手法

    キーの押し下げ操作は、InteractiveObject.keyDownイベント(定数KeyboardEvent.KEY_DOWN)で扱います。リスナー関数が引数に受取るイベントオブジェクト(KeyboardEvent.keyCodeプロパティ)から押したキーのコードがわかりますので、その整数値に応じて処理を振分けます。

    定石といえるのは、キーコードの整数値を条件判断で切り分けることです。もっとも、キーコードはすべて値がユニークですので、配列との相性がよいです。処理したいキーコードのインデックスに、必要な情報を納めると、条件判定が要らなくなります。

    >>全文へ

  • [AS3] 全角(2バイト)と半角(1バイト)を区別したバイト数の計算

    2バイトの全角と1バイトの半角とを区別した文字のバイト数が、どのようにしたら求められるか考えてみましょう。

    >>全文へ

  • [AS3] ハッピーマンデーを求める

    ハッピーマンデーのように、ある月の何番目の曜日と指定して、日付を求めてみます。おまけに、最後の何曜日と後ろから数えられるようにもしましょう。

    >>全文へ

  • [AS3] 文字列の検索・置換は正規表現よりStringクラスのメソッドを使う方が速い

    文字列の検索・置換は、String.replace()メソッドに正規表現(RegExpクラス)を使うと簡単です(スクリプト001)。なお、正規表現による文字列の検索・置換については、「正規表現で文字列を扱う」をお読みください。

    スクリプト001■String.replace()メソッドと正規表現で文字列を検索・置換
    var test_str:String = "すもももももももももももいろいろ";
    var result_str:String = test_str.replace(/もも/g, "みみ");
    trace(result_str);  // 出力: すみみみみみみみみみみもいろいろ

    もっとも、処理の速さは、Stringクラスのメソッドを組合わせて書いたスクリプトの方が勝るようです。

    >>全文へ

  • [AS3] データ型の変換はキャストよりas演算子が速い

    オブジェクトを異なるデータ型に変換したいとき、一般には「クラス(変換するオブジェクト)」のかたちでキャストします。けれど、as演算子を使う方が処理は速いようです。

    >>全文へ

  • [AS3] XORマジック

    スクリプト001■ビットごとの排他的論理和演算子^で変数の整数を入替える
    var a:int = 12345;
    var b:int = 67890;
    trace(a, b);  // 出力: 12345 67890
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    trace(a, b);  // 出力: 67890 12345

    >>全文へ

  • [AS3] Observerパターンのサンプルプログラム

    オブジェクト指向プログラミングにおけるデザインパターンに、「Observerパターン」があります。対象オブジェクトの状態が変わるごとに、その情報を必要なインスタンス(Observer)に送る仕組みです。Javaの例をActionScript 3.0に書替えてみましょう。今回は、デザインパターンの解説書として定評のある結城浩著『Java言語で学ぶデザインパターン入門』のサンプルプログラムを題材とします[*1]

    >>全文へ

  • [AS3] 連結リストとVectorによるエレメントの追加と削除

    「連結リスト」(linked list)はObjectとArrayクラスの中間のような仕組みで、エレメントには順序があるもののインデックス番号をもちません。その処理の速さを、Vectorクラスと比べてみます。

    >>全文へ

  • [AS3] CodeZine「Java と ActionScript 3.0 の違い:文法編」

    Adobeの上条晃宏氏がCodeZineに「Java と ActionScript 3.0 の違い:文法編」を書かれました(Flexデベロッパーセンターより再掲)。興味深い記事ですので、ActionScript 3.0について気づいたことを少し付け加えてみます。

    >>全文へ

  • [AS3] インスタンスをドラッグして回すクラス定義

    インスタンスをドラッグして回す

    インスタンスをドラッグして回したり、マウスボタンを放して滑らせるアニメーション表現をクラス定義しました。[ライブラリ]のMovieClipシンボルに[クラス]として設定すれば、インスタンスのドラッグ&ドロップでそのようなインタラクティブな動きをします。

    >>全文へ

  • ビデオで学ぶActionScript 3.0による3次元表現

    ActionScript 3.0を使った3次元表現についてのビデオ解説が折に触れて公開され、ある程度数もまとまってきました。視聴しやすいように整理しておきます。

    >>全文へ

  • [AS3] ラジオボタンのように複数の中のひとつだけ設定値を変える

    ラジオボタンは、ひとつを選ぶと他の選択は解除されます(図001)。このように、定められた値を複数の中のつねにひとつにだけ設定する手法について考えてみます。

    図001■ラジオボタンはつねにひとつだけしか選択できない
    FF1008031_001.gif

    >>全文へ

  • [AS3] 変数には初期値を与える

    ActionScript 2.0から、変数および関数の引数や戻り値にはデータ型が指定できます。とくに、ActionScript 3.0では、データ型を定めることにより、動作が最適化されます。したがって、変数宣言には必ずデータ型を添えるべきでしょう。加えて、変数には初期値も与えておくのが安心です。

    >>全文へ

  • [AS3/CS5] Flash CS5の新機能とPlayerのバージョン

    テキストエンジンのTLFテキスト(テキストレイアウトフレームワーク: Text Layout Framework)は、Flash Professional CS5の新機能です。ところが、そのインスタンスを生成・制御するTLFTextFieldクラスについて[ヘルプ]で調べると、「ランタイムバージョン」が「Flash Player 10, AIR 1.5」とされています(図001)。

    >>全文へ

  • [AS3/CS5] コードヒントとimport宣言

    Flash Professional CS5では、ActionScript 3.0でデータ型の指定をするとimport宣言が自動的に加えられるようになりました(図001)。クラスを定義する場合には、手間が省けて助かります。けれど、フレームアクションでは、ありがたみがわかりにくいかもしれません。

    >>全文へ

  • [AS3] DisplayObjectインスタンスの削除とガベージコレクション

    MovieClipシンボルのフレームアクションで親のタイムラインからインスタンスを消すには、つぎのようにDisplayObjectContainer.removeChild()メソッドを呼出します[*1][*2]。ただし、このとき気をつけなければならないことがあります。

    var parent_mc:MovieClip = MovieClip(parent);
    parent_mc.removeChild(this);

    >>全文へ

  • [AS3] ループ処理におけるカウンタ変数の減算と加算 2

    Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Miscellaneous optimizations」につぎのような項が示されています。最適化のためには、「whileループでは逆順を使うように」("Use reverse order for while loops")ということです。しかし、その効果は疑わしく思われます。

    >>全文へ

  • [AS3] Vectorクラスの地味な追加機能

    Flash Professional CS5から、Vectorクラスのインスタンスを生成するときに、エレメントが納められるようになりました。新たなシンタックスは、つぎのとおりです。

    new <ベース型>[エレメント0, エレメント1, …, エレメントN, ]

    >>全文へ

  • [AS3] ループ処理におけるカウンタ変数の減算と加算

    ループ処理では、多くの場合カウンタ変数を使います。その値は、加算するより減算する方が速いと噂されています。

    >>全文へ

  • [AS3] プリミティブ型データとメモリ

    Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Primitive types」の項は、ActionScript 3.0におけるプリミティブ型データについて、とくにメモリ上の扱いを説明しています。細かい話題ではあるものの、メモ代わりにまとめます。

    >>全文へ

  • [AS3] Vectorクラス対Arrayクラスの処理速度比較

    Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Vector class versus Array class」の項は、Flash Player 10から実装されたVectorクラスとArrayクラス(配列)との処理速度を比べています。

    >>全文へ

  • [AS3] DisplayObjectインスタンスの種類と使用メモリ

    Adobeのサイトに公開された「Flash Platformのパフォーマンスの最適化」の「表示オブジェクト」の項は、DisplayObjectクラスを継承するShapeとSprite、MovieClipのオブジェクトについて、使用メモリの点から違いを比べています(なお、akihiro kamijo「Flash コンテンツパフォーマンス最適化(メモリ編 1)」参照)。その内容を、簡単にまとめてみましょう。

    >>全文へ

  • [AS3] Vector3Dの四元数表現

    [ヘルプ]の[Vector3D]クラスで「Vector3D.wプロパティ」の項を読むと、つぎのようなくだりがあります。しかし、これは四元数についての説明ではなさそうです。

    四元数表記では、3次元回転の計算の4番目のエレメントとして角度が使用されます。wプロパティを使用すると、Vector3Dオブジェクトの回転角度を定義できます。回転角度と座標(x, y, z)の組み合わせにより、表示オブジェクトの方向が決まります。

    >>全文へ

  • [AS3] Dateインスタンスに設定した月が1増える

    Dateインスタンスに月を設定して調べると、なぜか設定した値より1増えてしまうことがあります。

    var my_date:Date();
    my_date.month = 1;
    trace(my_date.month);   // 出力は2となることがある

    >>全文へ

  • 演算子asとis

    演算子asisは、つぎのような同じシンタックスで使われます。

    インスタンス 演算子 クラス

    [ヘルプ]でそれぞれの演算子を調べると、asはインスタンスがクラスの「メンバーであるかどうかを評価」し、isはインスタンスがクラスと「互換性があるかどうかを評価」すると説明されています。要するに何をするのか、これだけではわかりません。

    しかし、それぞれの「結果」が異なりますので、使い途もまた違います。演算子asはデータの評価換えに用いられ、isは誰の子かを調べます。

    >>全文へ

  • [AS3] Dictionaryクラスを使ってみる

    Dictionaryクラスは、独自のメソッドとしてコンストラクタしか備えていません(「Dictionary()コンストラクタ」参照)。クラスの説明を読んでも、使い方はもちろん、その意味さえわかりにくいようです。

    >>全文へ

  • [AS3] TextAreaコンポーネントのテキストを選択できなくする

    TextAreaコンポーネントには、選択の可否をコントロールするプロパティが見当たりません[*1]。そのため、TextArea.textFieldプロパティで、コンポーネント内のTextFieldインスタンスを操作しなければならなそうです(図001)。

    図001■テキストを選択できなくしたTextAreaコンポーネントインスタンス FF0910311_003.gif

    >>全文へ

  • [AS3]外部XMLのデータを読み込んでObjectオブジェクトとして配列に格納する

    AS3からXMLの扱いがとっても簡単になったそうですね。
    それならばいっそのこと、ファイルパスとファイル名だけ書き換えればあとは自動で読み込んで配列に格納してくれちゃうと便利だな。
    それも、配列に入れるときに、Objectオブジェクトにしてあると、子ノードのデータの呼び出しも配列番号でいけるからもっと楽チンだな。と思って、書いてみました。

    >>全文へ

  • [AS3] DataGridColumn.cellRendererプロパティに文字列で値を指定する

    DataGridコンポーネントインスタンスの列のセル表示を変えたいとき、DataGridColumn.cellRendererプロパティに単純にクラスを文字列で指定するとエラーになります(図001)。

    図001■ DataGridColumn.cellRendererプロパティに文字列でクラスを指定するとエラーになる
    図001■ DataGridColumn.cellRendererプロパティに文字列でクラスを指定するとエラーになる

    >>全文へ

  • フリーでAS3ベースのページフリップエンジン:MEGAZINE3

    最近、AS3で組まれたあるサイトにページフリップ(本をめくる動き)を組み込む必要性が生じたのですが、世の中に溢れているサンプルはその殆どがAS2以前にタイムラインベースで作られたもの。これは自分でフリーのものをコンバートするしかないかな…、と諦めかけていたところで、見つけました。オープンソースでAS3クラスベースのページフリップエンジン。

    >>全文へ

  • 日本発、世界向けFlash blog − JActionScripters.com

    英語blogはじめました。

    >>全文へ

  • 乗算時のVector3D.wプロパティ

    [ActionScript 3.0言語およびコンポーネントリファレンス]の「Vector3D.project()メソッド」の項には、Matrix3DとVector3Dインスタンスを乗算したときのVector3D.wプロパティについて、つぎのように説明しています。

    >>全文へ

  • Flash CS4 Professional 10.0.2アップデートの概要

    Flash CS4 Professional 10.0.2アップデートが公開されました。Adobe Flash ProfessionalプロダクトマネージャRichard Galvan氏のblog「Galvan on Flash」に具体的なアップデート内容が説明されています。そこで、氏の5月13日付のblog記事「Flash CS4 update now available」にもとづき、その概要をご紹介しましょう。

    >>全文へ

  • addChildAt(child, 0)は処理が速い

    DisplayObject(またはそのサブクラスの)インスンスをタイムライン(厳密にはDisplayObjectContainerインスタンス)の子として加えるとき、通常はDisplayObjectContainer.addChild()メソッドを使います。しかし、大量の子インスタンスを一気に追加する場合には、DisplayObjectContainer.addChildAt()メソッドを使うと処理は速くなることがあるようです。

    >>全文へ

  • Flash CS4のヘルプ

    Flash CS4 Professionalの[ヘルプ]がオンラインになり、Adobeサイトのヘルプコンテンツが表示されるようになりました。[ヘルプ]パネルは、なくなったということです。今までと具体的に変わった点を、いくつか挙げてみます。

    >>全文へ

  • [AS3] 偶数を2で割る

    偶数を2で割るとき[*1]は、ビット単位の右シフト演算子>>を使うと処理が速いといわれます[*2]。実際にFlash CS4 Professionalの[ムービープレビュー]でテストしてみると、環境やスクリプトの記述により、結果にばらつきが出てくるようです。


    [*1] もう少し正確には、割る数が2の累乗で商が整数になる場合です。

    [*2] たとえば、polygonal labs「Bitwise gems - fast integer math」参照。

    >>全文へ

  • [AS3] クロージャについて

    ActionScript 3.0の関数(メソッド)では、ローカル変数や引数以外のthisを含めた参照はその定義時に決まります。このようなデータ構造を、「クロージャ」と呼ぶことがあります[*1]。関数(メソッド)本体内のthis参照も、それが定義されたインスタンスに定まります。ですからthis参照は、Function.apply()メソッドの第1引数で変えることも基本的にできません(つまり、第1引数に指定するできるのはthisのみになります)。

    >>全文へ

  • AS2でもドキュメントクラスを設定したい

    AS3から導入されたドキュメントクラスという概念があります。
    慣れないうちは混乱のもとでもあったのですが、いざ使いだしてみると、これがなかなか便利なことに気付きました。
    特に、あるSWFファイルをMovieClip以外のクラスのインスタンスとして外部から読み込めるのは、かなり活用の甲斐がありそうです。

    しかし、自分が今動いているプロジェクトはAS2ベース…。

    >>全文へ

  • Flash CS4のドキュメント公開

    Flash CS4 Professionalの出荷に先立って、ヘルプのドキュメント(旧名称LiveDocs)英語版が公開されました。

    >>全文へ

  • [AS3] MovieClipインスタンスとインスタンス名

    ActionScript 3.0でも、MovieClipインスタンスに名前をつけて、参照したり管理することができます。しかし、インスタンス名の果たす役割は、ActionScript 2.0/1.0とは少し変わりました。

    >>全文へ

  • 2008年4月にFlash Player 9のセキュリティアップデートが行われます

    Adobeデベロッパーセンターに「緊急情報: 2008年4月に行われるFlash Player9のセキュリティアップデートへの対応のお願い」というお知らせが掲載されました。

    >>全文へ

  • ActionScript 2.0で関数内のスコープを確かめる

    ActionScript 2.0における関数内のスコープを、サンプルスクリプトで確かめてみます。this参照がある場合とない場合について、タイムラインの関数とクラスのメソッドでも扱いに少し違いが生じます。なお、このテストは、Flash Professional 8/ActionScript 2.0で行っています。

    >>全文へ

  • [AS3] ifとカンマと配列と ー [自動フォーマット] vol.3

    FF0802181_001.gif

    すると...

    >>全文へ

  • コリン・ムックの「今から始める ActionScript 3.0 - WORLD WIDE TOUR 」セミナーレポート

     先日開催されたActionScriptのエキスパート、コリン・ムック氏による「今から始める ActionScript 3.0 - WORLD WIDE TOUR」に参加してきました。
    朝の10:00から19:00までの長丁場でしたが基礎からしっかりと学べて大変有意義なセミナーだったと思います。
     今回の内容についてAdobeサイトにアップされているセミナーレポートの方を運営スタッフの森脇、桜井が、またコリンムック氏のセミナーで利用した教材の和訳の方を運営スタッフの小野田が協力させていただきました。セミナーの概要、当日の雰囲気などがつかめるかと思いますのでよろしければごらんください。

    コリン・ムックの「今から始める ActionScript 3.0 - WORLD WIDE TOUR」

  • [AS3] コンストラクタメソッドとコンストラクタ関数

    「コンストラクタ」は、インスタンスを生成するためのクラスの特別な関数です。そして、クラスに定義された関数はメソッドと呼びます。したがって、「コンストラクタメソッド」と呼ばれることもあります。広い意味では関数つまりfunctionですので、「コンストラクタ関数」と呼んでも差支えはありません。

    >>全文へ

  • [AS3] クラスを複数のMovieClipシンボルに設定したい

    MovieClipを継承してコントロールするクラスは、MovieClipシンボルに[リンケージプロパティ]で[クラス]として設定することができます。それでは、複数のシンボルに対して、同じひとつのクラスを割当てることはできるでしょうか。

    >>全文へ

  • [AS3] クラスを文字列で参照したい

    クラス名を文字列で参照して、コンストラクタを呼出したいことがあります。

    たとえば、複数のクラスから、動的にひとつを選んでインスタンスを作成したいという場合です。あるいは、複数のシンボルに[リンケージプロパティ]で連番のクラス名を設定して、ループ処理によりそれらのインスタンスを作成するといった目的も考えられます。本稿では後者を例に、その方法をご紹介します。

    >>全文へ

  • [AS3] if/else if/elseステートメントの[自動フォーマット]で余分な閉じ括弧}が入る

    [自動フォーマット]が、またしても

    if/else if/elseステートメントを使った場合、elseステートメントの最後にコメントを入れると(図001)、[自動フォーマット]で不適切な記述に変わることがあります(Flash CS3 Professional 9.0.0.494)。

    図001■if/else if/elseステートメントの最後にコメント
    ActionScript30_05_009.gif

    >>全文へ

  • SWFファイルの外部読込みとMovieClip.attachMovie()メソッド

    リンケージ設定された[ライブラリ]のMovieClipシンボルは、SWFに関連づけられるようです。

    >>全文へ

  • パネルのドッキングを避ける

    パネルのタイトルバーをドラッグして他のパネルに近づけると、ドロップゾーンがハイライトして、そのパネルにドッキングすることができます(図001)。けれど、ドッキングせずに、その位置でフローティング状態にしておきたい場合があります。

    図001■パネルのドッキング
    FF0707311_001.gif

    >>全文へ

  • FileReference.onUploadCompleteDataイベント

    Flash CS3では、どうしてもActionScript 3.0に目を奪われがちです。でも、2.0についても、一部追加された機能はあります。

    >>全文へ

  • [AS3] URLエンコード

    ActionScript 3.0では、escape()関数の動作が2.0/1.0とは一部変わりました。たとえば、"F-siteセミナー"という文字列をescape()関数でURLエンコードすると、ActionScript 3.0と2.0/1.0の結果はそれぞれつぎのような文字列になります。

    【ActionScript 3.0】
    F-site%u30BB%u30DF%u30CA%u30FC

    【ActionScript 2.0/1.0】
    F%2Dsite%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC

    >>全文へ

  • [AS3] ()を使った式が戻り値に指定された関数を[自動フォーマット]すると

    [自動フォーマット]が、またやらかしてくれました。

    つぎのフレームアクション(スクリプト001)を、[自動フォーマット]してから、[ムービープレビュー]で確認すると、答えとしていくつが[出力]されるでしょう。

    スクリプト001■functionの戻り値に括弧()のある式を指定
    function xTest(a:Number, b:Number, c:Number):Number {
      return (a + b) * c;
    }
    trace(xTest(1, 2, 3));

    >>全文へ

  • 【GAINER】FLASHでリアルデバイス


    むらけんです。こんにちわ。 2月のF-siteセミナーに来ていただいた方は記憶にあるかと思いますが、タナカミノルさんに、ちょろっと紹介していただいた[GAINER]というものがありましたね。参考:[セミナーレポート]

    >>全文へ

  • Papervision3D - ゲーム風サンプル


    KURAGEです。
    3Dモデリングデータの表示を目標に制作した、Papervision3D(PV3D)によるリバーシ風サンプルをご紹介致します。
    最適化は考えずに表示優先でコーディングしましたが、それなりの速度で動いており、AS3+PV3Dのポテンシャルの高さが伺えます。

    >>全文へ

  • [papervision3d]*Step2*GeometryObject3Dクラス


    むらけんです。
    いや~遂にCS3日本発売日も来月に決定し、米国版のトライアウト版も先日ダウンロード可能となりました。そして、明日はF-siteセミナーです。160人会場で立ち見が出そうな位大入です。来られる方はよろしくです。
    さて、papervision3d第三回です。
    今回からは早速ですがソースファイルはCS3版とさせていただきます。

    >>全文へ

  • [papervision3d]*Step1*マウスイベント等を付けたりしてみる。


    むらけんです。
    前回はpapervision3dを利用した、シンプルなサンプルをご紹介しましたが、今回はもう少し立ち入ってみましょう。

    >>全文へ

  • [papervision3d]*Step0*入門編-HelloWorld-


    お久しぶりです。むらけんです。
    さて、世間を騒がせているpapervision3dですが、僕もAS3の壁を乗り越えてやっと弄り始めました。
    大分理解出来ましたので、自分を含めAS1.5大好きな人にも抵抗の少ないフレームアクションベースでご紹介していきたいと思います。

    >>全文へ

  • デバイスフォントにアンチエイリアス

    TextFieldでデバイスフォントを使用した場合、通常アンチエイリアスを設定する事は出来ませんが、
    ActionScript+BitmapDataでアンチエイリアス処理を行う事が可能です。
    一連の処理を汎用クラスに纏めましたので、以下サンプルを交えてご紹介致します。

    >>全文へ

  • [AS3][Windows] クラスが見つからない・定義されていないというエラーが出る

    Flash Professional 9 ActionScript 3.0 PreviewのWindows版で、クラスの定義もActionScript (AS)ファイルの保存場所も正しいはずなのに、コンパイルエラーを発生する場合があります。

    >>全文へ

  • コンポーネントにマウスイベントを追加する

    Flash 8のUser Interfaceコンポーネントは、マウスイベントの種類が少ないです。たとえば、Buttonコンポーネントでも、マウスイベントとしてはclickしかありません(図001)。User Interfaceコンポーネントに、他のマウスイベントを追加してみましょう。

    図001■Buttonコンポーネントのイベント
    FF070221_001.gif

    >>全文へ

  • [AS3] オーサリング時に配置されたインスタンスの型指定

    ActionScript 3.0では、オーサリング時に予め配置してあるインスタンスについての型指定が、2.0とは変わっているようです。

    >>全文へ

  • [AS3] ActionScript 3.0で外部テキストファイルを読込む

    ActionScript 3.0では、外部テキストファイルを読込むLoadVarsクラスがなくなります[*1]。その替わりに用意されたのが、flash.net.URLLoaderクラスです[*2]。URLLoaderクラスを使った外部テキストファイルの読込みについてご紹介します。

    >>全文へ

  • [AS3] 静的プロパティと同名のインスタンスプロパティ

    ActionScript 3.0のクラスでは2.0とは異なり、静的プロパティと同名のインスタンスプロパティを定義できることが明記されています

    >>全文へ

  • 汎用モザイクイン BitmapDataクラス

    FLASH8が出て少しした頃、Blurフィルタを用いて、ブラーインの演出というものが流行りましたね。 最近BitmapDataクラスを用いた、モザイクインをよく見かけるようになってきたので、汎用できるようにスクリプティングしてみました。

    >>全文へ

  • イリュージョン − 消えるif条件ブロック内の関数

    少々マニアックな現象です。if条件のステートメントブロック{}内に設定した関数(function)が、こつ然と消えてなくなります。

    >>全文へ

  • [AS3] Stringはプリミティブ値かオブジェクトか

    文字列は単純な値でしょうか、それともオブジェクトでしょうか。実は少し込入った仕組みになっていて、しかもActionSctipt 1.0/2.0と3.0とで仕様が変わっています。

    >>全文へ

  • 空のイベントハンドラメソッドは負荷がかかるか?

    mixiでこんな質問がありました。イベントハンドラメソッドに空のfunction(関数)を設定したとき、処理の負荷は増えるでしょうか? 理屈で考えると、Flash Playerからメソッドの呼出しが生じる分、CPUが使われるように思われます。簡単に、実験してみました。

    >>全文へ

  • タイムライン上のvar宣言

    変数に初期値を与えるとき、ふたつの書き方があります。これらは何か違いがあるのでしょうか?

    i = 0;

    var i = 0;

    >>全文へ

  • 1kBでここまで動かせる!!ASで動かすケシコミ


    F-site次回セミナーでFLASHバナーをやることになりましたので、前座もどき(笑ということでバナー関連の現場で使える系を一つ。

    >>全文へ

  • [AS3] Stage.stageWidth/Stage.stageHeightの戻り値がウィンドウサイズで変わる

    ActionScript 3.0のStage.stageWidth/Stage.stageHeightプロパティは、1.0/2.0のStage.width/Stage.heightと同じく、現在のステージ幅と高さを返します。具体的には、Stage.scaleModeプロパティが"noScale"(StageScaleMode.NO_SCALE)に設定されている場合以外は、SWFファイルのドキュメントプロパティに設定されたサイズが返されるべきです(図001)。ところが、Flash Player 9.0r16では、実際にはFlash Playerのウィンドウサイズが返されてしまうようです。

    >>全文へ

  • クロスOSなマウスホイールアクション

    MX 2004にて追加されたonMouseWheelですが、MACでイベントを取れないという致命的な面があり、対応策としてaddCallbackの使用法を紹介します。

    060912.jpg

    >>全文へ

  • [AS3]Webカメラを使ってみる

    先日のf-siteセミナーでFlashにWebカメラ埋め込んだものを使用したのですが
    その流れでAS3でWebカメラを用いるときはどうなるか試してみました。今回もサンプルつきです。

    >>全文へ

  • NumericStepperで奇数を表示する

    Flash 8のNumericStepperインスタンスに、つぎのような[パラメータ]設定をしてみましょう(図001)。maximum = 10、minimum = 1、stepSize = 2、value = 1。[ムービープレビュー]してNumericStepperインスタンスを操作すると、値はどのように変化するでしょう?

    図001■NumericStepperの[パラメータ]設定
    FF0608231_001.gif

    >>全文へ

  • [AS3] ビットマップをダイナミックに配置する

    [ライブラリ]のビットマップ(図001)を、ActionScript 3.0でダイナミックに配置してみましょう。

    図001■[ライブラリ]に格納されたビットマップ
    FF0608101_005.gif

    >>全文へ

  • [AS3] 終了処理 fscommand("quit") を使ってみる。

    いままでCD-ROMコンテンツのようにスタンドアロンで作る際の終了処理は、fscommandを使っていました。これがAS3ではどうなるのか試してみました。

    >>全文へ

  • [AS3] doubleClickを受取る

    ActionScript 3.0では、イベントを取得するには、イベントリスナーへの登録が必要になりました。また、マウスイベントには、doubleClickが加わりました。ところが、普通のクリックは受取れるのに、同じ処理でダブルクリックを検出することができません。

    >>全文へ

  • [AS3] getURLのように外部ページに行くには

    AS1/2では、getURLを使うことで、外部ページに行く動作が作れたかと思います。ですが、AS3では書き方が変わりました。
    いままで、私のサンプルは外部クラスで持つ形だけだったので、今回はフレーム内記述もあわせてやってみます。

    >>全文へ

  • [AS3]MouseEventの挙動

    ActionScript 3.0のMouseEventでのイベント取得についてちょっとはまってしまったことがあったのでテストしたサンプルファイルと一緒に紹介します。

    >>全文へ

  • [AS3] importの使い方が変わった

    ActionScript 3.0では、import指示子の使い方が、ActionScript 2.0と変わりました。

    >>全文へ

  • AS3.0では正規表現が使えます

    AS3.0では、文字列を直接指定しないで「特徴」(パターン)を指定する 正規表現 というものを使うことができるようになりました。
    これを使えば、splitやindexOfを使うと工夫が必要だったことも、少ないスクリプトで簡単に取り出せるようになります。
    今回は、imageタグに含まれたsrc属性を取り出すサンプルで追ってみます。

    >>全文へ

  • AS3.0での画像読込をしてみよう

    AS1/2 で画像読込!となると MoviClipLoader・loadMovie に良くお世話になっていたと思います、AS3 ではそれらが Loader クラスというものに置き換わっています。

    では、早速、gif画像を読んでみましょう。

    >>全文へ

  • [AS3] new演算子でビジュアルオブジェクトをつくる

    プログラムでインスタンスをつくるには、「new クラス名()」というかたちでコンストラクタを呼び出すのが原則だ。ところが、MovieClipやTextFieldなどは、コンストラクタでインスタンスを生成することができず、MovieClip.createEmptyMovieClip()あるいはMovieClip.createTextField()などといった特別なメソッドを使う必要があった。ActionScript 3.0では、これらも原則どおりコンストラクタで作成することができる

    MYCOMジャーナル「AdobeのFlash担当者に訊く - Flash Player 9とActionScript 3.0何が変わる?」注[*5]

    >>全文へ

  • AS3.0とAS2.0で同じような動きをさせる実験

    AS3.0では、AS2/1とでは色々と変わった点があるようです。
    今回は「四角を横移動させる動き」を題材にして、AS2.0とAS3.0で同じように書いてみようと思います。
    最後にサンプルflaも置きますので、ちょっと長いですが、まずは文章で制作の流れを追ってみてください。

    >>全文へ

  • NaNはNaNと等しい?!

    NaN」より:

    NaNは順序付けされない(unordered)ため、比較演算子による比較には馴染みません。NaNNaN自身を含む他の値と比較すると、不等価演算子!=true、等価演算子==falseを返します。

    >>全文へ

  • 深度の管理 − DepthManager

    [ライブラリ]にコンポーネントがあるとき、メインタイムライン(_root)の深度はDepthManagerクラスで管理することが考えられます。

    >>全文へ

  • XY座標の最小単位

    たとえば、メインタイムライン(_root)に、MovieClipインスタンスmy_mcを配置します。そして、[プロパティ]インスペクタで、X座標に12.3456789(ピクセル)という値を入力すると、どうなるでしょう?(図001)

    図001■[プロパティ]インスペクタでX座標に小数値を設定
    FF060426_001.gif

    >>全文へ

  • [Flash 8] 滅びの呪文

    たった1行のスクリプトで、Flash 8.0のアプリケーションが落ちます。

    >>全文へ

  • newlineの謎

    「ActionScript 2.0リファレンスガイド」によれば、newline定数は「キャリッジリターン文字 (¥r) を挿入します」。しかし、これは嘘です。挿入されるのは、改行文字(¥n)です。この点は、「ActionScript 2.0 の学習」の「エスケープ文字について」の解説を、英語版で確認すると理解できます(図001)。

    >>全文へ

  • ActionScript 3.0

    ActionScript 3に対応したFlash Professional 9 ActionScript 3.0 プレビュー版が発表されました。これを受けて、F-siteでは「ActionScript 3.0」に関する記事を募集しています。

    >>全文へ

  • \r\nが改行コードとして認識されない[Flash 8/Mac OS X]

    Flash 8/Mac OS Xで、つぎのスクリプトを実行してみます(図001)。

    図001■[アクション]パネルに記述したスクリプト
    FN051217_001.gif

    >>全文へ

  • Key.onKeyUpイベントが受取れない[Flash 8]

    Flash Player 8でパブリッシュしたSWFにおいて、確認された問題です。Key.onKeyUpイベントを受取れないことがあります。

    >>全文へ

  • OnEnterFrameBeaconクラスを使う

    Flash MX 2004およびFlash 8には、OnEnterFrameBeaconというクラスがあります。このクラスのOnEnterFrameBeacon.init()というメソッドを呼出すと、MovieClipにリスナーオブジェクトが登録でき,MovieClip.onEnterFrameイベントを受取れるようになります。

    >>全文へ

  • Flash Player 8で書出したSWFの静止テキストが表示されない

    Flash 8はフィルタが追加されたり、テキストのレンダリングエンジンの性能もアップするなど、表現力が向上しました(「次世代Flash − 8ball」参照)。しかし、そのテキストの表示について、物騒なTechNoteがアップされました。

    Flash TechNote「Static text published for Flash Player 8 does not appear on Flash Player 7」より:
    Macromedia Flash Player 8向けにパブリッシュされたSWF内の静止テキストは、Flash Player 7(以前)で見ると表示されません("Static text in a SWF file published for Macromedia Flash Player 8 does not appear if viewed in Flash Player 7.")。

    >>全文へ

  • カンマ演算子は必ず右の値を返す

    カンマ(,)演算子は、あまり使われることがありません。使用するメリットがあるのは、forステートメントくらいで、かぎられたものでしょう。しかし、「ActionScriptリファレンスガイド」に、かなり基本的な間違いがあります。

    >>全文へ

  • スケルトンのScrollPane

    ちょっとしたはずみで、スケルトンのScrollPaneができました。ScrollPaneに設定したMovieClipが、ScrollPaneインスタンスの外枠をはみ出して表示されます。

    >>全文へ

  • 意外と使えないMovieClip.onData

    Flash MX 2004オンラインヘルプによれば、「ムービークリップがMovieClip.loadVariables()またはMovieClip.loadMovie()の呼び出しからデータを受け取ったときに呼び出されます」。しかし、これは嘘です。MovieClip.loadMovie()メソッドを使った場合、MovieClip.onDataハンドラは呼出す方法がありません。

    >>全文へ

  • PopUpManager.createPopUp()の戻り値の型

    PopUpManager.createPopUp()メソッドは、「コンポーネント辞書」(オンラインヘルプ「Flashコンポーネントガイド」)によれば、「作成されたウィンドウへの参照」つまりWindowインスタンスを返します。ところが、戻り値をWindowsクラスで型指定した変数に代入すると、コンパイルエラーが発生します。

    >>全文へ

  • Stage.heightが100ピクセル足りない

    怪談の「番町皿屋敷」ではありませんが、Stage.heightが100ピクセル足りなくなる現象です。怪談と違い、四季に関係なく、[ムービープレビュー]で発生します。

    >>全文へ

  • true/falseは小文字で書きましょう

    大文字小文字の区別は、Flash Player 7から採用された仕様変更です。しかし、ブーリアン(論理)値true/falseは、Flash MX 2004 (7.2)を使ってFlash Player 6以前でパブリッシュした場合でも、大文字小文字を誤ると正しく認識されません。

    >>全文へ

  • 未定義変数をisNaN()関数で調べると

    パブリッシュしたSWFのFlash Playerのバージョンによって、返される値が異なります。

    >>全文へ

  • 入れ子のMovieClipに設定したContextMenuが表示されない

    Flash MX 2004(Flash Player 7)から、ContextMenuクラスを使って、コンテキスト(ショートカット)メニューをカスタマイズできるようになりました。ContextMenuオブジェクトは、MovieClipインスタンスに対して設定します。ところが、そのMovieClipインスタンスが他のMovieClipに入れ子になっていると、設定したコンテキストメニューが表示されません。

    >>全文へ

  • ダイナミックに作成するインスタンスの型指定

    タイムラインに配置するMovieClipやTextFieldインスタンスについても、ActionScript 2.0の型指定を行うことが可能です。型指定を行うと、型のシンタックスチェックが行われるほか、コードヒントを表示することができて便利です。しかし、インスタンスをダイナミックに作成する際には、注意が必要です。

    >>全文へ

  • 意外と使えないMovieClip.getNextHighestDepth()

    MovieClip.getNextHighestDepth()メソッドは、現在使用されている最も数値の大きい深度のつぎ(+1)の値を返します。この値をスクリプトで新規に配置するMovieClipインスタンスの深度に設定すれば、他のMovieClipと重複せずに1番手前に配置することができます。しかし、このメソッド、実はあまり使えません。

    >>全文へ

  • <img>タグで挿入した画像にテキストを回り込ませたくない

    TextFieldインスタンスにHTMLテキストで<img>タグを設定したとき、その後に書かれたテキストは画像を回り込みます。この回り込みを、直接解除する方法はないようです。

    >>全文へ

  • MenuBarがボタンを狂わす?!

    Flash MX 2004のMenuBarコンポーネントのインスタンスを配置すると、ボタンが不思議な動作をし始めます。

    >>全文へ

  • forステートメントの変数に型指定

    [自動フォーマット]すると...

    >>全文へ

  • Number.toString()メソッドの限界

    trace((0x7fffffff+1).toString(16)); // 出力: 7fffffff // 1足りない?

    >>全文へ

  • Macromedia Flash MX 2004 Developerサンプル問題[解答]

    Macromedia Flash MX 2004 Developerサンプル問題の解答です。解答はとくに日本語訳する必要もないものなので、気になった部分にコメントをつけてみしました。

    >>全文へ

  • Macromedia Flash MX 2004 Developerサンプル問題

    Macromedia Flash MX 2004 Developerの認定試験というものがあります。サンプル問題が英文のままなので、ざっと日本語訳してみました。

    >>全文へ

  • トラブルの「捜査手順」

    殺人事件の捜査は、まず被害者の特定に始まり、つぎに犯行時刻を推定し、そして容疑者のアリバイを洗います。トラブルシューティングの手順も、これと同じ考え方で進めることができます。

    >>全文へ

  • undefined.toString()?!

    Flash MX 2004 7.2オンラインヘルプ[ActionScriptリファレンスガイド] > [undefined]より:
    「Flash Player 6以前用にパブリッシュされたファイルでは、undefined.toString()は""(空のストリング)になります。Flash Player 7以降用にパブリッシュされたファイルでは、undefined.toString()はundefinedになります。」

    ひと言でいって「嘘」、ふた言なら「無茶」です。

    >>全文へ

  • 名前のない関数を定義と同時に呼出す

    名前のない関数を定義すると同時に呼出すことができません。そういう必要があるかどうかは別として。

    >>全文へ

  • 動的に作成したComboBoxを削除して再作成すると項目が表示されない

    UI Componentsのインスタンスは、UIObject. createObject()メソッドで動的に作成することができます。ところが、動的に作成したComboBoxインスタンスを一旦削除して再作成すると、設定した項目は正しく表示されないことがあります。

    >>全文へ

  • Flash Playerの旧バージョン/リビジョン

    Flash Playerの古いバージョンを、テストのため必要とすることがあります。Macromediaでは、古いバージョンのFlash Playerを、テスト用に公開しています。

    >>全文へ

  • コンポーネントのアニメーションをカスタマイズ

    英語版が公開されたFlash MX 2004 Updater 7.2は、コンポーネント関連ドキュメントが充実しました。その中には、コンポーネントのアニメーションをカスタマイズする方法も、紹介されています([Help] > [Using Components] > [Customizing Components] > [Using styles to customize component color and text] > [Customizing component animations])。

    >>全文へ

  • TextFieldに<img>タグで画像が表示できない

    Flash MX 2004から、TextFieldインスタンスに設定するHTMLテキストとして<img>タグが使えるようになりました。しかし、<img>タグで指定した画像を、表示できないことがあります。

    >>全文へ

  • ActionScript 2.0で「this必須宗」の復活

    ActionScript 2.0のクラス定義では、クラスのインスタンスを参照する場合に、原則としてthis参照は不要です。thisは、自動的に補われるからです。ところが、this参照をつけないと、スクリプトが正しく動作しない場合があります。「this必須宗」が、一部で復活の兆しです。

    >>全文へ

  • 自動フォーマットの勝手な行動[Flash MX 2004]

    【問1】つぎのスクリプトを記述して、[自動フォーマット]を実行するとどうなるでしょう? いずれも、何かしらやらかしてくれます。

    >>全文へ

  • Flashのフレームレートを正常に[Internet Explorer 6/Window]

    こんなレポートを見つけました。

    「Internet Explorer 6.0/Windowsで、wmode属性を設定すると、スピードがアップする」(3へぇ)

    >>全文へ

  • continueの勘違い

    continueステートメントは、ループ処理において、以降のステートメントをスキップして、つぎのループに処理を移します。ifswitchステートメントは、continueが制御を移す対象ではありません。ところが、switchステートメントで、この勘違いが起こるようです。Flash MX 2004で確認された問題です。

    >>全文へ

  • イベントハンドラメソッドはdeleteで消せ!

    Flash MXから実装されたイベントハンドラメソッドの定義をクリアしたいとき、delete演算子を使わずに、undefinednullを代入する人がいます。イベントハンドラメソッドは、delete演算子で削除した方が安全です。

    >>全文へ

  • 静的プロパティに設定した配列の値が取出せない[ActionScript 2.0]

    ActionScript 2.0でクラスに静的(static)プロパティとして配列を設定した場合、クラスのメソッドで配列エレメントを取出せないという問題が発見されました。

    >>全文へ

  • Windowsで「〜」が逆転

    Macintosh環境でテキストフィールドに入力した文字「〜」が、Winodows上で上下反転して表示されることがあります。SWFをブラウザあるいはStandalone Playerで再生しても、プロジェクタに書出しても、同じ結果です。

    >>全文へ

  • System.capabilities.languageの英語システム上の戻り値

    Flash MX 2004の「ActionScript辞書」によれば、System.capabilities.languageの英語システム上の戻り値は、"en"です。Flash Player 6では、この値が異なります。

    >>全文へ

  • MovieClipのコードヒントにattachAudioがない

    Flash MX 2004でMovieClipのコードヒントを表示すると、リストの中にattachAudioが見当たりません。一瞬、MoiveClipでなくSoundクラスのメソッドだったろうか、などと不安にかられます。

    >>全文へ

  • 荀?の気も引くテキストバグ[MX 2004/OS X]

    FLASH-Japan報告されたテキストのバグです。Flash MX 2004/MacOS Xで、「血」という文字が「荀」に変わります。

    >>全文へ

  • 論理和演算子||(OR)二重のバグ

    【質問】Flash MX 2004(Flash Player 7書出し)で、以下のスクリプトの[出力]結果は、どうなるでしょう?

    マニュアルを参照すると、結果を正しく予測することはできません。しかも、Flash MX 2004のコンパイラにバグがあるようです。Flashcodersで議論された問題です。

    >>全文へ

  • 定義済みクラスの.asファイルでシンタックスエラー

    Flash MX 2004の定義済みクラスの.asファイルを開いて、[シンタックスチェック]を行うと、エラーになる場合があります。

    >>全文へ

  • interfaceの型をObject型の引数で受取れない

    ActionScript 2.0のinterfaceに関するバグです。クラスのメソッドにObject型の引数として、interfaceで型指定した値を渡すと、シンタックスエラーが発生します。

    >>全文へ

  • コンポーネントへのツールチップの追加

    Flash MX 2004オンラインヘルプの[Flashコンポーネントガイド] > [コンポーネントの作成] > [コンポーネントの利便性向上] > [ツールチップの追加]には、つぎのように説明されています。「コンポーネントにツールチップを追加するには、コンポーネントのActionScriptクラスファイル内のクラス定義の外部にtiptextキーワードを使用します」。嘘です。追加できません。

    >>全文へ

  • Now Loadingのサンプル5個セット

    普段かならずと言っても良いほど使うNowLoading。というわけで、いろんなタイプのNowLoadingを5種類まとめてみました。メインのタイムライン第1フレームに置くだけで動作します。自由に使って下さい。

    >>全文へ

  • 外部SWFのComboBoxが開かない[MX 2004]

    Flash MX 2004で、外部SWFに配置したComboBoxをロードすると、クリックしてもドロップダウンリストを開けないことがあります。FLASH-Japanでも報告された問題です。

    >>全文へ

  • 失われるcapabilitiesの記憶[MX 2004]

    System.capabilitiesオブジェクトにアクセスすると、あるとき突然そんなものは知らないといわれることがあります。コンパイラが記憶喪失になるという悲しいバグです。

    >>全文へ

  • MX形式で保存するとエスケープ記号が変わる[MX 2004/OS X]

    またMacOS X版Flash MX 2004の[アクション]パネルで、問題発見です。エスケープ文字(\)が、Flash MXフォーマットで保存すると、別の文字に変換されてしまいます。

    >>全文へ

  • int関数は整数を丸めない

    「ActionScript辞書」(Flash MX/MX 2004)には、int()関数が値を整数に丸める(四捨五入する)かのように記載されています。ドキュメントバグでしょう。

    >>全文へ

  • 1度入ると抜けられないイベントリスナー[MX 2004]

    Flash MX 2004のコンポーネントは、イベントリスナーを使って必要な処理を定義します。ところが、イベントリスナーの登録メソッドはあるものの、削除のメソッドが見当たりません。1度入ったら抜けられない怪し気な団体のようです。

    >>全文へ

  • IE/WinでgetURLのウィンドウ指定ができない

    getURL()アクションまたはMovieClip.getURL()メソッドでウィンドウの指定をしても、Internet Explorer/Windowsでは、新規のブラウザウィンドウを開いてしまうことがあるようです。

    >>全文へ

  • 認知されたLoadVars.onData

    Flash MX 2004のオンラインヘルプに、LoadVars.onDataメソッドが正規に掲載されました。

    >>全文へ

  • アクションパネルの怪しいテキスト表示[MX 2004/MacOS X]

    Flash MX 2004/OS Xの[アクション]パネルは、テキストのレンダリングがどうも怪しいようです。

    >>全文へ

  • Flash MX 2004ヘルプ正誤表

    Flash MX 2004オンラインヘルプの勝手に(非公式)正誤表です。

    >>全文へ

  • onClipEvent(load)で自分自身にloadMovieしてはいけません

    onClipEvent (load)ハンドラ内で、自分自身(this)をターゲットとしてMovieClip.loadメソッドを実行してはいけません。外部ファイル(SWFまたはJPEG)がロードされると、また新たにloadイベントが発生するので、永久に処理が終わらないからです。

    と、これだけで説明はよいのですが、AYAさんにウケたので、その状況をこんな風にたとえてみました。

    >>全文へ

  • String.splitの引数に複数文字を渡した場合[MX 2004]

    Flashcodersで話題になったString.splitメソッドのバグです。Flash MX 2004で発生します(英語版Trial/Flash Player 7.0r14調べ)。

    >>全文へ

  • ショートカットの考察

    ショートカットキーは、覚えておくと便利なものがいろいろあります。しかし、なかなか気づかなかったり、仕様が微妙に変わったり、いわれないとわからない部分も少なくありません。思いつくまま、ショートカットキーに関わる小ネタをご紹介します。

    >>全文へ

  • delete

    演算子; オペランド[*1](parameter)の参照に指定されたオブジェクトまたは変数を破棄します。オブジェクトが正しく削除できれば、'true'を返します。そうでなければ、値として'false'が返されます。この演算子は、スクリプトで使用されたメモリを解放するのに役立ちます[*2]。'delete'は演算子ですが、通常つぎのようなステートメントとして用いられます。

    >>全文へ

  • Alert.show()

    メソッド(クラス); クラスの(静的)メソッドで、警告ウィンドウを表示し、そこにメッセージのほか、オプションとしてタイトルやボタン、アイコンが加えられます。警告のタイトルは、ウィンドウ上端に表示され、行は左寄せになります。アイコンは、メッセージテキストの左側に表示されます。ボタンは、メッセージテキストとアイコンの下側中央に表示されます。

    >>全文へ

  • コンポーネントのラベルの文字が切れる

    ラベルのテキスト下1ピクセルが切れる
    コンポーネントにラベルを設定すると、テキストの下1ピクセルが切れてしまうことがあります。たとえば図1は、RadioButtonコンポーネントのインスタンスにラベルを設定した例です。左がデフォルトの下1ピクセルが切れたテキスト、右がその問題を修正した後のラベルの状態です。

     
    図1■テキストの下1ピクセルが切れたラベル(左)と、その問題を修正したラベル(右)

    >>全文へ

  • Object.watch()

    メソッド; イベントハンドラ([訳者註] コールバック関数)を登録して、指定したActionScriptオブジェクトのプロパティが変更されたときにそれを呼出します。プロパティが変更されると、コールバック関数はmyObjectをプロパティの帰属するオブジェクトとして呼出されます。新規の値は、'Object.watch()'メソッドから返す必要があります。戻り値がないと、監視しているオブジェクトプロパティには'undefined'が値として設定されます。

    >>全文へ

  • TextField.textプロパティをwatchすると既定値が取得できない

    Object.watchメソッドは、指定したプロパティの値が変更されたときにコールバック関数を呼出します。ところが、TextField.textプロパティを対象にすると、コールバック関数呼出し時に必ずしもすべての情報が正しく受取れません。

    >>全文へ

  • 自動フォーマットでスクリプトの動作が変わる

    ひさし貸し母屋取られるelseかな
    「ひさし(庇)を貸して母屋を取られる」ということわざがあります。[アクション]パネルの[自動フォーマット]をは、シンタックスをチェックしたり、フォーマットを整えてくれる便利な機能です。しかし、たまに余分なことをしてくれる場合があります。

    >>全文へ

  • Flash MX 2004でハマりがちな問題点

    Flash MX 2004でスクリプトを書いたとき、MXからの変更点でハマりがちな項目に触れておきます。

    >>全文へ

  • Flash Playerのバージョンチェック

    Flashをブラウザ上で見るとき、プラグインのバージョンで挙動が変わるので、大弱り。
    そんなときはこのバージョンチェッカーをつかうとPlayerのバージョン3~6まできれいに判定してくれます。生ファイル付ですから、解析してみてください。

    >>全文へ

  • ECMA-262第4版準拠

    Flash Player 7では一部実装が変更され、ECMA-262第4版提案(ECMA-262 Edition 4 proposal)への準拠をより強めています。ActionScript 2により可能になったクラスベースのプログラミング技術(New object-oriented programming model参照)に加えて、追加された機能もあり、一部の動作が変更されています。また、Flash Player 7にパブリッシュする場合でActionScript 2.0を使用しているときは、あるオブジェクト型を別の型にキャストすることも可能です[*1]。

    >>全文へ

  • 森脇さんのオブジェクトのドラッグドロップとマウスへ追従

    2003.08.24のF-siteセミナーで使用した、マウスにオブジェクトを追従させるActionScript、オブジェクトのドラックアンドドロップするためのActionScriptのサンプルデータです。

    moriwaki_seminar00.zip(63.9KB)

    デモの様子はセミナー>写真レポートでご覧ください。

  • System.capabilities.isDebugger

    プロパティ; Flashムービーを再生しているPlayerが、デバッグ版なら'true'、リリース版なら'false'を返します。

    >>全文へ

  • Stage.onResize

    コールバックメソッド; Flashムービーのサイズが変更されたことを知らせます。このイベントを使うと、ムービーのサイズが変わったときに、ステージ上のオブジェクトをレイアウトし直す'function'を作成することができます。

    >>全文へ

  • FScrollPane.setScrollContent

    メソッド; ScrollPaneに表示するMovieClipを指定します。このメソッドを呼出すと、オーサリング時に設定したScroll Contentパラメータの値は書替えられます。

    >>全文へ

  • MovieClipの_widthと_heightが混乱

    MovieClipの三半器官障害?
    人間をぐるぐると回してやると、目が回ってまっすぐに歩けなくなります。平衡感覚を司る三半器官に、一時的な障害が発生するためということらしいです。

    >>全文へ

  • Object.registerClass

    メソッド; ムービークリップシンボルを、ActionScriptのオブジェクトクラスに帰属させます。シンボルが存在しないと、Flashはストリング識別子とオブジェクトクラスとの間に帰属関係を設定します。

    >>全文へ

  • スクリプト小箱

    2003.05.31のF-siteセミナーのデモでご紹介した「ActionScriptなんてこわくない(?)今から使える簡単Script」のサンプルファイル&解説ページです。
    「スクリプトが苦手!」と言うあなたに贈る最終兵器。 ActionScriptというのは、つまりFLASH語なのだ。  だから、話せば(きっと)わかるはず。 ね。 ほら、もう、スクリプトなんかこわくない♪ どのサンプルにも、野中博士のワンポイント・マニアック講座つきだよ。
    [主な項目]
    ●おまけのロールオーバー
    ●いったりもどったり
    ●栄光のドラッグ&ドロップ
    ●ボケスクロール

    >>この記事の詳細を読む

    デモの様子はセミナー>写真レポートでご覧ください。

  • Full Flashサイト構築テク

    2003.05.31のF-siteセミナーのデモでご紹介した、"Final FantasyX-2のウェブサイト"を例題に「こんな風に作っているんじゃないかなぁ?」と分析したスクリプトのサンプルファイル&解説です。
    >>この記事の詳細を読む

    デモの様子はセミナー>写真レポートでご覧ください。

  • ウィンドウサイズにあわせたメニュー配置

    2003.05.31のF-siteセミナーのデモでご紹介した、スクリプトのサンプルファイルです。
    Fsemi_20030531.zip(20kb)

    デモの様子はセミナー>写真レポートでご覧ください。

  • MovieClip.onKeyUp

    イベントハンドラメソッド(訳者註: 原文は"event"); キーが放されると呼出されます。onKeyUpメソッド(訳者註: 原文は"event")は、引数なしに呼出されます。'Key.getAscii'や'Key.getCode'メソッドを用いることにより、どのキーが押されたのかを判別することができます。イベントハンドラメソッドには、イベントが発生したときに実行する'function'(関数)を定義する必要があります。

    >>全文へ

  • MovieClip.onKeyDown

    イベントハンドラ(訳者註: イベントハンドラメソッド); MovieClipにキー入力のフォーカスがあり、キーが押されると呼出されます。onKeyDownメソッド(訳者註: 原文は"event")は、引数なしに呼出されます。Key.getAsciiKey.getCodeメソッドを用いることにより、どのキーが押されたのかを判別することができます。イベントハンドラメソッドには、イベントが発生したときに実行するfunction(関数)を定義する必要があります。

    >>全文へ

  • ()喰い虫(カッコクイムシ)

    生息場所:ノーマルモード
    危険度:中(だけどしつこく、駆除しにくい)
    [見る]

  • まるめ虫

    生息場所:浮動小数点付計算
    危険度:中(駆除はできるが、根絶は不可能)
    [見る]

  • 二星まるめ虫(フタボシマルメムシ)

    生息場所:浮動小数点付計算
    危険度:大(ただし、駆除は簡単)
    [見る]

  • 別冊:「おじゃま虫図鑑」

    生息場所:あちこち
    危険度:ひょっとして一番大(駆除不可能)
    [見る]

  • 他OSで作成したソースファイルが開けない

    MacintoshとWindowsのファイルシステムの違いによって発生する問題です。
    Macintoshで作成されたファイルは、マックバイナリ形式と呼ばれ、そのままではFlashのように両OS間で互換性のあるソースでも、Windowsで正常に読み込むことはできません。

    >>全文へ

  • Win-Mac間のデータ受け渡しに関する注意点

    異なるOS間でデータのやり取りをする場合、例えばE-Mailで添付ファイルを送付したり、Webサイトにソースファイルを置いたり、またMOやCD-Rでデータを渡す際の注意点をまとめてみます。

    >>全文へ

  • MovieClip.onRollOverが動作しなくなる

    問題ムービーのレシピ
    この不思議な現象を再現するには、いくつかの条件を満たす必要があります。問題のムービーのつくり方は、つぎの3つのステップです。

    >>全文へ

  • MovieClip.attachMovieで配置したインスタンスがButtonになる

    attachMovieはMovieClipを配置するメソッドのはず
    MovieClip.attachMovieメソッドのシンタックスは、つぎのとおりです。

    myMovieClip.attachMovie( idName, newName, depth [, initObject] )

    >>全文へ

  • Object.constructor

    プロパティ; オブジェクト(インスタンス)の初期化に使用されたコンストラクタ関数を参照します。

    コンストラクタがプロトタイプオブジェクトを生成すると、その参照が'prototype'プロパティに格納されます。そして、プロトタイプオブジェクトには、'constructor'プロパティが設定されます。'constructor'プロパティは、生成されたプロトタイプオブジェクトのコンストラクタ関数を参照します。

    >>全文へ

  • Function.prototype

    プロパティ; 関数がコンストラクタとして実行されると、そのクラスが継承すべきプロパティやメソッドを備えたプロトタイプオブジェクトが自動的に生成されます。'prototype'プロパティは、そのプロトタイプオブジェクトを参照します。コンストラクタ関数から作成されたクラスのインスタンスは、プロトタイプオブジェクトからすべてのプロパティとメソッドを継承します。

    >>全文へ

  • Function.call

    メソッド; Functionオブジェクトに帰属する'function'を呼出します。ActionScriptのあらゆる'function'は、Functionオブジェクトに帰属します。したがって、すべての'function'が'call'メソッドをサポートします。

    >>全文へ

  • XMLSocket・.NET Flash Remoting・Flash Communication Server

    制作者:保高&Kato(FCSインターフェイスデザイン:瀧上)
    2002.12.08のF-siteセミナーのデモでご紹介した「サーバーサイドネタ3本立て」のサンプルファイルです。

    Flashをインターフェイスにするサーバーサイドソリューションの技術としてどういうものがあり、どのように用いるかを解説しています。
    Fsemi_0212.zip(1Mb)

    デモの様子はセミナー>写真レポートでご覧ください。

  • ActionScript Map

    このダイアグラムは OOP の観点から見た Flash MX ActionScript のビルトイントップレベル object/function object の相関関係を示しています。それぞれの関係は下のテストコードによる検証結果です。

    2つのタイプの関係があり、一つはコンストラクタとそのインスタンスの関係、もう一つはスーパークラスとサブクラスの関係になります。ダイアグラムの中では、前者が実線で、後者が点線で示されています。

    この他の'eval'や'escape'といった変換関数としてのみ使われるfunctionはここには含まれていません。

    >>全文へ

  • MovieClip.loadVariables

    メソッド; 外部ファイルからデータを読込んで、MovieClipの変数に値を設定します。外部ファイルは、CGIスクリプトやアクティブサーバーページ(ASP)、PHPスクリプトで生成されたテキストファイルでも構いません。また、変数はいくつでも指定できます。

    >>全文へ

  • Function.apply

    メソッド; ActionScriptから呼出す'function'に対して、使用する'this'の値を指定します。このメソッドは、呼出した'function'に渡す引数も、指定することができます。'apply'はFunctionオブジェクトのメソッドなので、ActionScript中のすべての'function'のメソッドでもあります。

    >>全文へ

  • Movie.duplicateMovieClipで複製したMovieClipのfunctionが実行されない

    1. 現象
    'MovieClip.duplicateMovieClip'メソッドは、元となったMovieClipインスタンスのプロパティを'function'も含めてすべて複製します。ところが、メソッドを実行した直後に、複製されたMovieClipの'function'を実行しようとしても、実行されません。'function'は、MovieClipの第1フレームに定義してあっても、オブジェクトアクション'onClipEvent (load)'で設定しても同じです。

    >>全文へ

  • TK Tween Engine "dynTweenMX"

    "dynTween"は、ムービークリップにスクリプトで動的にトゥイーンを適用することを可能にします。

    >>全文へ

  • "dynColorTweenMX"

    ムービークリップにカラーの高度な設定を適用しモーショントゥイーンさせた場合と同じ効果をスクリプトのみで実現します。異なるトゥイーンを連続して実行することもワンアクションで可能です。さらにそれらをループさせることも可能です。

    >>全文へ

  • TK Event Engine "eventEngineMX"

    MXでは、
    mc.onEnterFrame = function () {...}
    といった形でイベントメソッドを使うことにより、eventEngineを使わなくても全てのコードを_rootに書くことができるようになりましたが、そのMXで TK Event Engine を使う理由として:
    ・リスナーの管理のしやすさ
    ・リスナーに簡単に引数を渡すことが可能
    ・イベント発生時のリスナーの実行にevalが使われていることによるスピードの速さ
    等が挙げられます。

    >>全文へ

  • _global

    識別子; グローバル変数やグローバルなオブジェクト、クラスを作成します。たとえば、ライブラリを作成してグローバルActionScriptオブジェクトにすると、MathやDateオブジェクトと同じように扱われることになります。タイムラインやローカルに設定された変数や'function'とは異なり、グローバルの変数や'function'は、どのタイムラインやFlashムービーのスコープからでも参照できます。ただし、同名の識別子があって内部スコープが遮断される場合を除きます。

    >>全文へ

  • SharedObject.flush

    メソッド; ローカルに存在している共有オブジェクトを、ただちにローカルファイルに書込みます。このメソッドを使用しなければ、Flashは共有オブジェクトをその処理が終了するときににファイルへ書込みます。処理の終了とは、SWFムービーが終了するか、共有オブジェクトに対する参照がすべてなくなって、ガーベージコレクションによりオブジェクトが削除されるときをいいます。

    >>全文へ

  • チュートリアルを始める前に

    ・フラッシュムービーのパフォーマンスをより効率よく、
    ・パブリッシュするswfのファイルサイズをより小さく、
    ・コードとグラフィックパーツの分離、
    つまりグラフィックパーツの入れ替えを出来る限り容易に、
    ・オーサリング時、目的のコードにできるだけ到達しやすく、
    ・後で見たときにわかりやすく、又再利用しやすくしたい、etc.

    こういったことを可能にするのが OOP(Object Oriented Programming)的
    アプローチを取り入れたActionScriptingです。
    ここでは今後、ECMA(JavaScript等が準拠)+MovieClipの概念とも言える
    ActionScriptの基本構造、又そこでオブジェクト指向的アプローチを実現す
    るステップ等の解説を試みていきます。

    >>全文へ

  • チュートリアル-1 : Intro

    「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
    ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。

    >>全文へ

  • チュートリアル-2 : object

    objectの厳密な定義はActionScriptやJavaScriptが準拠するECMA-262に書かれていますが、ここでは単純に「objectはプロパティと呼ばれるデータの集合」と理解しておけば十分でしょう。

    例2
    circle1 = {radius:50}

    例えばメインタイムラインにこう書くと、名前が'radius'、値が50のプロパティを持つobject 'circle1'を_rootのプロパティとして定義することになります。
    つまりswfムービーが再生されこのコードが実行されると、ビルトインMovieClip objectである_rootの1プロパティとして名前が'circle1'で値が{radius:50}というobject値であるobjectが作られます。

    >>全文へ

  • チュートリアル-3 : function

    「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
    ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。クラスに関する詳しい説明は後ほどになりますが、例えば私たちが過去に少なくとも一度は書いたことがあるコード:

    例1
    myDate = new Date();

    >>全文へ

  • チュートリアル-4 : ASの基本構造

    ASのビルトイントップレベルFunction objectとビルトイントップレベルobjectにはどういったものがあるか見ていくことにしましょう。

    >>全文へ

  • チュートリアル-5 : prototype

    prototypeは、ビルトイン、ユーザ定義に関わらず全てのFunction objectが持つビルトインプロパティです。そしてそのタイプはobjectです。そのprototypeプロパティが持つプロパティは、そのFunction objectからnew演算子で作られる全てのインスタンスから、そのプロパティ名で参照することができます。

    >>全文へ

  • チュートリアル-6 : __proto__

    全てのオブジェクト、つまりobject, Function object, MovieClip objectは"__proto__"という名のビルトインプロパティを持っています。そしてその__proto__はそれ自体がそのオブジェクトのコンストラクタのprototypeの値(object値)への参照になっています。

    >>全文へ

  • XML.onLoadメソッドで変数の設定ができない

    1. 現象
    'XML.onLoad'メソッドで定義したコールバック関数の中で、グローバル変数を設定・参照するステートメントを記述しても、正しく設定できないことがあります。コールバック関数自体は、正常に呼び出されています。

    >>全文へ

  • SharedObject.getLocal

    メソッド; ローカルに保持されているSharedObjectの参照を返します。オブジェクトは、現在のクライアントのみが使用できます。

    >>全文へ

  • super

    演算子: 第1シンタックス形式は、オブジェクトのメソッド本文でスーパークラスの側のメソッドを呼出すために使われます。そして、オプションとして引数(引数1... 引数N)をスーパークラスのメソッドに渡します。この形式は、スーパークラスのメソッドに対して追加的な処理を行うサブクラスのメソッドを作成し、かつ本来の処理を実行するスーパークラスのメソッドを呼出したいときに有効です。

    >>全文へ

  • SharedObject.data

    読取り専用プロパティ; オブジェクトの'data'プロパティには、任意の名前の属性とその値をセットにして設定できます。各属性の値には、データ型の制限はとくにありません。ArrayやNumber、Booleanなども使用可能です。たとえば、以下のステートメントは、変数"profile_so"に格納したSharedObjectに、さまざまなデータ型の値を属性として設定しています。

    >>全文へ

  • #includeが正しく動作しない

    マニュアルどおりに書いたなら
    マニュアルはきちんと読みましょう。これが開発の基本です。さらにつぎのステップは、マニュアルを鵜呑みにするのはやめましょう。「ActionScript辞書」で#includeの項には、そのシンタックスがつぎのように記載されています。

    #include "filename.as";

    >>全文へ

  • TK Event Engine "eventEngine"v1.30

    ソースファイル(含使用例):

    Download the source fla


    概要:

    == イベントエンジンとは ==

    ソースfla内のステージに置かれているカラのMC "eventEngine"、これがTK Event Engineのエンジンになります。

    >>全文へ

  • TK Tween Engine "dynTween"v1.06

    概要:

    この TK Tween Engine は、ムービークリップに動的にトゥイーンを適用することを可能にします。TK Event Engine アドオンバージョンを使う場合はそのムービークリップには何も書かず、又スタンドアローンバージョンを使う場合はムービークリップに以下のコードを書いておきます。

    onClipEvent (enterFrame) {
    onEnterFrame();
    }

    >>全文へ

  • bigLoop

    Download the source file

    次のようなネストされたforループを実行する場合について考えてみましょう。

    for (k=0; k<=5; k++) {
    for (j=0; j<=5; j++) {
    for (i=0; i<=5; i++) {
    trace(k + " " + j + " " + i);
    }
    }

    }

    >>全文へ

  • ActionScriptとは

    生まれ変わったオブジェクト指向のスクリプト言語

    ActionScript は、Flash Version5 で生まれ変わった本格的な、オブジェクト指向のスクリプト言語です。

    >>全文へ

  • シンボルとインスタンス

    シンボル

    シンボルは、[ライブラリ] ウィンドウに格納されたグラフィック、ボタン、ムービークリップの共通部品です。
    シンボル化によって、同じムービー内での再利用が可能になり、ファイルサイズを節約することができます。

    >>全文へ

  • シンボルとインスタンスのタイプ

    グラフィック
    アニメーションGIFに近い存在です。
    タイムラインを使用したアニメーションを作成できますが、タイムラインにスクリプトを記述しても、再生時に無視され、実行されません。

    >>全文へ

  • アクションのタイプ

    アクション

    Flashには、スクリプトを記述する場所が3か所あります。各場所に記述された(する)スクリプトをアクションといいます。

    >>全文へ

  • イベントとイベントハンドラ

    イベントとは

    例えば GUI (グラフィック・ユーザー・インターフェース)を採用したソフトウェアは、ユーザーのマウスクリック、ドラッグ&ドロップ、キー入力などの操作(出来事)を常に監視し、それらの操作が行われると、それに対応した処理を行うようにプログラミングされています。

    >>全文へ

  • ユーザーイベント(外部イベント)

    ユーザーイベントとは

    マウス操作やキーボード入力など、ユーザーが引き起こすイベントをユーザーイベントといいます。
    Version4 では、ボタンインスタンスでユーザーイベントを取得していましたが、Version5 からはムービークリップインスタンスでも取得できるようになりました。
    どちらのインスタンスも、フレームアクションではなく、オブジェクトアクションにイベントハンドラを記述することにより、イベントを取得します。詳しくは、「イベントとイベントハンドラ」をご覧ください。

    >>全文へ

  • システムイベント(内部イベント)

    システムイベントとは

    ユーザーのマウス操作などの外部的な要因ではなく、フレームの更新(再生ヘッドの移動)、ムービークリップインスタンスやテキストデータの load など、Flash のシステム内部で起こるイベントをシステムイベントといいます。
    システムイベントは、ムービークリップインスタンスのオブジェクトアクション、onClipEvent ( event ) ハンドラだけで取得できます。

    >>全文へ

  • 変 数

    変数とは

    スクリプトの処理結果やユーザーの文字入力などを、ムービーで活用するためには、名前を付けた器を用意し、それらのデータを格納しておく必要があります。
    この受け皿となるデータ(情報)の入れ物のことを変数といいます。
    また、変数につけられた名前を変数名、変数に格納されたデータをといいます。

    >>全文へ

  • データ型

    ActionScript のデータ型

    スクリプトの中に記述したり、変数に代入することができるデータの種類は、あらかじめ決められています。このデータの種類のことを、データ型といいます。
    ActionScript のデータ型には、数値、ストリング(文字列)、ブール、オブジェクト、ムービークリップの5つがあります(実際には function 型も扱えます)。

    >>全文へ

  • 演算子

    演算子とは

    データに処理を加える記号のことを演算子といいます。一方の、演算子によって処理されるデータはオペランド、演算子とオペランドの組み合わせのように、値を生成する文をといいます。

    >>全文へ

  • 算術演算子

    解 説

    算術演算子は、数値のオペランドに加算、減算、乗算、除算などの算術演算を実行し、評価結果(演算の結果)を数値で返します。

    >>全文へ

  • 等価演算子と比較演算子

    解 説

    等価演算子は、2つのオペランドの値が等価(等しい)か否かを評価(演算)し、結果をブールで返す演算子です。等価演算子(==)と不等価演算子(!=)があります。

    >>全文へ

  • 代入演算子

    解 説

    代入演算子は、変数に値を代入する演算子です。結合性が、「右から左」であることに気をつけてください。また、数学の等号(=)との混乱にも注意が必要です。Flashの等価演算子は ' == ' です。

    >>全文へ

  • ストリング演算子

    解 説

    ストリング演算子は、ストリングのオペランドを対象としたストリングを操作する演算子です。
    さらに具体的にいうと、ストリング演算子は、2つのストリングのオペランドを連結する演算子です。評価結果(演算の結果)は、ストリングで返されます。

    >>全文へ

  • 数値とストリングの型変換

    「ストリング → 数値」の型変換

    ActionScriptは型づけの弱い言語で、変数を使用する場合も、型の宣言をする必要はありません。必要に応じてデータ型が自動的に変換されます。ここでは、もっとも簡単な数値とストリングの型変換について説明します。

    >>全文へ

  • 加算とストリング連結は同じ記号「+」

    加算とストリング連結は同じ記号「+」

    算術演算子の加算とストリング演算子は、同じ記号(+)を使用します。

    >>全文へ

  • 関数

    関数とは

    Flashのマニュアルやヘルプでの「関数」の説明、および [ アクション ] パネルのメニュー項目の仕分けは、他のプログラム言語とは大きく異なり、理解に苦しむ内容です。特に、マニュアルやヘルプの説明はページによって矛盾を起こしていますので、まったく当てにできません。そこで、当サイトでは、他のプログラム言語と同様の定義と仕分けを採用して説明することにします。

    >>全文へ

  • 論理式

    論理式とは

    等価演算子や比較演算子を使用した式などのように、評価結果がブール (true / false) となる式のことを論理式といいます。

    >>全文へ

  • オブジェクト(概要)

    オブジェクトとは

    オブジェクト指向の根幹をなす、オブジェクトの定義は抽象的で非常に厄介なものです。

    >>全文へ

  • ターゲットパス

    Flashムービーの構造

    バグの多くが、ターゲットパスの指定ミスでしょう。
    Flashでは、ムービークリップのプロパティ(メソッドを含む)にアクセスするには、対象となるムービークリップのターゲットパスを指定しなければなりません。他のオブジェクトのプロパティにアクセスするときも同様です。

    >>全文へ

  • ムービークリップ

    ムービークリップ

    ムービークリップは本来はオブジェクトの一種ですが、その重要性により独立したデータ型として扱われます。

    他のオブジェクトと同様、定義済みプロパティ、変数、定義済み関数(メソッド)、カスタム関数(メソッド)などのプロパティを持っています。

    >>全文へ

  • ムービークリップ定義済みプロパティ

    ムービークリップ定義済みプロパティ

    ムービークリップの定義済みプロパティは、他のオブジェクトとは異なり、[ アクション ] パネルの [ プロパティ ] メニューに仕分けされています。[ プロパティ ] メニュー内の_focusrect、_highquality、_quality、_soundbuftime の4つがグローバルプロパティ(ムービープロパティ)で、残りがムービークリップ・プロパティです。

    >>全文へ

  • ムービークリップ定義済みメソッド

    ムービークリップ定義済みメソッド

    ムービークリップの定義済みメソッドは、[ アクション ] パネルの [ オブジェクト ] - [ MovieClip ] メニューに仕分けされています。[ MovieClip ] メニュー内のすべてがムービークリップ・メソッドです。

    >>全文へ

  • フレームラベル

    フレームに付けられた名前

    フレームラベルは、フレームに付けられた名前です。

    フレームを移動するムービークリップ・メソッド MovieClip.gotoAndPlayMovieClip.gotoAndStopで利用されます。

    >>全文へ

  • ムービークリップの再生/停止

    ムービークリップ定義済みメソッド play、stop

    停止中のムービークリップを再生するにはムービークリップ・メソッド MovieClip.play、再生中のムービークリップを停止するにはムービークリップ・メソッド MovieClip.stop を使用します。ビデオデッキの「再生」と「一時停止」に相当します。

    >>全文へ

  • ムービークリップのフレームの移動

    フレーム移動用メソッドは4つ

    ムービークリップ定義済みメソッドには、フレーム移動を行う4つのメソッドが用意されています。
    現在のフレームを基準にして移動する MovieClip.prevFrame MovieClip.nextFrame、 指定したフレームに移動する MovieClip.gotoAndPlayMovieClip.gotoAndStop の4つです。

    >>全文へ

  • フレーム移動用メソッド使用時の注意点

    フレームアクションに記述する際の注意

    フレームアクションにフレーム移動を行うムービークリップ・メソッドを記述する際には注意が必要です。

    >>全文へ

  • プリインクリメントとポストインクリメント

    インクリメントは単項演算子で、オペランドに1を加算する演算子です。カウンタのように1ずつ加算する場合に使用します。繰り返し制御の for 文で多用されます。
    インクリメントには、オペランドの前に置くプリインクリメント、オペランドの後ろに置くポストインクリメントがあります。

    >>全文へ

  • 論理演算子

    論理演算子は、オペランドのブール値 ( true / false )をもとに、NOT、AND、OR などの論理演算を行う演算子です。評価結果はブールです。
    論理演算子は if 文、for 文、while 文の条件式で、等価演算子や比較演算子とともによく使用されます。

    >>全文へ

  • MovieClip Inheritance Total Solution Experiment v1.08

    Download the source file

    "MovieClip Inheritance Total Solution"はFlashオーサリングの一つの方法を提案するものです。
    目的はコードとデザインの完全分離、及びパフォーマンスの効率化で、各ムービークリップには何一つ記述せず、すべてカスタムクラスから継承という方法を取ります。

    >>全文へ

  • Inheritance All-Rounder

    == オブジェクトとムービークリップ、いずれにも使用可能な汎用継承メソッド ==

    Download the source file
    (含使用例)

    >>全文へ

  • Date.getHours/Date.getUTCHoursが正しい数値を返さない

    1. 現象
    Windows版ではDate.getHoursメソッドの返す値が実際よりも1多く、Macintosh版ではDate.getUTCHoursの返す値が実際よりも1少ない数値になることがあります。

    >>全文へ

  • キーフレームをまたいだMovieClip

    MovieClip私は誰?
    2フレームから10フレームにわたるMovieClipを、メインのタイムラインにひとつ配置します。インスタンスの名前は「mc1」とします。そして、以下のオブジェクトアクションを設定しましょう。

    >>全文へ

  • asfunction

    プロトコル; HTMLテキストフィールドのURLに関する特別のプロトコル。HTMLテキストフィールドでは、テキストはHTMLのAタグを使って、ハイパーリンクにすることができます。AタグのHREF属性には、HTTPやHTTPS、FTPなどの標準プロトコルのURLが指定できます。'asfunction'プロトコルは、Flash専用の追加プロトコルで、リンクからActionScriptの'function'を実行することができます。

    >>全文へ

  • unloadMovieNum

    アクション; ロードされたムービーをFlash Playerから削除します。

    >>全文へ

  • loadVariablesNum

    url 変数が置かれている絶対または相対URL。ムービーにWebブラウザでアクセスするとき、URLのホストはムービー自身と同じサブドメインになければなりません。

    >>全文へ

  • loadMovieNum

    url ロードするSWFファイルの絶対または相対URL。相対パスは、レベル0のSWFファイルに対して相対的でなければなりません。URLは、ムービーが現在存在しているURLと同じサブドメインになければなりません。Flashスタンドアロンプレーヤーで使用したり、Flashオーサリング環境のムービープレビューモードでテストするには、すべてのSWFファイルが同じフォルダになければならず、ファイル名にはフォルダやディスクドライブの指定を含めることはできません。

    >>全文へ

  • fscommand

    アクション; FlashムービーとスタンドアロンFlash Player、あるいはFlahムービーとFlah PlayerをサポートするWebブラウザなどの プログラムとの間の通信を可能にします。また、'fscommand'アクションは、メッセージをMacromedia DirectorやVisual Basic、Visual C++、その他ActiveXコントロールをサポートするプログラムに渡すために使用することもできます。

    >>全文へ

  • return

    アクション; 'function'が返す値を指定します。'return'アクションは、式を評価して、その結果を、実行した'function'の値として返します。'return'アクションにより、'function'は実行を停止して、'function'は戻り値に置替えられます。'return'ステートメントのみを使用すると、'null'が返ります。

    >>全文へ

  • String.split

    メソッド; Stringオブジェクトを、引数に指定された区切り文字を検出するたびに分けて、サブストリングに分割し、サブストリングを入れた配列を返します。

    >>全文へ

  • パブリッシュしたFlash 5コンテンツをデバッグする

    1. Flash Debug Player 5について
    Flash Debug Player(プラグイン)をインストールすると、パブリッシュしたFlash 5コンテンツをFlash 5のデバッガを使ってデバッグすることができます。パブリッシュされたコンテンツの変数やプロパティを確認できるので、オーサリングに便利です。また、Flashオーサリングアプリケーションに付属するFlash Debug Player([制御]-[ムービーのデバッグ]で使用されます)より新しいバージョンが使えることも利点です。

    >>全文へ

  • ストリングの論理値評価

    ストリングの評価はfalseが原則
    ifアクションやBoolean関数あるいはBooleanオブジェクトで、ストリングの論理値を調べる場合があります。ストリングは、Number関数で数値に変換できる0以外の数字であればtrueと評価されます。他のストリングの論理値は、falseです(「ActionScript辞書」のBoolean(オブジェクト)の項には、「関数は数値(x)が0でなければtrueを返し」とありますが、意味がわかりません。誤訳でしょう)。

    >>全文へ

  • if (condition=1)

    いきなり問題です
    [1]つぎのActionScriptの問題点は何でしょう? [2]実行するとどのような結果になりますか?

    if (condition=1) {
       trace (true);
    } else {
       trace (false);
    }

    >>全文へ

  • 0.01+0.09=0.0:

    「:」って何?
    「ゲジラって何よ?」というCMがありますが、Flash 5でも思わずそう聞きたくなることがあります。

    n = 0.01+0.09;
    trace (n);
    //出力ウィンドウの結果
    0.0:

    「0.0」までは、まがりなりにも数字です。その後の「:」が何なのでしょう。まるで意味のない値になってしまった、という訳ではないようです。

    >>全文へ

  • else if

    アクション; 条件を評価して、最初の'if'ステートメントが'false'を返したとき実行するステートメントを指定します。'else if'条件が'true'を返すと、Flashはその条件に続く中括弧{}内のステートメントを実行します。'else if'条件が'false'のときは、Flashは中括弧内のステートメントをスキップして、中括弧に続くステートメントを実行します。'else if'アクションは、スクリプトの処理を分岐するために使用します。

    >>全文へ

  • 演算結果が半端な値になる(丸め誤差)

    Flashのバグ?
    以下のステートメントを実行してみましょう。0.01ではなく、0.00099999999999989というような半端な値が返ります。

    >>全文へ

  • getVersionの()が消える[Flash 5]

    ノーマルモードのお節介
    上級者でもシンタックスチェック代わりに、「アクション」パネルを「エキスパートモード」から「ノーマルモード」に切換えるという方は少なくないと思います(筆者もそのひとり)。そうするとこの「ノーマルモード」、たまに、というよりはよく余計なお節介をしてくれます。

    >>全文へ

  • 0で始まる数値が0に変わってしまう

    1. 現象
    0で始まる数値(たとえば012)が、0に変わってしまことがあります。

    >>全文へ

  • 8進数はサポートされているのか

    1. 8進数と16進数
    ActionScriptでの8進数や16進数の一般的なサポートについて、『ActionScriptリファレンスガイド』に明確な記述は見当たらないようです。ただ、「ActionScript辞書」のColorオブジェクトで後者が、'parseInt'関数では両者とも、引数として使用されています。また、実際「0x」で始まる数値は、16進数として扱われます。

    >>全文へ

  • Movie.gotoAndPlayで最終フレームに移動できない

    'MovieClip.gotoAndPlay'メソッドを使ってムービーの最終フレームに移動しようとしても、できないことがあります。また、最終フレームには'MovieClip.stop'メソッドを記述して止めているにもかかわらず、最初のフレームに戻ってしまいます。パブリッシュ時に発生します。

    >>全文へ

  • 配列と配列要素

    1. 配列の要素と長さ
    ActionScriptの配列は、生成するときに要素の個数を決める必要がありません。配列のインデックス番号をブラケットアクセス[]で指定して値を代入すれば、そのサイズの配列が作成できます。インデックスは、連続した番号である必要はありません。メモリには、配列中で使用する要素のインデックス番号と値とが格納されます。つまり、配列で使っていない要素にはメモリを割り当ません。このために、メモリを効率的に使いながら、配列のサイズを自由に変えることができるのです。

    >>全文へ

  • NaN

    特別な変数; 数値演算やデータ型の変換を行ったときに、数値として表せない結果になったとき返される特別な値です。IEEE-754規格に基づきます。'NaN'という変数名は非数値(Not a Number)からきています。たとえば、0を0で除算した場合が、これに当たります。0による除算は、未定義なためです(0でない値を0で除算することも、数学の演算上は未定義です。しかし、ActionScriptでは除される値が正の場合はInfinity、負の場合には-Infinityを返します)。

    >>全文へ

  • Arguments.callee

    プロパティ; 呼び出し元の関数を参照します。

    [訳者註] 原文が"the Arguments object of the calling function"(呼び出し元の関数のArgumentsオブジェクト)しているのは、誤りです。この仕様は、Navigator 3と同じです。Navigator 4とは異なることにご注意ください。

    >>全文へ

  • undefined

    特別な値; 通常変数にまだ値が設定されていないことを示すために用いられます。未定義の値を参照すると、特別な値である'undefined'が返ります。ActionScriptのコードでtypeof(undefined)は、ストリングの"undefined"を返します。"undefined"タイプの値は、'undefined'のみです。

    >>全文へ

  • XML.onData

    イベントハンドラ(訳者註: イベントハンドラメソッド); XMLテキストがサーバーから完全にダウンロードされるか、 サーバーからのダウンロード時にエラーが発生すると、呼び出されます。このハンドラ(訳者註: メソッド)は、XMLを解析する前に呼出されます。したがって、FlashのXML解析によらず、独自の解析ルーチンを実行するために使用することができます。 'XML.onData'メソッドは、未定義値'undefined'か、サーバーからダウンロードされたXMLテキストを内容とするストリングを返します。戻り値が'undefined'であれば、サーバーからのXMLのダウンロード中にエラーが発生しています。

    >>全文へ

  • Arguments.length

    Argumentsオブジェクトの'length'プロパティは、配列要素数を返します。これは、関数を呼び出す時に渡された引数の個数になります。'length'プロパティは、関数に渡された引数の個数が正しいかどうかをチェックしたり、任意の数の引数すべてを処理したいときなどに用いることができます。

    >>全文へ

  • Arguments.callee

    Argumentsオブジェクトの'collee'プロパティは、現在実行している関数を参照します。'callee'プロパティを使うと、実行中の関数内から、関数名を指定することなく、その関数自身を再度呼び出すことができます。関数中で自分自身を再度実行することを、「再帰」呼び出しといいます。

    >>全文へ

  • Arguments (オブジェクト)

    関数を実行すると、Argumentsオブジェクトが、その関数のローカル変数'arguments'に格納されます。 ActionScriptでは、関数に定義された引数の個数にかかわらず、任意の数の引数を渡すことができます。'arguments'には、実行された関数に渡されたすべての引数が格納されます。引数値は、配列アクセス[]で参照できます。

    >>全文へ

  • Object.__proto__

    プロパティ; myObjectを作成したコンストラクタ関数のprototypeプロパティを参照します。__proto__プロパティは、すべてのオブジェクトに対して、それらが作成されるとき自動的に設定されます。ActionScriptのインタープリタは、__proto__プロパティを使ってオブジェクトのコンストラクタ関数のprototypeプロパティにアクセスし、オブジェクトがクラスから継承したプロパティやメソッドを探し出します。

    >>全文へ

  • fscommandのsaveコマンド

    プロジェクタで'fscommand'アクションのコマンドに"save"を指定すると、Windowsではファイルを保存することができます。これは、ドキュメント化された機能ではなく(undocumented)、またMacintoshでは動作しません。

    >>全文へ

インタラクティブな演出をしたいときには、ActionScriptが必須。Flashのバージョンが上がるごとに多機能になってきましたが、覚えることも増えました。まずは基本から始めましょう。

小分類別にみる

  • AS 3

    ActionScript 3に対応したFlash CS3 Professionalが発売されました。これを受けて、AS3の特集コーナーを開設しました。

  • OOP

    オブジェクト指向なActionScriptを習得するにはこちら。

  • Tips

    知っているのと知らないのとでは、一味違う。そんなスクリプト系Tipsを集めました。

  • 【連載】Starlingフレームワークを用いたStage3Dによる2Dアニメーション

    著者:野中文雄
    Flash Player 11から搭載されている新しい描画機能Stage3Dにもとづいて作られたStarlingフレームワークについて、2Dアニメーション制作の基礎から応用までを解説します。

  • サンプル

    人の作ったFLAって、勉強になりますよね。ここでは実際にダウンロードすることができるサンプル付きの記事を紹介します。

  • トラブル

    正しいはずなのに動かない? あわてず、さわがず、まずは一つ一つ原因を探りましょう。

  • バグ

    気づかないうちにハマってしまう……それがActionScriptの天敵、バグの存在。時間を浪費する前に、チェックしてみては?

  • 基本

    何はなくとも、まずは基本。具体的なコーディングに入る前に、覚えておきたい記事を掲載しています。

  • 野中ゼミ

    野中文雄による、リファレンス形式の記事です(FumioNonaka.comより抜粋)。