No.15 Cookieへの情報書き込み
03 動作ルーチン
 
座標関連データ格納部分  「Line817〜846」



 データの書き込みを行うために、選択されたレイヤーを格納するCookieの番号を読み取る必要があります。

「Line 817〜818」


  var wChannel = Math.floor( (channel_num / 5) ) 
  var wCode    = (channel_num % 5)

 レイヤーの番号に対しCookieの番号は、5個ずつ1区切りで記録されている関係上、Cookie記録番号の取得には、
  channel_num / 5  の式を用いることになります。 ただし、値は常に整数である必要があるため、この値を指定された数値と等しいかまたはそれより小さい値となる最大の整数を返すメソッドであるfloorを用い
  Math.floor( (channel_num / 5) )
 として算出します。 意味合いとしては、「int」と同じですね。 また、指定された数値と等しいかそれよ大きい値を返すには、ceilメソッドを用います。
 尚、wCode は、指定された場所の何番目に記録するかを判定する式ですが、本システム上では現時点では使用していません。





「Line 852」


  var wData = "";
  for ( count = (wChannel * 5) ; count < 
                         ((wChannel *5)+5 ) ; count ++){
    if (LayerBeing[count]){
      if (isIE5 || isIE6 || isNS6){
        nowLocation = 
            document.getElementById("Hopup_Message" + count );
        Lx = parseInt(nowLocation.style.left,10);
        Ly = parseInt(nowLocation.style.top, 10);
      } else if (isNS4){
        Lx = document.layers["Hopup_Message"+  count ].left;
        Ly = document.layers["Hopup_Message"+  count ].top;
      }
      if (Lx == -1 && Ly == -1) Ly = 0;
      if (Lx >= 10000) Lx = 9999;
      if (Ly >= 10000) Ly = 9999;
    } else {
      Lx = "-1"; Ly = "-1";
    }
    var zIndex = zIndexData[count] , dData = DisplayData[count];
    if (isNaN(zIndex)) zIndex = -1;
    if (isNaN(dData)) dData  = -1;

    wData += "/" + count + "_" + Lx + 
                   "_" + Ly + "_" + dData + "_-1_-1_-1";
  }
  setCookie( ("LAY"+ wChannel) , (wData + "EOF") , Days);


 Cookieへの書き込みは、
  for(count=(wChannel*5);count < ((wChannel*5)+5);count++){
 のfor を用います。 つまり、上式で算出したwCountの5倍の数から、その値+5までの値を回すことで、 Cookieに記録する必要のあるレイヤー番号を for で導くことが可能になります。
 レイヤー情報の取得は、Lx , Lyへ格納されます。 それぞれのブラウザーによって処理は異なりますが、代入される変数は同じです。
 システム上、「−1」は未入力の値として代入されますが、レイヤーの値はプラス方向でもマイナス方向でも記録が可能であるため、双方の値が「−1」でCookieに記録される可能性が存在します。 こういった場合に対処するため、
  if (Lx == -1 && Ly == -1) Ly = 0;
 として、互いの値が「−1」であった場合にのみ、Ly=0としています。
 また、レイヤーの座標格納は最大4桁までと決められているため、10000以上の値の場合は、互いの値は9999に制限しています。

 最終的なCookie格納用文字列は、「 wData += 」によって行われ、最終的に
  setCookie( ("LAY"+ wChannel) , (wData + "EOF") , Days);
 によって、文字列の最後に「EOF」が付加された形で記録されることになります。

zIndexデータ格納部分  「Line848〜852」




「Line 817〜818」


  wData = "";
  for (count = 0 ; count < FileCount ; count ++){
    wData += "_" + zIndexData[count] ;
  }
  setCookie( "zINDEX" , (wData + "EOF") , Days);

zIndexの情報はレイヤークリック状態如何によっては、様々なレイヤーの「 zIndex 」に影響を与える場合があるため、全てのレイヤーに対応する「 zIndex 」を格納する必要があります。



ページの最上段へ移動します