
いままで放置していた「,」で区切られた文字列を一つ一つ効率良く取得する方法を考え中。今までは超ローテク方法で取得していたのでそろそろ綺麗に取得できんもんかと考えてます。
現在のコードの一部
fi_str=String(item_xl[index_ui].filta);//XMLオブジェクトのitemにある「filta」要素を取得
var fiP1_in:uint=fi_str.indexOf(",",0)
var fiP2_in:int=fi_str.indexOf(",",fiP1_in+1);
//第一引数の区切りにあたる「,」がfilta要素の文字列の何番目にあたるかを取得。第一引数、第二引数は必須項目のため、indexOfの結果が-1(記述していないと返す値)はありえないため、「fiP1_in」の型は-の符号を取得する事ができない「uint」を指定してます。
第三引数以降は記述しなくても動作するようにしている、つまりエンジン側でデフォルト値を割り当てています。ですので第三引数の値を検索するために必要な「fiP2_in」はindexOfで検索結果無しを表す「-1」の値を受け止める事ができる「int」に設定しています。
var fiImg_str=fi_str.substring(0,fiP1_in);//第一引数で区切られた
var fiTy_in=0;
//================特にここが効率が悪い
if(fiP2_in!==-1)
{
//XMLが第3引数以降を指定している場合
fiTy_in=String(fi_str.substring(fiP1_in+1,fiP2_in));//
} else
{
//第2引数で記述を終えている
fiTy_in=String(fi_str.substr(fiP1_in+1));//
}
//==================
擬似的な引数がXMLに記述されているかどうかを表す「,」をindexOf()で検索した結果によって取得方法が微妙に違うのですが、この辺りの文字列の取得ロジックが効率が悪いです。
クラスに文字列だけ投げて勝手に引数を取得できるメソッドを数時間ほど考える予定です。
数時間考えて駄目だったら保留します。