いつも大変お世話になっております。
伸び縮むサイドバーを作っているのですが、伸ばしたまではいいのですが、元の位置に戻すほうがどうもうまくいきません。
以下、途中まで書いたスクリプトです。
■.recruit_mcがバーの部分になります。
onClipEvent (load) {
_root.recruit_mc._x = 859;
_root.recruit_mc._y = 272;
}
onClipEvent (enterFrame) {
rec_to_button.onRelease = function() {
_root.recruit_mc.onEnterFrame = function() {
if (_root.recruit_mc._x>=620) {
_root.recruit_mc._x -= 10;
}
};
};
}
--------------------------------------------------------------
if (_root.recruit_mc._x>=620) {
_root.recruit_mc._x -= 10;
}
の箇所で else を使って、逆の場合をいろいろと書いているのですが
どうもうまくいきません。
ボタンを押したら859→620まで移動、またボタンを押したら620→859
まで移動するようにするには、あとどう書き加えればいいですか?
ご教授よろしくお願いします。
No.1ベストアンサー
- 回答日時:
クリックしたときに適当な変数に値(仮に"1")を入れ、もう一度クリックしたときに変数の値が"1"なら"0"にしてX座標を859に、"0"(undefined)なら"1"にしてX座標を620にする、というようなかんじですればいいと思います。
onClipEvent (load) {
_root.recruit_mc._x = 859;
_root.recruit_mc._y = 272;
flag=0;//flag変数を宣言しておく
}
onClipEvent(enterFrame){
rec_to_button.onRelease = function() {
if(!flag){
flag=1;
} else {
flag=0;
}
_root.recruit_mc.onEnterFrame = function() {
if(flag && _root.recruit_mc._x>=620){
_root.recruit_mc._x -= 10;
} else if(!flag && _root.recruit_mc._x<=859){
_root.recruit_mc._x += 10;
}
};
};
}
ですが、少しずつスライドする場合は
プロパティ += (移動先[変化先の値] - プロパティ)*遅延率[0<遅延率≦1]; (分かり難くてすみません・。
を使って、
onClipEvent(enterFrame){
rec_to_button.onRelease = function() {
if(!flag){
flag=1;
} else {
flag=0;
}
_root.recruit_mc.onEnterFrame = function() {
if(flag){
this._x += (859-this._x)*0.3;
} else {
this._x += (620-this._x)*0.3;
}
};
};
}
こんな風にしたほうがいいかと思います。あくまで持論ですけれど。
実際にプログラムを組んで試していないのでひょっとすると動かないかもしれません・・。
余談ですが、途中で書いた公式みたいなやつは結構使えます。
onClipEvent(enterFrame){
this._alpha += (0-this._alpha)*0.2;
}
でフェードアウトします。(変化先の値が"0")
is_may様
早速のご回答ありがとうございます。
自分でもフラグを立てて試行していたんですが、うまくいかずで。
大変参考になりました。
別途公式のほうもありがとうございます。とても勉強になります。
一番目のものは無事動きました。
二番目のものもif(flag)をif(!flag)にして、ちゃんと動きました。
丁寧に二つ書いてくださってありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Visual Basic(VBA) 正規表現を用いての並び替え 7 2022/04/04 09:27
- その他(暮らし・生活・行事) 日本で一番大きいオンライン求職、求人サイトはどこですか。 Recruit Agent , JAC R 1 2022/07/13 19:24
- スピーカー・コンポ・ステレオ MCカートリッジのオススメを教えてください。 お時間割いてくださりありがとうございます。 当方、現在 10 2022/07/04 14:20
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- Android(アンドロイド) Androidスマホの時刻の自動同期の頻度を短くしたい 4 2022/12/02 17:29
- アイドル・グラビアアイドル 嵐の中でも櫻井翔がMC向き扱いだったけど。 むしろ バラエティやらみていて 爺ちゃん ばあちゃん 国 2 2022/12/03 19:49
- 物理学 相対性理論のエネルギーについて 3 2023/02/10 15:59
- UNIX・Linux メールアドレスにホスト名が入らないようにする設定 2 2022/06/23 21:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
テキストファイルから読み込ん...
-
縦横比率のを変えずに画像のサ...
-
別のアプリケーションのテキス...
-
テキストボックスにセルの値を...
-
VBScriptでMsgBoxのYesNoボック...
-
python ボタンを押すと複数の関...
-
五芒星は、悪魔崇拝とどういう...
-
全てのテキストボックスをセル...
-
テキストボックスの中身をリセ...
-
フォームの生成と破棄
-
YOASOBI
-
photoshopで書いた四角の枠の中...
-
flashのおみくじのような(4桁...
-
変数に256文字以上のテキストを...
-
'2465'指定した式で参照してい...
-
ランダムに4桁の数字を表示する...
-
VB6.0のHideのバグ?
-
四乗根を英語で言うと・・・
-
ADに参加していないPCからADサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
VBAユーザーホームテキストボッ...
-
外部SWFファイルを再生バーでコ...
-
縦横比率のを変えずに画像のサ...
-
テキストファイルから読み込ん...
-
自由線とレイヤー画面との位置関係
-
ピクチャーコントロールのデバ...
-
四角形の端っこをドラッグした...
-
AS3でうまく動作しません
-
看護師です。体温表のマクロを...
-
AS3.0 でフェードイン、
-
ステージの背景画像のみ拡大縮...
-
AS3 mc0~5をまとめて処理する
-
AS3.0でマウスボタンの状態を調...
-
AS3.0 設置した画像を次のラベ...
-
外部より取り込んだ.swfのサイ...
-
spriteで直線を引いたときに線...
-
xmlから作ったサムネールを移動...
-
Flash マウスの位置で速さの変...
-
flash ブラウザのサイズに合わ...
おすすめ情報