AS 3 CookBook学習整理(十一)

13156 ワード

1.文字列を巡回する文字
次の2つの方法があります.
<1>直接charの形で遍歴する
package {
 import flash.display.Sprite;
 public class Sample0603 extends Sprite
 {
  public function Sample0603()
  {
   var str:String = "what a beautiful girl";
   
   for(var i:int=0;i<str.length;i++)
   {
    trace(str.charAt(i));
   }
  }
 }
}
<2>まずsplit("")を行い、それから配列として遍歴する
このような利点は,配列の系列法で文字の並べ替え,削除などの処理が可能であることである.
package {
 import flash.display.Sprite;
 public class Sample0603 extends Sprite
 {
  public function Sample0603()
  {
   var str:String = "what a beautiful girl";
   
   var arr:Array = str.split("");
   
   //arr.sort(); // 
    
   for(var i:int=0;i<arr.length;i++)
   {
    if(arr[i]=="u")
    {
     arr.splice(i,1);
     i--;
    }
   }
   
   trace(arr.join(""));
  }
 }
}
2.大文字と小文字の変換
str.toUpperCase()を大文字に、str.toLowerCase()を小文字に変換できます.
ascbのStringUtilitiesを通過することができる.toInitialCap(str)は、文字列全体の最初のアルファベットを大文字にし、その他のすべての小文字を
ascbのStringUtilitiesを通過することができる.toTitleCase(str)、各単語(スペースで区別)の頭文字を大文字、その他の小文字
package {
 import ascb.util.StringUtilities;
 import flash.display.Sprite;
 public class Sample0603 extends Sprite
 {
  public function Sample0603()
  {
   var str:String = "What a beautiful Girl!";
   
   trace(str.toLowerCase());//what a beautiful girl!
    
   trace(str.toUpperCase());//WHAT A BEAUTIFUL GIRL!
    
   trace(StringUtilities.toInitialCap(str));//What a beautiful girl!
    
   trace(StringUtilities.toTitleCase(str));//What A Beautiful Girl! 
  }
 }
}
3.先頭と末尾のスペースを削除(Trim)
2つの方法があります.
mx.utils.StringUtil.trim(str)
ascb.util.StringUtilities.trim(str)
4.反転(reverse)文字列
split()メソッドを使用して文字配列を作成し、配列のreverse()メソッドとjoin()メソッドを呼び出します.
package {
 import flash.display.Sprite;
 
 public class Sample0611 extends Sprite
 {
  public function Sample0611()
  {
   var str:String = "God  is  a girl";
   
   //  
   var arr2:Array = str.split("");
   arr2.reverse();
   trace(arr2.join(""));
   
   //  
   var arr:Array = str.split(" ");
   arr.reverse();
   trace(arr.join(" "));
  }
 }
}
5.文字のUnicodeコードまたはASCIIコードを得る
String.fromCharCode(...charCodes)--現在のASCIIコードに対応する文字を取得
str.charCodeAt(index)--現在のインデックスの下の文字に対応するASCIIコード値を取得
package {
 import flash.display.Sprite;
 
 public class Sample0611 extends Sprite
 {
  public function Sample0611()
  {
   trace(String.fromCharCode(65));//A
 
   trace(String.fromCharCode(97,98,99));//ABC
    
   var str:String = "abc";
   trace(str.charCodeAt(0));//97 
  }
 }
}
6.Dateオブジェクトを作成する
標準コンストラクション関数は次のとおりです.
public function Date(yearOrTimevalue:Object, month:Number, date:Number = 1, hour:Number = 0, minute:Number = 0, second:Number = 0, millisecond:Number = 0)
*パラメータが渡されていない場合は、Dateオブジェクトに現在のクライアントの日付と時刻を指定します.
*Numberデータ型のパラメータを渡す場合は、GMT時間1970年1月1日0:00:000以降のミリ秒数+
*Stringデータ型のパラメータが渡され、文字列に有効な日付が含まれている場合は、Dateオブジェクトに日付と時間を与えます.そうでない場合は、「Invalid Date」を返します.仕様に適合するフォーマットは次のとおりです.
Day Month Date Hours:Minutes:Seconds GMT Year(たとえば、「Tue Feb 1 00:00:00:00 GMT-08000 2005」は、toString()と一致)
Day Month Date Year Hours:Minutes:Seconds AM/PM(「Tue Feb 1 2005 12:00:00 AM」など、toLocaleString()と一致)
Day Month Date Year(たとえば、「Tue Feb 1 2005」、これはtoDateString()と一致)
Month/Day/Year(「02/01/2005」)
Month/Year(「02/2005」)
package {
 import flash.display.Sprite;
 public class Sample0616 extends Sprite
 {
  public function Sample0616()
  {
   var date:Date = new Date();
   trace(date);//Tue Jun 16 14:44:32 GMT+0800 2009
    
   date = new Date(4000);
   trace(date);//Thu Jan 1 08:00:04 GMT+0800 1970
    
   date = new Date("02/03/1983");
   trace(date);//Thu Feb 3 00:00:00 GMT+0800 1983 
  }
 }
}
7.Dateオブジェクトの情報を取得する
Dateオブジェクトの詳細はfullYear、month、date、day、hours、minutesなどの属性で入手できます
ASCBの下のDateFormatクラスは、DAYS、DAYSなどの週と月の名前配列をカプセル化しています.ABBREVIATED、MONTHS、およびMONTHS_ABBREVIATED
PS:と.Netは違って、dayは曜日を返して、dateは日付の部分を返します.日曜日対応dayは0
package {
 import ascb.util.DateFormat;
 
 import flash.display.Sprite;
 public class Sample0616 extends Sprite
 {
  public function Sample0616()
  {
   var date:Date = new Date();
   
   trace(date); //Tue Jun 16 15:25:18 GMT+0800 2009
  
   trace(date.fullYear); //2009 
   trace(date.month + 1); //6 
   trace(date.date);  //16   
   trace(date.day);  //2 
   trace(date.hours);  //15 
   trace(date.minutes); //25 
   trace(date.seconds); //18 
   trace(date.milliseconds); // 
 
   trace(DateFormat.DAYS[date.day]); //Tuesday 
   trace(DateFormat.DAYS_ABBREVIATED[date.day]); //Tues 
   trace(DateFormat.MONTHS[date.month]); //June 
   trace(DateFormat.MONTHS_ABBREVIATED[date.month]); //Jun
 
  }
 }
}
8.日付と時刻の書式設定
ascbを利用する.util.DateFormatクラスのformat(date)メソッドでフォーマット
package {
 import ascb.util.DateFormat;
 
 import flash.display.Sprite;
 public class Sample0616 extends Sprite
 {
  public function Sample0616()
  {
   var date:Date = new Date();   
   trace(date);//Tue Jun 16 16:35:29 GMT+0800 2009
 
   trace(new DateFormat("Y").format(date));//2009 
   trace(new DateFormat("y").format(date));//09 
   trace(new DateFormat("m").format(date));//06 
   trace(new DateFormat("d").format(date));//16 
   trace(new DateFormat("H:i:s").format(date));//16:35:29 
   trace(new DateFormat("h:i:s").format(date));//04:35:29 
   trace(new DateFormat("h:i:s a").format(date));//04:35:29 pm 
   trace(new DateFormat("Y-m-d 'at' h:i:s a").format(date));//2009-06-16 at 04:48:45 pm 
  }
 }
}
9.秒またはミリ秒をmmにフォーマットする:ssフォーマット
ascbを使用する.util.DateFormat.formatSeconds()またはascb.util.DateFormat.formatMilliseconds()メソッド
package {
 import ascb.util.DateFormat;
 
 import flash.display.Sprite;
 public class Sample0616 extends Sprite
 {
  public function Sample0616()
  {
   trace(DateFormat.formatSeconds(301)); //05:01(5 1 )
    
   trace(DateFormat.formatMilliseconds(68000)); //01:08(1 8 ) 
  }
 }
}
10.Soundオブジェクトの作成
サウンドファイルをSoundオブジェクトにロードするには、まずmp 3ファイルのパスを含むURLRequestオブジェクトを作成し、Soundを呼び出す必要がある.load()メソッドをロードします.たとえば、次のようにします.
var _sound:Sound = new Sound();
_sound.load(new URLRequest("song.mp3");
URLRequestをSoundクラスのコンストラクション関数に直接渡すこともできます.書き方はより簡単です.
var _sound:Sound = new Sound(new URLRequest("song.mp3"));
注意:
*コンストラクション関数としてSoundオブジェクトを作成する場合は、Soundオブジェクトのload()メソッドが自動的に呼び出されます.そうでなければload()メソッドを自分で呼び出す必要があります
*サウンドオブジェクトに対してload()を呼び出すと、そのサウンドオブジェクトに別のサウンドファイルをロードすることはできません.別のサウンドファイルをロードするには、新しいSoundオブジェクトを作成します.