Category: プログラミング

QuickFormのValidateにコールバックを適応する

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

Docomo携帯にCSSを適応するときの注意点

出力するときのHTMLコードがXHTMLの時には、下記のコードが必要になります。

 header('Content-Type: application/xhtml+xml');

ただし、同HTMLコードをPCで確認するとき上記の記述があると、FireFoxはクラッシュします。また、Chormeでも正常に表示できない場合があります。
上記のコードはあくまでもDocomoのみ出力するように制御する必要があります。

Flash Lite 1.1で出来ない事

●スクリプトで、オブジェクトの色を変更することは出来ない。
 →オブジェクトの色を変更する場合は、シンボルに変換した後ツール上で色を変更するしか無い。
   ランダムに色を変える場合、フレーム別に色を変更し、そのフレームのジャンプさせることで色違いのパターンを作るしか無い。
   組み合わせがあった場合、全パターンの色違いを作ることになる。が、これ以外の実装方法は見つけられなかった。

Flash Lite1.1 で配列のインデックスを求める

配列の値からインデックス値を求めるスクリプトです。
関数フレームに記述して使ってください。

//配列の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 Lit1.1で2次元配列の実装

とある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;

WordPress Themes