エフェクト作成の基本を知る
  	エフェクトを作ると言っても、基本的な知識がなければ、手の付けようがありません。
  	ここでは、エフェクトを作り始めるために必要な知識を紹介します。
  	
	
スクリプトの基本形
エフェクトを作る上で記述するスクリプトの基本形です。
    すべてがここから始まるという感じですね。
	
・
・
・
end
    このように記述することで、Cylinderがエフェクトファイルを認識してくれます。
    ポイントとなる部分は、「return」と「end」です。
    この間にエフェクトのスクリプトを記述します。
    
    returnの()内に、引数が4つあります。
    それぞれ以下に紹介します。
    
    page
    ホーム画面のドック以外の部分のことを言います。
    pageから、幅や高さなどいろいろな情報を得ることができます。
    
    
    offset
    ページ移動中における、画面中央までの距離が取得できます。
    
    screen_width
    画面の幅です。
    
    screen_height
    画面の高さです。
  
page
    ページの情報を得ることができます。
    
    ページの各種情報は以下のように取得します。
    page.width
    page.height
    page.max_icons
    page.max_columns
    page.max_rows
    といった感じで、いろいろ取得できます。
    
    iPhone6(Plus)の登場で、画面サイズの種類が増えました。
    アプリアイコンを縦に4つ表示する3.5インチから6つまで表示できるようになりました。
    エフェクトの動き方によっては、アイコンの縦数が影響する場合もありますので、page.max_rowsは大変重宝するかと思います。
  
offset
	  移動中のページ中心から、画面中心を見たときの距離を取得できます。
    
	  大切なことなので繰り返しますが、このoffsetは、「移動中のページ中心から、画面中心を見たときの距離を取得」できます。
	  
	  スクリーンショットにいろいろ書き込みましたが、一番大きな矢印に注目してください。
	  ここで一番言いたいのは、「矢印の向き」です。
	  スクリーンショットは、1ページ目から2ページ目に移行させている瞬間です。
	  画面中心は動くことはありませんが、ページ中心は動きます。
	  この移動中のページ中心を基準として、画面中心を見たときの距離がoffsetに格納されます。
  
    では、2ページ目から1ページ目に戻る場合を考えてみましょう。
    考え方の基本は同じで、offsetは「移動中のページ中心から、画面中心を見たときの距離を取得」します。
    こちらも、スクリーンショットにいろいろ書き込んでおきました。
    
    「矢印の向き」に注目してください。
    画面中心は動きませんが、ページ中心は動きます。
    今回移動中のページは、右方向へ移動しています。
    したがって、ページ中心は画面中心の右側にあり、ページ中心から画面中心を見ると左側にある訳です。
    スクリーンショットにおけるオフセットの矢印が右向きの場合、offsetには正の数が格納されますが、左向きの場合は負の数が格納されます。
    offsetはスカラーかと思ったのですが、大きさと向きを持った「ベクトル」の感覚で扱った方が良いと思います。 
	
screen_width
画面の幅です。
	  デバイスによって異なる幅を取得できます。
	
screen_height
画面の高さです。
	  デバイスによって異なる幅高さを取得できます。
	  
	  page.heightと違い、ドックの高さも含まれます。
	
動作の基本
自分でエフェクトを作ることができたら嬉しいですよね。
    私自身がとても嬉しかったのでこのページを作成しているのですが、なぜ嬉しかったのかも分かるのです。
    それは、「動作の基本」が分かったからです。
    
    サンプルを作っていても、思った通りに動いてくれず、行き当たりばったりの修正を繰り返していました。
    ある時、どのように考えればいいのか分かった瞬間、サンプルを見て愕然としました。
    考え方でこんなに違うのか・・・
    早速、修正してみると、一発で動作したのです。
    それまで何度やっても上手くいかなかったのに、基本て大事ですね・・・
    
    それまでは、ずっと「画面」を見ていました。
    ひたすら「画面」とにらめっこしらがら、ページをゆっくり動かしていたのです。
    そう!
    私は「画面」を見ていたのです!
    それが誤解を生んでいたのです。
    
    見なければいけなかったのは、「画面」ではなく「ページ」だったのです。
    だから、先述の「offset」でも繰り返していたのですが、「移動中のページ」が基本となります。
    「移動中」というのがポイントで、例えるなら「動く歩道」かと思います。
		私はずっと、動かない床に立って「動く歩道」を見ていたのです。
		見方を変えると結果も変わる訳で、「動く歩道」に立ってみたのです。
		そうすることで、全てが解決しました。
	
動きを止める
    動く歩道の上を、歩道と同じスピードで逆方向に歩いている人がいるとして、その人を外から見ると止まっているように見えますよね。
    そんな感じのサンプルを紹介します。
  
    pageに対するtranslateは、平行移動させることができます。
    サンプルは、ページの移動量(offset)だけ移動するという内容です。
    ただ、offsetは向きも表しますので、移動中のページを、移動した分だけ逆方向に移動させるという動きになります。
    そんな感じで、このサンプルでは、ページが移動した分だけ戻されるので、止まって見えるのです。
  
			止まった状態での切り替わり
    
    止まった状態でページが切り替わるので、急に変化しますね。
  
エスカレーター風にする
    外から見てる人に、「エスカレーターっぽい?」と聞いたことはないですか?
    動く歩道の上で、見えない膝を等速で曲げたり伸ばしたりするのですが、実際に聞く人はあまりいないと思います。
    でも、イメージはできますよね?
    繰り返しますが、「移動中のページが基準」ですので、上下に移動させるだけで、この動作は実現できます。
    以下は、そのサンプルです。    
  
page:translateは、実は3次元の指定ができます。
    横方向と縦方向と奥行きなのですが、サンプルでは縦方向にoffsetをセットしています。
    1ページ目を左に移動すると、offsetには移動した量の正数が格納されます。
    画面縦方向は、下向きがプラス方向ですので、左下斜め45度の方向に移動することになります。
  
			エスカレータ風
    
次のページが丁度良い場所から出現します。
    これを、「offsetマジック」と勝手に呼んでいます。
    移動中のページのoffsetと、連なって出現するページのoffsetとは、符号が逆ですので、符号によって処理を変えなくても、できてしまうのです。
  
手前に移動する
    先ほど、「3次元の指定ができる」ということで、縦向きの移動サンプルを紹介しました。
    横方向と縦方向を紹介しましたので、奥行きのサンプルも紹介します。
    
    以下は、そのサンプルです。    
  
奥行きに関しては、手前がプラス方向ですので、1ページ目を左に移動すると、拡大されたかのように近づいてきます。
  
手前に移動
    
手前に来るのは分かりますが、途中で消えてしまいます。
    2ページ目が所定の位置に来た段階で移動が終了するので、途中で終わってしまうのは仕方ないですね・・・
  
				当サイトの更新状況を、アラートで表示するかどうかの設定をします。
			
保存する
 
         
        