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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     スライダーの値を取得したい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Ishuka
Åê¹ÆNo.5479
投稿日時: 2004-3-24 20:15
新米
居住地:
投稿: 14
使用環境:
WinXP/2000
MX2004Pro
スライダーの値を取得したい
こんにちは、Ishukaです。

アンケートの評価をスライダーを使って入力(?)
してもらうようなページを作りたいのですが
スライダーの値とでも言うのでしょうか・・・
「次へ」のようなボタンを押された時に
"つまみ"がどこにあるのかを取得したいのですが
そのような値を取得できるメソッドは存在するのでしょうか?

スライダーの左端を0、右端を100のような感じに
値の取得ができると理想的なのですが
そのようなメソッド、またはそれと同じような結果の得られる
方法をご存知の方いらっしゃいましたらご教授お願い致します。

それと参考程度にお尋ねしたいのですが
Flash MX 2004 ProのヘルプにSliderという単語が入っていないのは仕様でしょうか・・・?
Ishuka
Åê¹ÆNo.5480
投稿日時: 2004-3-24 20:26
新米
居住地:
投稿: 14
使用環境:
WinXP/2000
MX2004Pro
Re: スライダーの値を取得したい
申し訳ありません。

デザイナーの方と連絡が取れたので聞いてみたところ
とても簡単に取得することができてしまいました。

>管理人様
お手数ですが記事の削除をお願い致します。
(多分残しておく程の記事ではないと感じましたので・・・)
近藤泰一
Åê¹ÆNo.5482
投稿日時: 2004-3-24 20:59
常連
居住地: 神奈川県
投稿: 112
使用環境:
Pro Pro
Re: スライダーの値を取得したい
フォーラムの情報はたまっていくほど価値がある物なので、残しておいても良いのではないでしょうか。
また、別の手段で解決した場合、そのやり方を書いて頂けると良いかと思います。

どのように解決されたかは分かりませんが、この場合こんな感じでできると思います。

●スライダー(つまみ)のMCが動く範囲を取得する。
例えば「X座標20?220の範囲でドラッグ&ドロップ可能」なら、範囲は「220-20=200」ですよね。
startDrag()で決めていると思います。

●アンケート送信するときのスライダーの位置を取得する。
例えば「X座標30の位置にある」など。this._xで参照できます。
スライダーの動く範囲が20?220であれば、動ける範囲の左端からは10ピクセルの位置ということになります。(現在地(30)-左端(20))

●全体の中の何%あたりにいるかを計算します。
左を0点、右を100点とするなら、こんな感じですよね。

(現在地の座標 - 左端)/動ける範囲 × 満点

具体的に例で計算すると

(30-20)/200 * 100 = 5点

と言うことになります。
きりの良い数字を例で出しましたが、小数点などがでちゃうといやなら、Math.roundなどを使って整数にすればよいかと思います。


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

Ishuka
Åê¹ÆNo.5515
投稿日時: 2004-3-25 17:41
新米
居住地:
投稿: 14
使用環境:
WinXP/2000
MX2004Pro
Re: スライダーの値を取得したい
たしかにやり方を載せておけば価値がでてくるかもしれないですね
フォローありがとうございます

引用:

●スライダー(つまみ)のMCが動く範囲を取得する。
例えば「X座標20?220の範囲でドラッグ&ドロップ可能」なら、範囲は「220-20=200」ですよね。
startDrag()で決めていると思います。


この事に気づかなかったのはかなり製作体制の問題だと思うのですが
今回はデザインだけ他の方が作って、僕はスクリプトを書くだけ、
という体制をとっているので裏でそんな設定があることすら知りませんでした・・・

そのため今回デザイン側の内容を全く知らずともできる方法(?)で実装しました

最初の質問の例として0?100を出したのですが
実際は0?5の6段階で、スライダーで評価を決められる
が、ほしい値は整数値という感じでした。

こちらで実装した方法ですが
まずスライダーのMaxValueに5、MinValueに0を設定しました。
値の取り方は [インスタンス名.value] で簡単にできました

ほしい値は整数値なので四捨五入することになっていたのですが

Math.round

こんな便利な関数があったのですね・・・
以下は僕の書いたコードですが

slider1_valueTemp = _root.slider1.value;
slider1_value = slider1_valueTemp - slider1_valueTemp % 1;
slider1_valueTemp = slider1_valueTemp - slider1_value;
if ( slider1_valueTemp % 1 >= 0.5 ) {
slider1_value ++ ;
}

Math.round知らなくて自分で四捨五入のコード書いてました
ちょっと考えればわかる程度のものですけど・・・

しょーもないコード載ってますがこれで少しは残す価値を
見出していただけると嬉しいです
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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