トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   FLASH目安箱【バグ報告・要望】
     シンタックスチェックでエラー無しなのに、自動フォーマットでエラー
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
近藤泰一
Åê¹ÆNo.4682
投稿日時: 2004-3-8 11:32
常連
居住地: 神奈川県
投稿: 112
使用環境:
Pro Pro
シンタックスチェックでエラー無しなのに、自動フォーマットでエラー
実用上害は無かったのですが、気持ち悪かったのでポストします。
スクリプトを書いていて、自動フォーマットをしようとしたら、スクリプトにエラーがあるというメッセージが表示されました。
どこか間違ってるのかと思ってシンタックスチェックをしてみたところ、こちらではエラーがないというメッセージが出ました。

そのままパブリッシュしてみたところ、動作は問題ないようなので、実際エラーは無いようでした。
いろいろ書き換えているうちに自動フォーマットでのエラーは出なくなりました。

自動フォーマットの動作にバグが有るようです。


----------------
Condo Hirokazu
http://www.condo.fromc.jp/flash/

笠居トシヒロ
Åê¹ÆNo.4699
投稿日時: 2004-3-8 15:01
マスター
居住地: 兵庫
投稿: 870
使用環境:
SnowLeopard, Safari4, CS4
Windows7, IE8, CS4
Re: シンタックスチェックでエラー無しなのに、自動フォーマットでエラー
実際にはどんなコードでエラーが出たんでしょうか?
本当にバグがあるとして、いくつかの「エラーが出たコード」が集まれば、
問題解決のための手がかりになると思うのですが。


----------------
笠居 マッドシー
http://www.mad-c.com/

近藤泰一
Åê¹ÆNo.4704
投稿日時: 2004-3-8 15:58
常連
居住地: 神奈川県
投稿: 112
使用環境:
Pro Pro
Re: シンタックスチェックでエラー無しなのに、自動フォーマットでエラー
そうですよね。
私もそう思って、再現しないか試してみました。
そうしたところ、下記の様なスクリプトで再現しました。

「★★この位置にコメントが入っていると自動フォーマットできません。」のところにコメントが入っていると自動フォーマットができません。
ただし、エラーチェックではエラー無しという結果が帰ってきます。
ここのコメントを取ると、自動フォーマットができます。


onClipEvent (load) {
	//キャラクターの動き回れる範囲
	nMinX = 20;
	nMaxX = 280;
	nMinY = 0;
	nMaxY = 140;
	//移動量の初期設定
	nSpeedX = 0;
	nSpeedY = 0;
	nMoveSpeed = 5;
	//■■障害物の設定
	//=====障害物を全て配列に入れておく(後で便利なので)
	barriers_array = new Array();
	barriers_array = ["barrier1_mc", "barrier2_mc"];
	//■■function設定
	function xMove() {
		//次の自分の位置を計算。
		nNextX = this._x+nSpeedX;
		nNextY = this._y+nSpeedY;
		//次の自分の位置に移動。
		//ただしステージからはみ出すことのないように補正する。
		//上で設定した動き回れる範囲よりも数字が大きくも小さくもならないようにしています。
		this._x = Math.min(Math.max(nMinX, nNextX), nMaxX);
		this._y = Math.min(Math.max(nMinY, nNextY), nMaxY);
		//障害物との当たり判定
		//当たり判定は障害物の数分だけ繰り返します。
		fHitFlag = false;
		for (i=0; i<barriers_array.length; i++) {
			if (this.hitTest(_parent[barriers_array[i]])) {
				//障害物とぶつかっていたらフラグを立ててブレイク
				fHitFlag = true;
				trace("HIT");
				break;
			}
		}
		if (fHitFlag) {
			//障害物とぶつかっていたら、自分の位置を前の位置に戻す。
			this._x -= nSpeedX;
			this._y -= nSpeedY;
		}
	}
	//=====移動量を設定。押された方向によって移動量を調整する。
	function xSetMove(sDirection) {
		//移動スピードをまず初期化
		nSpeedY = 0;
		nSpeedX = 0;
		//switch文を使って条件によって振り分け
		//上が押されたときにはY軸方向にマイナスの移動量を設定する。(そうすると上に動く)
		switch (sDirection) {
			//★★この位置にコメントが入っていると自動フォーマットできません。
		case "UP" :
			nSpeedY = -nMoveSpeed;
			break;
		case "DOWN" :
			nSpeedY = nMoveSpeed;
			break;
		case "RIGHT" :
			nSpeedX = nMoveSpeed;
			break;
		case "LEFT" :
			nSpeedX = -nMoveSpeed;
			break;
		}
		//キャラクターの見た目を変化させる
		this.gotoAndStop(sDirection);
	}
}
onClipEvent (enterFrame) {
	//毎フレーム移動処理を実行
	//キーを押していないときは移動量がゼロなので移動していないように見える
	xMove();
}
onClipEvent (keyDown) {
	//キーが押されたときに押されたキーを判別。
	//どの方向に移動すべきかをセットする。
	if (Key.isDown(Key.UP)) {
		xSetMove("UP");
	} else if (Key.isDown(Key.Down)) {
		xSetMove("DOWN");
	} else if (Key.isDown(Key.RIGHT)) {
		xSetMove("RIGHT");
	} else if (Key.isDown(Key.Left)) {
		xSetMove("LEFT");
	}
}
onClipEvent (keyUp) {
	//キーアップ時に移動を停止。
	xSetMove("STAY");
}


ちなみにこのFlashの内容は、キーボードでキャラクターを上下左右に歩かせるというものです。
ファイル本体は下記にあります。(FlashMX形式で保存しています)

http://www.tim.hi-ho.ne.jp/blackbird/flash/memo/walk/walk2.lzh


----------------
Condo Hirokazu
http://www.condo.fromc.jp/flash/

野中文雄
Åê¹ÆNo.4707
投稿日時: 2004-3-8 16:23
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: シンタックスチェックでエラー無しなのに、自動フォーマットでエラー
switch...caseステートメントの間のコメントが、引っかかるようですね。
引用:
近藤泰一さんは書きました:
「★★この位置にコメントが入っていると自動フォーマットできません。」のところにコメントが入っていると自動フォーマットができません。
ただし、エラーチェックではエラー無しという結果が帰ってきます。
ここのコメントを取ると、自動フォーマットができます。

// フレームアクション
switch (a) {
//★★この位置にコメントが入っていると自動フォーマットできません。 
case 0 :
}

でも、コンパイルは通りますし、動作が変わってしまう訳でもないので、まだかわいいものという気はします。


----------------
 

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops