Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。3MC_PALETTEクラスの作成パレットの初期化処理パレットの色設定IconEditorクラスPHPで画像の保存処理を作る最後にFlashでアイコンエディタの外観を作るまず、新規Flashドキュメントを作成し、「icon.fla」という名前でプロジェクトを保存してください。アイコンエディタの外観を作っていきます。ここで作成するアイコンエディタは、アイコンを描画する「main_canvas_mc」、色を選択するパレット「palette_mc」、保存を行う「save_btn」、選択用カーソルの「select_mc」と4つのムービークリップ(ボタン)で構成されます。以下にそれぞれのムービークリップの作り方を説明します。main_canvas_mc(クラス:MC_CANVAS)これは、矩形ツールで四角形を描いたものを選択し、右クリックして[シンボルの変換]メニューを選択し、ムービークリップに変換したものです。このとき、下の図のようにリンケージを設定します。2.0クラス]の項目に「MC_CANVAS」と入力します。シンボルの作成これにより、MovieClipを継承したクラスMC_CANVASと、このムービークリップが関連付けられます。MC_CANVASは、プロジェクトと同じフォルダに「MC_CANVAS.as」という名前で作る必要があります。Javaと同じように、クラス名とファイル名を同じにしなくてはなりません。ファイル「MC_CANVAS.as」の内容は、後で説明します。シンボルに変換したら、「main_canvas_mc」という名前をつけます。palette_mc(クラス:MC_PALETTE)これも上と同じで、矩形ツールで四角形を描いたものをシンボルに変換したものです。2.0クラス]を「MC_PALETTE」に設定します。8の標準コンポーネントButtonです。メインメニューの[ウィンドウ]-[コンポーネント]をクリックしてコンポーネントを表示し、Buttonをステージにドロップして、「save_btn」という名前を付けます。select_mc(クラス:MovieClip)これは、パレットで選択している色を表すためのカーソルです。点滅するようなムービーを作り、「select_mc」という名前をつけます。これで外観は完成です。後は、クラスファイルを作成します。MC_CANVASクラスの作成クラスMC_CANVASは、プロジェクトと同じフォルダに「MC_CANVAS.as」という名前のファイルを作り、その中に記述します。これは、ムービークリップそのものなので、MovieClipを継承してクラスを作ります。クラスの雛形は次のようになります。MovieClip{}コンストラクタとonEnterFrameまずは、MC_CANVASのコンストラクタを作成します。}}コンストラクタでは、MovieClipのイベントonEnterFrameにonInit()という関数を設定しています。関数onInit()の内容は以下のとおりです。ここでは、変数の初期化処理などを行っています。tileMouseUp;}なぜ、コンストラクタの中で初期化処理をしないのかは、コンストラクタの呼ばれるタイミングと関係しています。クラスのコンストラクタは、フレームの最初に呼ばれます。そのため、コンストラクタの中ではクラスの初期設定だけを行い、他のムービークリップのインスタンスに何かしらの初期化や設定をしたい場合には、onEnterFrameのイベントで行う必要があります。onEnterFrame;」と書いて、再度、初期設定の関数が実行されないようにします。初期化関数onInit()の内容ですが、まず変数の初期化を行い、次に描画用ムービークリップcanvas_mcを作成します。関数iconResize()ではアイコンデータを初期化して、タイルの描画を行います。その後、マウスイベントを設定しています。32」で渡すと、32ドットアイコンを作成できるように工夫しています。APIを利用して描画しています。以下がその関数の内容です。canvas_mc.endFill();}ここで出てきたcanvas_mcというのは、初期化関数onInit()の中で生成した描画用のMovieClipです。APIを使った描画では、空のムービークリップを生成し、そこへ描画すると間違いがありません。次に、マウスのイベント処理部分は次のようになります。}}関数tileMouseDown()ですが、これはマウスがクリックされた時に発生するイベントonMouseDownに設定されている関数です。これは、アイコンの描画部分の上でマウスボタンが押された場合に、クラス変数mouse_downをtrueに設定します。マウスボタンが離された時に発生するイベントonMouseUpに設定されているのがtileMouseUp()関数でmouse_downをfalseに戻すだけです。マウスポインタが動いた時に発生するイベントonMouseMoveに設定した関数tileMouseMove()では、mouse_downがfalseのときは、すぐに関数を抜けるようになっています。これにより、マウスボタンが押されている間のみ、描画処理を行います。描画の内容ですが、アイコンのパターンデータであるtile_arrayの内容を現在のパレットの色に変更し、タイルの描画を行う関数tileDraw()を呼ぶというものになっています。マウスがムービークリップに被っているかどうか座標を判定するのに、this._widthではなく、初期化処理でthis._widthを代入した変数canvas_widthを利用している理由は、何かしらのきっかけで、this._widthのサイズが変わってしまうことがあるのを考慮しているためです。2024」関連発表まとめLeSSやSAFeなど、大規模アジャイルにおけるソフトウェア品質の課題とは?【オンライン技術書読書会のはじめかた】完璧じゃなくていい、雑談の延長線で開催してみませんか...もっと読むこの記事の著者クジラ飛行机(クジラヒコウヅクエ)ソフト企画「くじらはんど」にて、多数のフリーソフトを公開しています。日本語プログラミング言語「なでしこ」、テキスト音楽「サクラ」、日本語Wiki記法が特徴の「KonaWiki」などを公開しています。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。