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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     変数の変化に応じたステータス表示
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
diego3104
Åê¹ÆNo.44320
投稿日時: 2010-1-26 15:14
新米
居住地:
投稿: 5
使用環境:
変数の変化に応じたステータス表示
質問させて下さい。
AS2.0で

ある変数の値を監視して変数の変化に応じて、メインフレームに置かれたムービークリップが移動するといった事は可能なのでしょうか?
(シュミレーションゲームのステータス表示に使いたいのです。)

例えば変数root_eが0?3の時は無表情(ムービークリップフレーム1)
。4?8の時は微笑(ムービークリップフレーム2)
9?10の時はスマイル(ムービークリップフレーム3)
みたいなイメージです。

わかりにくくて吸いません。

誰かわかる方いましたら宜しくお願いします!
vader
Åê¹ÆNo.44322
投稿日時: 2010-1-26 18:12
常連
居住地: 東京
投稿: 76
使用環境:
MacOS10.8,FlashCS6
Re: 変数の変化に応じたステータス表示
diego3104さん、こんにちわ。

もっと効率的な方法はあると思いますが、以下のような
感じで如何でしょうか?
表情を変えるMCをface_mcとしています。


var root_e:Number = 0;
var nFlag:Number;

this.onEnterFrame = function():Void {
	var n:Number;
	if (root_e <= 3) {
		n = 1;
	} else if (root_e <= 8) {
		n = 2;
	} else if (root_e <= 10) {
		n = 3;
	} else {
		return;
	}
	if (nFlag != n) {
		face_mc.gotoAndStop(n);
		nFlag = n;
		trace("root_e = " + root_e);
		trace("nFlag = " + nFlag);
	}
};


enterFrameで調べる必要がなければ、setIntervalを使用すれば
良いと思います。

以上、お役に立ちましたら幸いです。
Tonpoo (gaienboy改め)
Åê¹ÆNo.44323
投稿日時: 2010-1-26 18:29
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 変数の変化に応じたステータス表示
gaienboyです。vaderさんの仰るとおり、方法はいろいろあると思いますが、
ActionScript2ということですので、例えばObject.watchを使ってみるというのは
どうでしょうか?

FN0310001 - Object.watch - Flash : テクニカルノート
http://fumiononaka.com/TechNotes/Flash/FN0310001.html


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

diego3104
Åê¹ÆNo.44324
投稿日時: 2010-1-27 2:03
新米
居住地:
投稿: 5
使用環境:
Re: 変数の変化に応じたステータス表示
お二方
丁寧な御助言ありがとうございます!

ただ私があまりに初心者でflashの参考書と御助言をもとに悪戦苦闘しているのですがどうしてもエラーがでてしまいます。
作成中のファイルは下記です。
http://www.dotup.org/uploda/www.dotup.org597007.fla.html

※右下の進行ボタンを押してフレーム2にいくと変数eがセットされ
それにあわせて、自動的にface mcがシーン2に移動する。
というようなスクリプトを組もうとしているのですが・・・

もしお手数でなければ正しいスクリプトに変換していただけないでしょうか?・・・ペコリ
vader
Åê¹ÆNo.44328
投稿日時: 2010-1-27 18:50
常連
居住地: 東京
投稿: 76
使用環境:
MacOS10.8,FlashCS6
Re: 変数の変化に応じたステータス表示
diego3104さん、こんにちわ。

まず、こちらの環境だからかもしれませんがパブリッシュ
設定がActionScript1.0になっていました。
これをActionScript2.0に設定します。

後、変数名は、root_eではなかったのですか?
こちらは、eに書き換えました。


// 1フレーム目に記述
var e:Number = 0;
var nFlag:Number;

this.onEnterFrame = function():Void {
	var n:Number;
	if (e <= 3) {
		n = 1;
	} else if (e <= 8) {
		n = 2;
	} else if (e <= 10) {
		n = 3;
	} else {
		return;
	}
	if (nFlag != n) {
		face_mc.gotoAndStop(n);
		nFlag = n;
		trace("e = " + e);
		trace("nFlag = " + nFlag);
	}
};

this.stop();

// 2フレーム目に記述
e = 5;


複数のレイヤーにスクリプトを分けて書いておられましたが、
1箇所にまとめてあります。

こちらでは、ちゃんと動きましたので、頑張って下さい。

diego3104
Åê¹ÆNo.44329
投稿日時: 2010-1-27 20:57
新米
居住地:
投稿: 5
使用環境:
Re: 変数の変化に応じたステータス表示
vaderさん

重ねがさね返信と訂正有難うございます。
確認すると使っているソフトがflash mx 6.0で AS1.0でした・・・汗
勉強不足で申し訳ありません。。。

ちなみにAS1.0でこのような動作(変数を監視してムービークリップを移動)は難しいのでしょうか?

難しいなら最新版の購入を検討したいと思っているのですが・・・。
vader
Åê¹ÆNo.44330
投稿日時: 2010-1-27 21:28
常連
居住地: 東京
投稿: 76
使用環境:
MacOS10.8,FlashCS6
Re: 変数の変化に応じたステータス表示
diego3104さん、こんにちわ。

ActionScript1.0は、3年位前に仕事で組んで以来、全く
使っていないので、詳しくは解りません。

ただ、今回のスクリプトでは、4行目の関数の戻り値の指定を
消した所、こちらでは動きましたよ。


//this.onEnterFrame = function():Void {
this.onEnterFrame = function() {


以上、頑張って下さい。
diego3104
Åê¹ÆNo.44332
投稿日時: 2010-1-27 22:52
新米
居住地:
投稿: 5
使用環境:
Re: 変数の変化に応じたステータス表示
vaderさん

有難うございます。

試行錯誤して
一緒のレイヤーに置くと動作するようになったのですが
http://www.dotup.org/uploda/www.dotup.org599131.fla.html
(vaderさんのおかげです。本当に有難うございます。)

下記のようにレイヤーを分けると動作しなくなってしまいます。
http://www.dotup.org/uploda/www.dotup.org599137.fla.html
こように変数を定義、計算するレイヤーと
それに基づいた表示処理を行うスクリプトをいれたレイヤーを
分けることは難しいのでしょうか?

vader
Åê¹ÆNo.44333
投稿日時: 2010-1-28 0:43
常連
居住地: 東京
投稿: 76
使用環境:
MacOS10.8,FlashCS6
Re: 変数の変化に応じたステータス表示
diego3104さん、こんばんわ。

まずは、先ほど私の投稿した内容を良く読んで下さい。
「4行目を丸々消す」と書いた覚えはありません。


//this.onEnterFrame = function():Void {
this.onEnterFrame = function() {


>こように変数を定義、計算するレイヤーと
>それに基づいた表示処理を行うスクリプトをいれたレイヤーを
>分けることは難しいのでしょうか?

レイヤーを分けるメリットが思い浮かびませんが、処理の順序を
しっかりと計算に入れていれば、問題ないと思います。

以上、頑張って下さい。
diego3104
Åê¹ÆNo.44347
投稿日時: 2010-1-30 23:55
新米
居住地:
投稿: 5
使用環境:
Re: 変数の変化に応じたステータス表示
おかげさまで解決できました!
有難うございました。引用:
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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