2018/05/28

SexLabアニメーションのインフレ

SexLab v1.61までのアニメーション数350(375?)にしか対応していなかったDirectorをv1.62のMAX500までのスロット数になんとか直しました。いやあ、久しぶりにFlashを触りましたが、何をどうしたら良いのかもうさっぱり忘れ去ってます。
いやでも作成環境がまるまる残ってて本当に良かった。
コンパイルが無事通った時には思わず拍手してしまいました。

そんなわけで「かなメニュー」を作った時のFlashの覚え書きが出てきたので転記しておきます。私が書いたものだけど、もう半分も意味がわからなくなってしまいました。

<インポートする各種クラス>
●import gfx.managers.FocusHandler;
たぶん選択肢やボタンなどをフォーカスさせたりするのに使ってる
handleInputというメソッドで、上下左右のキー入力によってフォーカスが移動するのを定義してるっぽい
●import gfx.ui.InputDetails;
謎。わからん。名前からして入力したキーの詳細データが入るのかな、と思うけど…
ちなみにskyuiバージョンでは、skseKeycodeという引数が新たに設定されている。
●import gfx.ui.NavigationCode;
TABやENTERといったキーの名称を定義したもの
●import Shared.GlobalFunc;
よくわからん。基本的な動作の定義をしてるっぽい。
●import skyui.components.ButtonPanel;
skiui独自のボタンパネル。第一引数のbuttonRendererを使って「button+数字」のボタンインスタンスを生成する。
「isReversed」(trueで右揃え)などのプロパティを持つ
●import skyui.defines.Input;
キーの名称を定義したもの。gfx.ui.NavigationCodeとはまた別。
●import skyui.util.GlobalFunctions;
skyuiの基本的動作の定義集か?
●import skyui.util.Translator;
$つきのテキストを加工する機能か?

(1)MovieClipクラスを拡張した、KanaMenuクラスを作る
(記述例)class uilib_1.KanaMenu extends MovieClip { ... }
flaファイルの階層下の「uilib_1」フォルダにasファイルを入れているため、クラス名の指定は「uilib_1.KanaMenu」となる
またクラスを記述したasファイルのファイル名はクラス名と同一でなくてはならない。
KanaMenuクラスのファイルは「KanaMenu.as」になる
作成したクラスは、ライブラリのシンボル、またはコンポーネントに、「リンケージ」で指定する

(2)クラスのプロパティやメソッドを定義する。
クラスのプロパティ(変数みたいなもん)とメソッド(関数みたいなもん)をメンバーと呼ぶ。
メンバーには、そのクラス自身に存在する「クラスメンバー」と
クラスのインスタンスごとに作られる「インスタンスメンバー」がある。

「クラスメンバー」は「static」というキーワードを使って作成する(静的メンバーと呼ばれる)
「クラスメンバー」はインスタンスを作らなくても直接クラスをターゲットにしてアクセスできる

「インスタンスメンバー」には「public」と「private」のキーワードがある。
「public」がついているプロパティやメソッドには、他のクラスやインスタンスからもアクセスできるが、
「private」がついているものには、他からはアクセスできない。

※別のクラスのメソッドを呼び出す際に生じたコンパイルエラーが、そのエラーの原因を修復しても消えないことがある。
その場合は、.asファイルをコンパイルした.asoファイルを削除すると、それらクラスが新規にコンパイルし直されて、エラーが解消する
asoファイルの削除:Controlメニューの「Delete ASO Files and Test Movie」

<KanaMenuクラスで定義しているプロパティ>

●クラス内の処理で使う変数はプライベートに
private var requestDataId_: Number;
private var cancelControls_: Object; // キャンセルボタンに使うキー
private var okControls_: Object; // OKボタンに使うキー
private var defaultKey_: Number = -1;

●ステージ上の要素(エレメント)はパブリックにしてアクセス可能にする
public var InputTextField: TextField; // テキスト入力欄
public var CancelButtonPanel: ButtonPanel; // キャンセルボタン
public var OkButtonPanel: ButtonPanel; // OKボタン

(3)コンストラクタを設定する。
クラスからインスタンスが作られる時に始めに呼ばれて、プロパティなどを設定するのがコンストラクタと呼ばれるものの機能(たぶん)コンストラクタの関数の名称はクラス名と同一。
KanaMenuクラスのコンストラクタは、KanaMenu()となる

何かを拡張しているクラスの場合、AS2.0では「super();」とやって、
親クラス(スーパークラス)のコンストラクタを自分で呼ばないといけないらしい。
public function KanaMenu()
{
 super();
}

1 件のコメント:

  1. obachanさん、復活されてうれしいです。
    Directorを今でも愛用しています。
    しかし、アニメーションの更新で、ステージ毎のサンプル映像が消えてしまいます。また、新規に作成されたアニメーションを追加してもサンプルが現れません。当然ですよね。色々obachanみたいなサンプルを追加しようと思いました、サッパリです。ある人によると、かなり複雑なことをしているので素人には無理だと言われました。簡単にサンプル画像を作り、Directorに登録する方法はないでしょうか?

    返信削除