【AS3】FlashDevelop【フリー】 (601レス)
【AS3】FlashDevelop【フリー】 http://mevius.5ch.net/test/read.cgi/swf/1216151218/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
150: Now_loading...774KB [sage] 2009/08/14(金) 21:08:05 ID:w4LLHFJe あとこういう謎仕様と言うか、Flashの中の動きを想像して予想しないと 一見何でも無いような事すら書けないってのはちょっと苦痛な気もする・・・ 理由わかる? 例1) var w:int = 200; var h:int = 50; var sp:Sprite = addChild(new Sprite()) as Sprite; sp.graphics.beginGradientFill(GradientType.LINEAR, [0xffffff, 0x000000], [1.0, 1.0], [200, 255]); sp.graphics.drawRoundRect(0, 0, w, h, 8, 8); sp.graphics.endFill(); 例2) 〜例1と同じ前略〜 var sp:Sprite = addChild(new Sprite()) as Sprite; sp.width = w; sp.height = h; 〜例1と同じ後略〜 空の Sprite の width/height を設定するかしないかで描画の内容が変わるって一体・・・ http://mevius.5ch.net/test/read.cgi/swf/1216151218/150
152: ひきプロ ◆HIRO2ZQ2Xo [sage] 2009/08/14(金) 23:21:08 ID:H3Ft1e6v >>150 この問題はなんで起こるんでしょうねw ぼくも疑問に思っていました。 width・height への値の代入は、 「描き始める前に領域を確保する」 という効果が出ないようですね。 これは直感と反する動作なので謎の仕様に見えてしまいます。 試しに、図形を描き終わった後から width・height を再設定してみると、 scaleX, scaleY に値を代入したかのように拡大縮小されますね。 「後からサイズを変える」 という効果はあるようです。 trace(sp.scaleX); を表示してみると、再設定されていることが確認できました。 ということは、最初に width・height に値を代入すると、 scaleX、scaleY が 0 に設定されてしまうことになり、 その後の描画内容が画面に出ないという動作になってしまいます。 以上のことから想像すると、width・height のセッターの動作が、 function set width(value:Number):void { this.scaleX = this.width / value; } というようになっているのではないかなと。 width の初期値は 0 なので、何か値を掛けたとしても 0 になってしまいます。 http://mevius.5ch.net/test/read.cgi/swf/1216151218/152
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.409s*