addRuleするときに下記のようにコーディングするとvalidate()を呼び出すときに、
“addFormRule”で指定した同じクラスのvalidateCallBackが最後に起動される。
class qf_form extends HTML_QuickForm{
function buildRule(){
//コールバック関数
$this->addFormRule(array($this, 'validateCallBack'));
}
function validateCallBack( $from_data ){
$errors = array();
print_r( $form_data );
return $errors;
}
}
参考記事
http://pear.plus-server.net/package.html.html-quickform.html-quickform.addformrule.html
出力するときのHTMLコードがXHTMLの時には、下記のコードが必要になります。
header('Content-Type: application/xhtml+xml');
ただし、同HTMLコードをPCで確認するとき上記の記述があると、FireFoxはクラッシュします。また、Chormeでも正常に表示できない場合があります。
上記のコードはあくまでもDocomoのみ出力するように制御する必要があります。
●スクリプトで、オブジェクトの色を変更することは出来ない。
→オブジェクトの色を変更する場合は、シンボルに変換した後ツール上で色を変更するしか無い。
ランダムに色を変える場合、フレーム別に色を変更し、そのフレームのジャンプさせることで色違いのパターンを作るしか無い。
組み合わせがあった場合、全パターンの色違いを作ることになる。が、これ以外の実装方法は見つけられなかった。
配列の値からインデックス値を求めるスクリプトです。
関数フレームに記述して使ってください。
//配列のindexを返す
get_ar_ret_1 = "";
tmp = eval( get_ar_args_index add get_ar_args_name );
if( mblength( tmp ) > 0 ) {
tmp_cnt = 1;
for( n = 1; n < mblength( tmp ); n ++ ){
if( mbsubstring( tmp, n, 1 ) eq "/" ){
if( get_ar_ret_1 eq get_ar_args_node ) {
get_ar_ret_1 = tmp_cnt;
break;
}
tmp_cnt ++;
get_ar_ret_1 = "";
} else {
get_ar_ret_1 = get_ar_ret_1 add mbsubstring( tmp, n, 1 );
}
}
}
使用例
ar_1="26/57/25/56/26/57/27/58/29/59/30/60/22/";
//配列変数名
get_ar_args_index = "ar_";
//1次元目のインデックス
get_ar_args_name = 1;
//2時限目のインデックス
get_ar_args_node = 30;
call( "get_ar" );
//結果取得
ret = get_ar_ret_1;
とあるFlashを作ったときに実装した関数です。
汎用的だと思っているので、メモっておきます。
関数フレームに下記のソースを記述
get_ar_ret_1 = "";
tmp = eval( get_ar_args_index add get_ar_args_name );
if( mblength( tmp ) > 0 ) {
tmp_cnt = 1;
for( n = 1; n < mblength( tmp ); n ++ ){
if( mbsubstring( tmp, n, 1 ) eq "/" ){
if( tmp_cnt == get_ar_args_node ) break;
tmp_cnt ++;
get_ar_ret_1 = "";
} else {
get_ar_ret_1 = get_ar_ret_1 add mbsubstring( tmp, n, 1 );
}
}
}
関数フレーム名を"get_ar"1とすると使用するときは
ar_1="26/57/25/56/26/57/27/58/29/59/30/60/22/";
ar_2="31/2/30/1/31/2/32/3/34/4/35/5/32/";
ar_3="36/7/36/7/37/8/38/9/40/10/41/11/55/";
ar_4="42/13/41/12/42/13/43/14/45/15/46/16/66/";
ar_5="47/18/46/17/47/18/48/19/50/20/51/21/77/";
ar_6="52/23/51/22/52/23/53/24/55/25/56/26/88/";
//配列変数名
get_ar_args_index = "ar_";
//1次元目のインデックス
get_ar_args_name = 2;
//2時限目のインデックス
get_ar_args_node = 3;
//上記の場合だと "ar_2" 配列の3番目の要素を取得
//結果は30となる
call( "get_ar" );
//結果取得
ret = get_ar_ret_1;