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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     startDragの座標を指定する方法
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ゲスト
Åê¹ÆNo.39216
投稿日時: 2008-6-20 9:44
startDragの座標を指定する方法
初心者です。よろしくお願いします。

mcが拡大縮小されても、拡大(もしくは縮小された)mcがドラックでスムーズに移動できるようにしたいと思います。
ですが、startDrag()の座標をどのように指定したらいいのかわからず、困っています。

まず、拡大・縮小・移動したいmc(仮にa_mcとします)のサイズはW:1500、H:1300です。
基準点は左上で、初期値(最初の座標)はX:-420、Y:-310です。

そして、a_mcに対しマスクがかけてあり、そのマスク内で拡大・縮小・移動ができるようにしてあります。
マスクのサイズはW:750、H:650です。
マスクの基準点は左上、初期値の座標はX:0、Y:0です。


現在のスクリプトは下記のとおりです。

_root.a_mc.onMouseMove = function() {
this._root.a_mc.startDrag(false,-300,-150,-550,-350);
};

更に、_rootに配置しているプラスとマイナスのmcには、下記のスクリプトを記述しています。

//マスク(スクリーン)の座標
var x0 = 0;
var y0 = 0;

//マスク(スクリーン)サイズ
var ws = _root.mask._width;
var hs = _root.mask._height;

//拡大率
var rate = 5;

//+ボタンをクリックした時
plus.onPress = function() {
if (_root.a_mc._xscale<200) {
_root.a_mc._xscale += rate;
_root.a_mc._yscale += rate;
_root.a_mc._x -= (x0+ws/2-_root.a_mc._x)*rate/_root.a_mc._xscale;
_root.a_mc._y -= (y0+hs/2-_root.a_mc._y)*rate/_root.a_mc._yscale;
}
};

//?ボタンをクリックした時
minus.onPress = function() {
if (_root.a_mc._xscale>80 && _root.a_mc._x<=x0) {
_root.a_mc._xscale -= rate;
_root.a_mc._yscale -= rate;
_root.a_mc._x += (x0+ws/2-_root.a_mc._x)*rate/_root.a_mc._xscale;
_root.a_mc._y += (y0+hs/2-_root.a_mc._y)*rate/_root.a_mc._yscale;
}
};

ちなみに、
_root.a_mc._x += (x0+ws/2-_root.a_mc._x)*rate/_root.a_mc._xscale;
_root.a_mc._y += (y0+hs/2-_root.a_mc._y)*rate/_root.a_mc._yscale;
は、現在表示されている「a_mc」を拡大する時に中心をずらさないための計算式なのですが、他の方が作成したネット上にあるスクリプトを真似したもので、なぜこのような計算式になっているのか理解できないまま使用しています。

このスクリプトをムービープレビューで実行し、ドラックで移動しようとすると、ムービーが再生された直後の状態(拡大・縮小しないままの状態)では、この座標の指定で隙間が出てしまうこともなく、また、表示させたい箇所まで移動できないという事もなくスムーズに移動できるのですが、a_mcを拡大縮小すると、移動しすぎて隙間ができてしまったり、また、表示させたいところまで移動できなくなってしまいます。
拡大・縮小するごとに、this._root.a_mc.startDrag(false,-300,-150,-550,-350);の座標の比率を変えるような計算式を組み込まなくてはならないと予想していますが、理解不足でうまくゆきません。

教えを請いたく思います。
どうぞ、よろしくお願い致します。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » startDragの座標を指定する方法 ゲスト 2008-6-20 9:44
     Re: startDragの座標を指定する方法 obact 2008-6-20 18:40
       Re: startDragの座標を指定する方法 obact 2008-6-20 19:45
         Re: startDragの座標を指定する方法 ゲスト 2008-6-20 22:17
           Re: startDragの座標を指定する方法 obact 2008-6-21 21:07
             Re: startDragの座標を指定する方法 ujuworld 2008-6-22 12:29
               Re: startDragの座標を指定する方法 ゲスト 2008-6-24 9:26
               Re: startDragの座標を指定する方法 ゲスト 2008-6-28 17:35
                 Re: startDragの座標を指定する方法 ujuworld 2008-6-29 2:09
                   Re: startDragの座標を指定する方法 ゲスト 2008-6-29 19:05
             Re: startDragの座標を指定する方法 ゲスト 2008-6-24 9:24
               Re: startDragの座標を指定する方法 obact 2008-6-24 9:51

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