楕円運動アニメクラス

楕円運動アニメクラス本丸三階移動計算ファイル作成

本丸三階移動位置計算クラスファイルを作成することにします。
このクラスファイルは、 楕円運動アニメFunction ファイル oval_func.php を変形します。
元ファイル内容は、Move Image に戻り、左サイドナビ「楕円運動アニメ-ション作成」の中の
「楕円運動アニメ Function PHP ファイル」
から見てください。
また移動計算原理については同じく、Move Image に戻り、左サイドナビ「楕円運動アニメ-ション作成」の中の
「楕円運動アニメ作成概要」
から見てください。
ファイル内容は、Move Image に戻り、左サイドナビ「楕円運動アニメクラス」の中の
「楕円運動アニメクラス本丸三階移動計算 PHP ファイル」
から見てください。
それでは元ファイルを変形する時の作法を順次説明していきます。

クラス名宣言

クラス名を宣言します。 class Oval {・・・・}
Oval というクラスの動作を {・・・・} の中に記述します。
後の〆の } はずっと後ろ一番最後にあります。
いつも忘れられてエラ-になりがちです。

変数宣言

使用する変数を定義します。
クラスの中で使用する変数をメンバ変数といい、これにはアクセス修飾子を付与します。
アクセス修飾子とはメンバ変数やメソッドにどこからアクセスできるかを指定するものです。
指定には「public」「private」「protected」の3つのどれかを指定します。
それぞれアクセス権が異なります。
public   クラス内、クラス外のどこからでもアクセス可能
private     同じクラス内からのみアクセス可能
protected 同じクラス、及び子クラスからアクセス可能
       クラスの継承を行なう時に使用
一般的には「public」を使用します。
すなわち、クラス内のメソッド内から参照されたり、クラスからオブジェクトを作成し、 オブジェクトからメンバ変数の値を獲得したり変更したりといったことが可能で、使いやすいです。
とりあえず動かしたい時には都合がよいです。

アクセス修飾子をもっと考える

クラスの中の変数を public としておくと、クラス内、クラス外のどこからでもアクセス可能です。
言い換えると、同じ変数名を他のファイルで使用していると、予期せぬ場面でこの変数を書換えられてしまいます。
クラスを自分でつくって自分だけが使っていれば、このような問題発生は少ないのですが、 クラスを共有して使用することを考えると危険です。
正常に動いていたものが急に動かなくなったりします。
今回このクラス内では移動位置計算のため7個の変数を使用しますが、 他のファイルからは参照されませんのでこれらを private とします。
private $we;
private $a;
private $i;
private $yn;
private $xn;
private $y;
private $x;

コンストラクタ宣言

次に、コンストラクタ宣言
protected function __construct ($oval) {・・・・・}
をします。
protected ですので、このコンストラクタは継承クラスからもアクセス可能です。 その他のクラス外からはアクセスできません。 Oval というクラスを呼び出されたとき処理すべき動作を {・・・・} の中に記述します。

$this->_**** はメソッドの中で利用できる特別な変数

もらった引数をクラス内で使用する $this->_**** に置換えます。
置換のためには、"this"を使って
$this->_連想配列のインデックス名
なる変数を作成します。
変換した後はこのクラス内では、この値は固定値になります。
今回の例では
$this->_r = $oval['r'];
$this->_v = $oval['v'];
$this->_vy = $oval['vy'];
$this->_k = $oval['k'];
$this->_n = $oval['n'];
$this->_cx = $oval['cx'];
$this->_cy = $oval['cy'];
$this->_dr = $oval['dr'];
$this->_ic = $oval['ic'];
のように記述します。

コンストラクタファイル

コンストラクタ protected function __construct ($oval) {・・・・・}
の {・・・・・} 部分を作成していきます。
見比べると、元ファイル内容すなわち、 Move Image に戻り、左サイドナビ「楕円運動アニメ-ション作成」の中の
「楕円運動アニメ Function PHP ファイル」
とほぼ同じです。
$ic →  $this->_ic
$k  →  $this->_k
$n  →  $this->_n
$dr →  $this->_dr
$r   →  $this->_r
$v   → $this->_v
$vy → $this->_vy
$cy → $this->_cy
$cx → $this->_cx
のように置換わっているだけです。
ということは、このコンストラクタは移動位置の各座標を計算して transform:translate() 命令を出力してくれることになります。
出力される書式例は、
$this->_ic == 1 ならば、
0%{
-webkit-transform:translate(474px,237px)
}
・・・・・・・・
100%{
-webkit-transform:translate(474px,237px)
}
$this->_ic !== 1 ならば、
0%{ transform:translate(474px,237px)
}
・・・・・・・・
0%{
transform:translate(474px,237px)
}
となります。

Oval クラスの使われ方

この Oval クラスは、
継承クラス class Oval_keyf extends Oval
から呼び出されることにより使用されます。
どのように呼ばれるかは、Move Image に戻り、
左サイドナビ「楕円運動アニメクラス」の中の
本丸二階個別対応継承クラス作成
を参照してください。
Oval クラスの使用方法は、引数 $oval に関わる連想配列を作成します。
$oval の作成の仕方は、Move Image に戻り、
左サイドナビ「楕円運動アニメクラス」の中の
楕円運動アニメクラス本丸 style sheet 設定ファイル作成-1
楕円運動アニメクラス本丸 style sheet 設定ファイル作成-2
を参照してください。
$oval ができ上がったら インスタンスをつくるだけです。
たとえば、
$keyfc = new Oval($oval);
とすれば終わりです。


楕円運動アニメクラス動作確認 に続く
楕円運動アニメ本丸二階 ie/Chrome 個別継承クラス作成 に戻る

Move Image に戻る