アプリ版:「スタンプのみでお礼する」機能のリリースについて

www.i-tv.in/test/shop_menu.swf

上記のものスクリプトの参考書を見ながら作りました。マウスが摩擦をおく基準が上の方になっています。
これを中央にもっていきたいと思いましたが、このような単純なことは調べても出てきません。どなかた教えて頂ければ幸いです。宜しくお願いします。

function start_me(success:Boolean):Void {
if (success == true) {
for (var i = 1; i<=menu_num; i++) {
var menu_str:String = "menu"+i;
_root.attachMovie("menu",menu_str,i);
obj_array[i] = eval(menu_str);
obj_array[i].num = i;
obj_array[i].mctext = i;
obj_array[i]._y = 125*(i-1);
obj_array[i]._x = 10;
obj_array[i]._alpha = 40;
var jpg_str:String = obj_xml.firstChild.childNodes[i-1].firstChild;
obj_array[i].jpg_mc.loadMovie(jpg_str);
obj_array[i].onEnterFrame = scrollphoto_me;
obj_array[i].onPress = press_me;
obj_array[i].onRollOver = roll_me;
obj_array[i].onRollOut = rollout_me;
}
} else {
seltext = "xml read error";
}
}

A 回答 (2件)

まず、参考書をお持ちのようですが、それに基づいて記述されたスクリプトは理解できているのでしょうか



記述された内容はxmlを読み込み成功した際にメニュー数に基づき各サムネイルを配置・xmlから持ってきたjpgURLを読み込ませる・スクロールにより消えるイベントを追加・ボタンとしての機能追加、失敗したらエラー処理等、かな?と"推測"しかできないのです

肝心な全体をスクロールさせる元となるスクリプトがないというわけです

解決方法ですが、ここからも"推測"になります

_root上なりどこかのonEnterFrameもしくはそれを定義しているfunction、可能性としてはscrollphoto_me()を定義している箇所に

"_ymouse"

という記述はないでしょうか

そして、恐らくその_ymouseと比較している変数なり、数値が質問者さんの仰る"マウスが摩擦をおく基準"になっていると思われます

そこをステージサイズの中央Y座標に合わせれば解決されるかもしれませんので、ご確認下さい

scriptが長い場合は検索機能があるので、そちらを使うと見つけるに手っ取り早いと思います

もう一度申し上げますが、あくまでも"推測"ですので、参考までに
    • good
    • 0
この回答へのお礼

お手数おかけして申し訳ございません。教えて絵頂いてありがとうございます。スクリプトは現在勉強中です。

var speed:Number = (_root._ymouse)*friction;


var speed:Number = (_root._ymouse-center-120
)*friction;

にしたらなりました。

お礼日時:2006/09/12 18:35

#1の方の推測は当たっていると思います。



> var speed:Number = (_root._ymouse)*friction;
> を
> var speed:Number = (_root._ymouse-center-120)*friction;
> にしたらなりました。

おめでとうごさいます!

あのですね。
#1の方もご指摘通り,関係ないスクリプトばかりご質問で書かれていますので,
失礼かと思いましたが少し Hugらせて頂きました。
http://www.forest.impress.co.jp/lib/pic/video/fl …


ご質問で書かれているスクリプトではなく,
そのスクリプトのずっと下の方に,

var center = (Stage.width / 2);

という変数 center を設定している行が見えるのですが,
(見えますが私は超能力者ではありませんよ。)
この center の値を受けて,

((_root._ymouse - center) * friction);

という値が決まるようになっています。
ステージの幅を基準にマウスの y 座標の基準点を決めるのは変ですね。
作成されたSWFは,ステージの横幅が狭いSWF(165px)なので,
マウスの基準座標が上の方(165px/2=82.5px)に行くのだと思います。
ですから,

var center = (Stage.width / 2);
 ↓ 変更 ↓
var center = (Stage.height/2);


だと思います。
さらに微調整が必要でしたら,この center の値に プラスマイナスしてみてください。

---例---
var center = (Stage.height/2)+25;

単にスクリプトをザッと見てみたけで,実際には動作させていないので,
うまく行くかどうかはわかりません。
私の回答も単なる推測です。
    • good
    • 0
この回答へのお礼

ありがとうございます。助かりました。
すごいですね!ちゃんとありました・・・
このページはこのスクリプトで動いているとすぐわかるんですね。さすがです。

あと大変恐縮ですかXMLのほうに質問しているんですが、おわかりになりましたらで結構なのでなにかアドバイスをお願い致します。

お礼日時:2006/09/12 22:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!