Javascriptの便利なfor文の書き方を紹介します。
(配列を使用しない場合)
太陽光線をイメージしたcanvasを使ったアニメーション
下記のようなJavascriptのfor文を一度作れば、何通りにも使え、各種の変化を簡単に加えることができます。
背景画像が上から下に動くJavascriptのfor文
function mainhaikeiichi() { {yx=yx+1};if (yx==600) { yx=yx-600 };
document.body.style.backgroundPosition=zx[yx];}
setInterval("mainhaikeiichi()",200);
背景画像が下から上に動くJavascriptのfor文
function mainhaikeiichi() { {yx=yx-1};if (yx==1) { yx=yx+1 };
document.body.style.backgroundPosition=zx[yx];}
setInterval("mainhaikeiichi()",200);
(配列は、@Aとも同じ配列を使用)
すぐわかるように、プラスマイナスを変え、繰り返し位置を逆転させているだけです。
このようなfor文の書き方で、各種の変化を自由に与えることができます。
時間の節約になります。教科書的なfor文の書き方ではありません。
しかし、絶対有効なJavascriptのfor文の基本記述方法です。
(弊社では長い配列に使用するfor文の記述は、ほぼ全てこの弊社考案のfor文の記述方法を使用しております)
関数部分のみ取り出すと、
最初の例では、
{yx=yx+1};if (yx==600) { yx=yx-600}ですが、
yx+1の+1をー1に変えれば、配列を逆に適用できます。
yx==600とyx=yx-600の600の値を変えれば、配列の途中の値で、繰り返しできます。
if文中のif (yx==600)の600の値を変えれば、2回目以降の繰り返しスタート値を変えることができます。
yx+1をyx+3等々と値を変えれば、同じ配列について、とびとびの値を適用できます。
試しては、おりませんがこの他にも各種の変化を加えることが可能な、Javascriptのfor文の基本記述方法であり、ブラウザが対応できるかどうかだけの問題です。
(考えられる例)
*if文中のif (yx==600)の600を固定ではなく、変数にする。
*繰り返し処理のyx=yx-600600を固定ではなく、変数にする。
等々
なお、ブラウザ対応については、
主要な各ブラウザ(IE,firefox,chrome,andoroid,safari,opera,andoroid)とも上記のfor文の記述方法で概ね問題ありませんが、yx+1をyx+3と変える場合のみ、firefox等動きが「ぎこちない」場合があります。
教科書的なJavascriptのfor文の基本記述方法は、配列を含めて、次のような内容ですが、
@配列を逆に適用できません
A配列の途中の値で、繰り返しできません
B2回目以降の繰り返しスタート値を変えることができません。
(画像に効果を加える場合等に有効です。)
Cとびとびの値を適用できません。
var koukamei=new Array(); koukamei[0]="<script src=effect1.js></script>"; koukamei[1]="<script src=effect2.js></script>"; koukamei[2]="<script src=effect3.js></script>"; koukamei[3]="<script src=effect7.js></script>"; koukamei[4]="<script src=effect11.js></script>"; koukamei[5]="<script src=effect12.js></script>"; koukamei[6]="<script src=effect13.js></script>"; koukamei[7]="<script src=effect14.js></script>"; for (var henka=0;henka<koukamei.length;henka++) { document.write(koukamei[henka] ); }上記のスクリプトは、配列の中にjavascriptのファイル名を含んでおり、一見奇妙なスクリプトでしょうが、弊社画像効果のページにて使用しているスクリプトです。
この記述方法で、20秒程度で、スクリプトが簡単にコピー使用されることを防ぐことができます。