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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     テキスト入力の使い方について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
loveless
Åê¹ÆNo.11845
投稿日時: 2004-10-28 18:57
新米
居住地: 神奈川
投稿: 9
使用環境:
WinXP,FLASH MX2004
テキスト入力の使い方について
 はじめまして、FLASHのActionScriptを使って学習教材を作ろうとしています。
 動作環境はOS:WinXP FLASH:MX2004です。
 題名にもあるようにテキスト入力を使って運動するムービークリップの速さを変えたいのですがなかなかうまくいきません
onClipEvent (enterFrame) {
_x += 10;
}
 このスクリプトの10という数値をテキストボックスに入力した値に変更して運動させるにはどのようにしたらよいでしょうか?
 FLASH、掲示板投稿共に初心者なので説明不足な点がありましたら言っていただければ助かります^^


----------------
動作環境はOS xp/FLASH pro です。

ひろゆき
Åê¹ÆNo.11846
投稿日時: 2004-10-28 19:52
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: テキスト入力の使い方について
うまく行かないのが、具体的に示されていないので、
大ざっぱな回答です。

テキストフィールド(変数speed)を_rootに配置した場合、
onClipEvent (load) {
_root.speed = 10;
}
onClipEvent (enterFrame) {
_x += _root.speed;
}
では、いかかがでしょう?
小野田智
Åê¹ÆNo.11848
投稿日時: 2004-10-28 20:09
新米
居住地: 東京
投稿: 17
使用環境:
/ /
Re: テキスト入力の使い方について
初心者さんということで、かなり詳細に書いてます。
煩わしく感じたらスイマセン。

動かしたいムービーはルート(ステージの一番上)に配置されていて、"myMC"という名前がついていると仮定して書きます。

まずは、スクリプトを
onClipEvent(EnterFrame){
 _x += myX;
}


としましょう。
こうすると、myXの値がフレームごとにmyMCの_xに代入されるようになります。

次に、テキストボックスの準備をしましょう。
とりあえず、楽をするためにコンポーネントを使いましょうか。

コンポーネントパネルから、
Buttonコンポーネントと、TextInputコンポーネントをステージに持ってきてください。
Buttonコンポーネントには、myBtn、
TextInputコンポーネントには、myTextという名前を付けましょう。

最後に、
myBtnに以下のスクリプトを記述します。

on(release){
 _root.myMC.myX = Number(_root.myText.text);
}

このスクリプトの意味は、
「ボタンが押されて、マウスのボタンが離されると、
_rootにあるmyMCのmyXは
_rootにあるmyTextに書かれた文章の数字になる」
という意味です。

なるべくわかりやすい日本語で書いているつもりですが、わかりづらいところがあったらヘルプなどで確認してからまた質問してください。

あと、学習教材を作られるということですが、これよりも高度な処理が何度も出てくると思いますので、わかりやすいスクリプトの書籍を1冊買って勉強してみるといいかと思います。(お勧めは、野中先生の本か、教えてFlash系ですかね)


----------------
Satoshi Onoda
Emotional Box Project

小野田智
Åê¹ÆNo.11849
投稿日時: 2004-10-28 20:11
新米
居住地: 東京
投稿: 17
使用環境:
/ /
Re: テキスト入力の使い方について
あ、書いているうちに他にもレスが。。
まぁ、核となるところはそんなに変わらないですよね。


----------------
Satoshi Onoda
Emotional Box Project

loveless
Åê¹ÆNo.11853
投稿日時: 2004-10-28 22:00
新米
居住地: 神奈川
投稿: 9
使用環境:
WinXP,FLASH MX2004
Re: テキスト入力の使い方について
返信を下さった方、ありがとうございました。こんなに早く返信がいただけるとは思っていませんでした。
自分の説明が不足していたみたいだったので次からはもっと詳しく状況を書こうと思います。
 コンポーネンとの使い方なども分かったので勉強になりました。明日にでも薦めてもらった本を探しにいきます。


----------------
動作環境はOS xp/FLASH pro です。

loveless
Åê¹ÆNo.11878
投稿日時: 2004-10-29 22:43
新米
居住地: 神奈川
投稿: 9
使用環境:
WinXP,FLASH MX2004
Re: テキスト入力の使い方について
 教えてもらったテキスト入力の使い方を以前作った放物運動のスクリプト(下のもの)
onClipEvent(load){
	V0=-13;//初速度:変更部分
	R=(50/*射角:変更部分*/-90)*Math.PI/180
	Vx=V0*Math.sin(R);
	Vy=V0*Math.cos(R);
}
onClipEvent(enterFrame){
		Vy+=0.3;//重力加速度
		//trace("Vy="+Vy);
		_x+=Vx;//X成分
		_y+=Vy;//Y成分
}

に試してみたのですが、ボタンコンポーネントに
on (release) {
	_root.myMC.sokudo = Number(_root.sokudoText.text);
	_root.myMC.Rad = (Number(_root.kakudoText.text)-90)*Math.PI/180;
}

と記述して、ムービークリップのmyMCに
onClipEvent(load){
	V0=-sokudo//初速度:変更部分;
	//trace("V0="+V0)
	R=Rad//射角:変更部分;
	//trace("R"+R)
	Vx=V0*Math.sin(R);
	Vy=V0*Math.cos(R);
}
onClipEvent(enterFrame){
		Vy+=0.3;//重力加速度
		//trace("Vy="+Vy);
		_x+=Vx;//X成分
		_y+=Vy;//Y成分
}

と記述したところムービークリップが動かなくなってしまいました。イベントをenterFrameにしたところ入力は受け付けるのですが、放物運動をせず、直線運動をしてしまいます。イベントの使い方が間違っているのでしょうか?原因がわからないのですが、教えていだけないでしょうか?


----------------
動作環境はOS xp/FLASH pro です。

ひろゆき
Åê¹ÆNo.11879
投稿日時: 2004-10-30 0:05
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: テキスト入力の使い方について
もう少し、ご自分のなさりたいことを整理された方が良いのではないでしょうか?

1. 数値をテキスト入力する。
2. ボタンを押すと、その数値をMCに渡す。
3. 渡された数値から、MCが運動を始める。

ボタンを押さなければ、、sokudoやRadの数値は、myMCに渡りませんよね?
なのに、ムービークリップのmyMCはenterFrameで動き始めるわけですから、
テキスト入力した数値は関係ないことになりませんか?
loveless
Åê¹ÆNo.11891
投稿日時: 2004-10-31 17:22
新米
居住地: 神奈川
投稿: 9
使用環境:
WinXP,FLASH MX2004
Re: テキスト入力の使い方について
返信ありがとうございます。
 おっしゃっていることは、テキスト入力をした数値がMCに渡されてもloadイベントを使うことで、enterFrameで動きはじめているMCに数値を渡しても意味の無いものになってしまうということでしょうか?指摘を受けてから気がつきました。
 もし、解決策があるようでしたら教えていただけないでしょうか?


----------------
動作環境はOS xp/FLASH pro です。

ひろゆき
Åê¹ÆNo.11892
投稿日時: 2004-10-31 17:39
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: テキスト入力の使い方について
とりあえず、動けばよいのであれば、あくまでも例ですが、
フレーム数を2にして、2フレーム目(キーフレーム)にmyMCを配置する。
1フレーム目にはボタンとテキストフィールドのみ配置する。
1・2フレームとも、フレームアクションにthis.stop();

ボタンのスクリプトは
on (release) {
	_root.sokudo = Number(_root.sokudoText.text);
	_root.Rad = (Number(_root.kakudoText.text)-90)*Math.PI/180;
	_root.gotoAndStop(2);
}

myMCのスクリプトは
onClipEvent(load){
	V0=-_root.sokudo;
	R=_root.Rad;
	Vx=V0*Math.sin(R);
	Vy=V0*Math.cos(R);
}
onClipEvent(enterFrame){
		Vy+=0.3;
		_x+=Vx;
		_y+=Vy;
}


たぶん、これで動くかと。
ただし、放物線を描いた物体は、そのまま動き続けますので、
どのようにストップするのか、また、どのようにテキスト入力にもどるのかを
考える必要がありますが、それについては、どのようにしたいのかが示されていないので、
考慮に入れてません。
loveless
Åê¹ÆNo.11896
投稿日時: 2004-10-31 20:29
新米
居住地: 神奈川
投稿: 9
使用環境:
WinXP,FLASH MX2004
Re: テキスト入力の使い方について
 返信ありがとうございます。FLASHを作る上での考え方、とても参考になりました。
フレーム数を増やしてみることは思い浮かびませんでした。複数のフレームを使うことを参考にして作り直してみます。
 放物運動を止める方法は背景のMCを作り、そのMCとmyMCのhitTestを使ってみようと考えています。また、テキスト入力
に戻る方法についてはリセットボタンを作り、最初のフレームに戻してはどうかと考えています。


----------------
動作環境はOS xp/FLASH pro です。

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

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