メイン 迷える子羊の部屋【初心者専用】 子のサイズを変えずに親のサイズだけを変更? | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
katze_0204 | Åê¹ÆNo.49569 投稿日時: 2012-12-20 14:54 |
新米 居住地: 投稿: 4
使用環境:
Mac OS X10.6.8 FlashCS5 |
子のサイズを変えずに親のサイズだけを変更? 初めて質問させていただきます。
読みづらい箇所があったらごめんなさい。 制作環境はMacOSX10.6.8、FlashCS5です。 テキストフィールドを子に持つ外部クラス(スプライト)を、tweenerを使って拡大/縮小させようと考えています。 親スプライトのwidthとheightをtweenerで変更すると、つられてテキストフィールドのフォントサイズまで変わってしまいました。 調べたところ、widthとheightを変更するとscaleX/Yの値が変更され、そのせいで子のサイズまで変わってしまうことが分かりました。 それをふまえてコードを書いてみたのですが、トゥイーンのせいか、どうしてもテキストフィールドが若干動いてしまいます。 子のテキストフィールドを全く動かさずに、親のスプライトのサイズだけを変更させることはできるのでしょうか? 以下にMain.as(ドキュメントクラス)とOuter.as(外部クラス)のコードを置きますので、ご指導・ご教授をいただけたら幸いです。 Outer.as
Main.as
どうぞよろしくお願いいたします。 |
ひろゆき | Åê¹ÆNo.49570 投稿日時: 2012-12-20 18:47 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 子のサイズを変えずに親のサイズだけを変更? 大きさを変化させたいものは、Outer内で、別のSpriteとして描き、
Tweenerで反応させるスクリプトも、Outer内に持たせた方が良いのでは?
|
ひろゆき | Åê¹ÆNo.49571 投稿日時: 2012-12-20 18:55 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 子のサイズを変えずに親のサイズだけを変更? コードを書くなら、省略しないでほしいんですけどね。
Main.as
Outer.as
|
katze_0204 | Åê¹ÆNo.49572 投稿日時: 2012-12-21 18:23 |
新米 居住地: 投稿: 4
使用環境:
Mac OS X10.6.8 FlashCS5 |
Re: 子のサイズを変えずに親のサイズだけを変更? ひろゆき様、ご回答ありがとうございます。
ご提示頂いたスクリプトで想定していた動きができました。ありがとうございます。 またスクリプトの省略についてもご指摘ありがとうございます。以後、気を付けます。 ご回答に質問を重ねてしまって申し訳ないのですが、最初に私が記述したスクリプトですと、子まで拡大されますよね。 親→子という関係から考えれば、拡大が継承されてしまうのは分かるんですが、実際にtraceでSpriteとTextFieldのサイズを測ると、 拡大前
拡大後
というように、数値上ではTextFieldのサイズが変わっていないんです。 この場合、TextFieldの(40, 24)というのは、何を基準にした数値なんでしょうか? 一応はピクセル単位なので、stageを基準にした絶対的な数値かと思っていたんですが、挙動を見ると親のSpriteを基準にしているのかなぁ、とも思えますし……。 もしそうなら、親のサイズを変えると子のサイズは絶対に変わってしまう、ということなんでしょうか? お時間があれば、ご回答いただけると幸いです。 |
ひろゆき | Åê¹ÆNo.49573 投稿日時: 2012-12-21 18:32 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 子のサイズを変えずに親のサイズだけを変更? 絶対的な値とか小難しいことを考えるから訳がわからなくなるんで。
TextFieldのwidth, heightは、そのTextFieldの横幅と高さでしょう。 それだけです。 そのTextFieldを内包した親のSpriteのスケールが変わるから、内包されているものも 大きく「見え」たり、小さく「見え」たりするだけの話です。
同じ「大きさ」のSprite(sprite1, sprite2)を生成してあります。 ドキュメントクラスにaddChild()したsprite1は、100*100に見えますし、width, heightもそれぞれ100です。 しかし、スケールを2倍にしたspriteにaddChild()したsprite2は、200*200に見えますが、 実体としてのwidth, heightもそれぞれ100です。
|
野中文雄 | Åê¹ÆNo.49574 投稿日時: 2012-12-21 19:32 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 子のサイズを変えずに親のサイズだけを変更? Flashのタイムラインに[テキストツール]でTextFieldインスタンスを置いて、ムービークリップシンボルに変換して試されればよいのではないでしょうか。[変形]パネルでムービークリップインスタンスを2倍にした後、そのシンボルを編集して[プロパティ]インスペクタでTextFieldインスタンスのサイズがどう変わったか、お確かめください。
ちなみに、「親のSpriteを基準」にすることは「相対」といいませんか。 引用: katze_0204さんは書きました: |
katze_0204 | Åê¹ÆNo.49575 投稿日時: 2012-12-25 14:01 |
新米 居住地: 投稿: 4
使用環境:
Mac OS X10.6.8 FlashCS5 |
Re: 子のサイズを変えずに親のサイズだけを変更? ひろゆき様
またまたコード付きで説明頂いて、ありがとうございます。 親のサイズが変わったら子のサイズも「変わって見える」ということですね。 どうにかして、addChildした状態のまま親と子のサイズ変更を別々に行えないかとそればかり考えていたもので……お手数をおかけしてしまってすいませんでした。 それぞれ別に処理していくという形でコーディングを継続したいと思います。ありがとうございました。 |
katze_0204 | Åê¹ÆNo.49576 投稿日時: 2012-12-25 14:12 |
新米 居住地: 投稿: 4
使用環境:
Mac OS X10.6.8 FlashCS5 |
Re: 子のサイズを変えずに親のサイズだけを変更? 野中様
ご回答ありがとうございます。 仰った通りの方法で確認してみました。何となくではありますが、サイズの関係が分かったように思います。 せっかく教えていただいたのに曖昧な感想になってしまって申し訳ないのですが……。しっかりと理解できるまで、引き続き勉強したいと思います。 また「絶対?」に関しての補足と言いますか言い訳と言いますか。 「親のサイズを変更すると子のサイズも強制的に変更されるのか?」ということが聞きたかったんです。 位置関係の話をしている時に、形容詞として「絶対」を使ったら混同されてしまうのも仕方ないですよね……以後、気を付けます。 引用:
ご教授頂いて、ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |