
ActionScriptを勉強中です。分からないことがあるので質問させていただきます。
ステージ上にマスクをかけたムービークリップ(インスタンス名:mc)があり、
そのmcを拡大ボタンと縮小ボタンを使い拡大/縮小できるようにしています。
mcが拡大されている時には、mc自体をドラッグして動かせるようにしています。
レイヤー構造は
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1、ボタン:拡大ボタンと縮小ボタンを配置
2、マスク
---マスクの対象:mcを配置
3、背景:背景というか枠を書いています
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
となっております。
mcにには
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
on (press) {
left = Stage.width-this._width/2-2;
top = Stage.height-this._height/2-98;
right = this._width/2+2;
bottom = this._height/2+2;
this.startDrag(false, left, top, right, bottom);
}
on (release, releaseOutside) {
this.stopDrag();
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
拡大ボタンには
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
on (release) {
if (mc._yscale < 300) {
mc._xscale = mc._yscale += 100;
} else {
mc._xscale = mc._yscale = 300;
}
}ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
縮小ボタンには
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
on (release) {
if (mc._yscale > 100) {
mc._xscale = mc._yscale -= 100;
} else {
mc._xscale = mc._yscale = 100;
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
と書いています。
拡大した時の挙動は問題ないのですが、縮小する時の挙動に問題があります。
mcの中心を基点にしているため、端の方でで縮小すると余白が見えてしまいます。
この余白を見せないためにはどうしたら良いのでしょうか?
素人考えでhitTest()を使えば良いのかと思っているのですが、なかなかうまくいきません。
どうしたらよいのかご教示いただけると助かります。よろしくお願いいたします。
制作環境はCS4でAS2.0です。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
シンボルに変換する際にムービークリップmcの基準点を中心にしてください。
デフォルトでは左上が基準点になっているので注意。
//ドラッグするムービークリップ インスタンス名mc
onClipEvent(Load){
mw = this._width;//mcの基準となるwidth
mh = this._height;//mcの基準となるheight
xs = this._x;//mcの基準となるx座標
ys = this._y;//mcの基準となるy座標
}
on (press) {
var top = ys + (mh - this._height) / 2;
var left = xs - (mw - this._width) / 2;
var right = xs + (mw - this._width) / 2;
var bottom = ys - (mh - this._height) / 2;
this.startDrag(false, left, top, right, bottom);
}
on (release, releaseOutside) {
this.stopDrag();
}
//拡大ボタン
on (press) {
var tgt = _root.mc;//ターゲットの設定
var inc = 10;//拡大量
if (tgt._yscale<300) {
tgt._xscale = tgt._yscale += inc;
} else {
tgt._xscale = tgt._yscale = 300;
}
}
//縮小ボタン
on (press) {
var tgt = _root.mc;//ターゲットの設定
var dec = 10;//縮小量
if (tgt._yscale >100 && tgt._yscale - 100 > dec) {
tgt._xscale = tgt._yscale -= dec;
}else{
tgt._xscale = tgt._yscale = 100;
}
if(tgt._x != tgt.xs){
tgt._x=tgt.xs;
tgt._y=tgt.ys;
}
}
期待したとおりの動きになっているか分りませんが。
ご回答ありがとうございます。
お礼が大変遅くなってしまい申し訳ございません。
教えていただいた通りにやってみたところ、確かに余白は表示されなくなりました。
しかし、期待していた動きとは少し違いました(すみません)。
教えていただいたものだと、常にmcの中心を基点に縮小されてしまいます。
mcが以下のものだとして
┌─┬─┬─┐
│1│2│3│
├─┼─┼─┤
│4│5│6│
├─┼─┼─┤
│7│8│9│
└─┴─┴─┘
はじめの状態
┌─┬─┬─┐
│1│2│3│
├─┼─┼─┤
│4│5│6│
├─┼─┼─┤
│7│8│9│
└─┴─┴─┘
拡大した状態
1│ 2 │3
─┼───┼─
│ │
4│ 5 │6
│ │
─┼───┼─
7│ 8 │9
拡大したものをドラッグ
│ 4 │ 5
│ │
├───┼──
│ │
│ 7 │ 8
│ │
└───┴──
ここで縮小すると
1│ 2 │3
─┼───┼─
│ │
4│ 5 │6
│ │
─┼───┼─
7│ 8 │9
このようになってしまいます。
ちなみに私がはじめの質問に書いたものは
■■├───┼
■■│ │
■■│ 7 │
■■│ │
■■└───┴
■■■■■■■
■■■■■■■
こんな感じでした(■:余白)。
これを7の左下の角に向かって縮小させたいと思っています。
大変分かりづらい説明の仕方で申し訳ないのですが、
もしお分かりでしたらご教示いただけると助かります。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
-
Adobe Flash Player
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホでサイトの画像を長押し→...
-
potplayerについて質問です
-
ゲオでカードを作るのは何歳か...
-
flash.ocxエラーについて
-
ウェブサイトで Flash が事実上...
-
chrome flash
-
uwscでExcelに自動記入
-
flash (.swf) を編集したい
-
arduino プログラムについて
-
Form内のselectを連動させるに...
-
ActionScript 3.0についての質...
-
laptop go2からの買い替え、lap...
-
Flashでの画像、フェードイン・...
-
私のコンピューター上のファイ...
-
Flash Builder 4.7 デザインモード
-
FLASHでゲームを作っていた人は...
-
Adobe(マクロメディア)のFLAS...
-
Excel VBAについて。
-
フラッシュゲームアーカイブ2
-
パソコンのリカバリーについて
おすすめ情報