スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

時間・日付の表示について

例えば、現在時刻が 1時2分3秒 だとします。

このとき、fscommand を用いて
    hour = fscommand2("GetTimeHours"); //時
    minute = fscommand2("GetTimeMinutes"); //分
    second = fscommand2("GetTimeSeconds"); //秒
としたなら、
    hour = 1 ;
    minute = 2 ;
    second = 3 ;
が代入されます。

これは年月日時分秒で解説しました。

しかし、通常デジタル時計では
 1時2分3秒 → 01時02分03秒
と表記されることが多いと思います。

つまり、値が一桁のとき頭に 0 が加えられます。

この様な表示をしたいときは、
    if (hour<10) { hour = "0" & hour ; }
    if (minute<10) { minute = "0" & minute ; }
    if (second<10) { second = "0" & second ; }
を加えます。

これならば、hourが10より小さい → hour = { 0 - 9 } のとき 各々の値の頭に 0 が付きます。

日付も 4月5日 → 04月05日 にしたいときは、上記の方法で可能です。


なお、PCでは fscommand2 が使えないためか、0 が繰り返し付加されてしまうようです。(00000000...のように)


[追記]
    swf6以降では & ではなく + になります。
スポンサーサイト

時間・日付の表示について 02

例えば、
    year = fscommand2("GetDateYear");
    month = fscommand2("GetDateMonth");
    day = fscommand2("GetDateDay");
と書いたとします。

これをFLASH上に表示するとき、
    1つずつ 変数 year , month , day と "年" , "月" , "日" のテキスト を作成し、これを置いて表示する。
という方法があります。

しかし、これだと値のフォントサイズの違い("1"より"2"の方が横に大きいなど)によって文字間の隙間が様々になってしまいます。

特に 11 などは細くて隣の文字との隙間が大きくなって見栄えが悪くなったりします。(フォントにも依りますが。)

この隙間を統一するときは、一括に記述すると改善されます。
    ymd = year & "年" & month & "月" & day & "日" ;

これだと、ymd に全部代入され、隙間も自動的にとってくれます。

また、一括になっているので、テキストを作るのも楽になります。(埋め込みテキストに年月日が必要です。)


((実際あんまり有能でもなく、使う機会もありません。こういう使い方もあるよってことで。

FLASHアップローダー

FLASHアップローダーを設置しました。

携帯FLASH専用なので100KBまでです。

完成したFLASHの確認およびMoePictに提供するためにお使いください。

※後者もなかば本気です。

FLASHと画像の大きさ

例えば、240×320の画面サイズをもつ携帯で240×400のフラッシュを表示すると、左右に帯ができてしまいます。

 ←こんな感じ。

これだと当然見栄えが悪くなってしまいます。

そこで、プロパティetcを変更して対応サイズを広げることにします。


といっても簡単で、最小対応サイズを240×320にしたいのであれば、

プロパティの幅×高さを240×320にし、
そして、画像を中央に持ってきて、



これで終わりです。


プロパティによるサイズは画像を切り取ることはなく、携帯では中央にFLASHが配置されることを利用した方法です。

ただしこの場合、240×320の画面で表示すると上下の部分が表示されないので注意してください。(時計や日付の位置など)

ランダムな配列

    onClipEvent(load){ //スプライトが読み込まれたとき(例)

     total = 10 ; //配列数(例)
     n = total ;
     
     var arr = new Array(total); //もととなる配列の指定
     var new_arr = new Array(total); //並び替え後の配列の指定
     
     for( i=0 ; i<total ; i++ ){
     
      arr[i] = i ;
     
     }
     
     for( j=0 ; j<total ; j++ ){
      
      r = random(n); //ランダム
      new_arr[j] = arr[r] ; //並び替え
      
      /* 処理 */
       arr.splice( r , 1 ); //r番目を1つ削除
       n -- ; //spliceで削除した分、ランダムの範囲を狭める
      
     }

     /* 配列確認 ここから */
      for( k=0 ; k<total ; k++ ){
       
       tr1 += k +"," ;
       tr2 += new_arr[k] +"," ;
       
      }
      
      trace("arr= " +tr1); //もとの配列
      trace("new= " +tr2); //並び替え後の配列
     /* ここまで */

    }


任意の範囲でランダムな配列を作るためのスクリプトです。
例では1~10を並び替えています。

もともとは重複の無い値を割り当てるため作ったもので、例えば
スプライト0にはnew_arr[0](=3)を
スプライト1にはnew_arr[1](=1)を
スプライト2にはnew_arr[2](=2)を...
と順番立てたかったのです。("重複無く"が大切)

それを拡張すれば、指定の配列を並び替えることもできます。

    onClipEvent(load){

     total = 10 ; //配列数
     n = total ;
     
     var arr = [10,20,30,40,50,60,70,80.90,00];
     var new_arr = new Array(total);

     /* もとの配列確認 ここから*/
      for( i=0 ; i<total ; i++ ){
       
       tr1 += arr[i] +"," ;
       
      }
      
      trace("arr= " +tr1); //arrの確認
      
     /* ここまで */
     
     for( j=0 ; j<total ; j++ ){
      
      r = random(n);
      new_arr[j] = arr[r] ;
      
      /* 処理 */
       arr.splice( r , 1 );
       n -- ;
      
     }

     /* 並び替え後の配列確認 ここから */
      for( k=0 ; k<total ; k++ ){
       
       tr2 += new_arr[k] +"," ;
       
      }
      
      trace("new= " +tr2); //new_arrの確認
      
     /* ここまで */

    }


もとの配列確認が先頭に来るのは splice(); によって削除されるためです。


プロフィール

クロワッサン@

Author:クロワッサン@
FLASHへの質問はコメントにて。

↓携帯サイトはコチラ

QRコード
*FLASHと画像で萌えサイト

カテゴリ

スポンサードリンク

検索フォーム

月別アーカイブ

最新記事

最新コメント

Twitter

Twitter < > Reload

Copyright © クロワッサン@
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。