archive-com.com » COM » N » NITOYON.COM

Total: 757

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • AS3 で双方向データバインディング - てっく煮ブログ
    Array private function appComplete void BindingUtils bindProperty list selectedItems this selected BindingUtils bindProperty this selected list selectedItems mx Script mx List id list dataProvider items mx Application list selectedItems が変更されると this selected が書き換えられ 今度は this selected が変更されるので list selectedItems を書き換えて と無限に関数呼び出しが発生してしまうから list selectedItems と this selected が等しくなればオーバーフローは発生しないはずなのだけど List クラスは selectedItems を返すときに 新たに Array を生成して返しているので いつまでたっても等しくならずにオーバーフローしてしまうというわけだ mx controls listClasses listBase 参照 問題ない例 当初はこの例を問題ある例と紹介していましたが 問題ありませんでした package import flash display Sprite import mx binding utils public class TwoWayBindingNg extends Sprite Bindable public var obj1 Object Bindable public var obj2 Object public function TwoWayBindingNg void BindingUtils bindProperty this obj1 this obj2 BindingUtils bindProperty this obj2 this obj1 obj1 a 1 stack overflow この例だと obj1 obj2 になった時点で無限に呼び出しは発生ししない そこで汎用化 フラグをつけて 2回以上呼び出さないようにする関数としてまとめ上げて 何も考えずに相互データバインディングできるようにする public static function createTwoWayBinding src1 Object prop1 String src2 Object prop2 String void var flag Boolean false ChangeWatcher watch src1 prop1 function event Event void if flag flag true src2 prop2 src1 prop1 flag false ChangeWatcher watch src2 prop2 function event Event void if flag flag true src1 prop1 src2 prop2 flag false これで OK 最初の MXML も BindingUtils bindProperty list selectedItems this selected BindingUtils bindProperty this selected list selectedItems を次のように書き換えれば動くようになる createTwoWayBinding this selected list selectedItems 便利そうなので TwoWayBinding クラスにした Spark Project の Snippets に

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/09/10/as-two-way-binding/ (2016-02-13)
    Open archived version from archive


  • AS3 で RSS アイコンを描画 - てっく煮ブログ
    true 外側の角円四角 var base Shape new Shape base graphics beginFill 0xcc6611 base graphics drawRoundRect 0 0 SIZE SIZE ROUND ROUND base graphics endFill addChild base 内側の角円四角 var base2 Shape new Shape base2 graphics beginFill 0xee7722 base2 graphics drawRoundRect 1 1 SIZE 2 SIZE 2 ROUND 1 ROUND 1 base2 graphics endFill base2 filters glowFilter addChild base2 グラデーション var gross Shape new Shape gross graphics beginGradientFill linear 0xffffff 0x000000 0 2 0 2 0 255 matrix gross graphics drawRoundRect 0 0 SIZE SIZE ROUND ROUND gross graphics endFill gross graphics beginGradientFill linear 0xffffff 0xffffff 0xffffff 0 0 2 0 0 112 255 matrix gross graphics drawRoundRect 0 0 SIZE SIZE ROUND ROUND gross graphics endFill gross blendMode BlendMode OVERLAY addChild gross var white Shape new Shape white graphics beginFill 0xffffff white graphics drawCircle 36 96 12 white graphics endFill drawPattern1 white graphics drawPattern2 white graphics drawPattern3 white graphics addChild white その1 素直に外枠をなぞるパスを作る private function drawPattern1 g Graphics void g beginFill 0xffffff g moveTo 24 52 arcTo g 24 108 56 Math PI 2 0 arcTo g 24 108 40 0 Math PI 2 g endFill g beginFill 0xffffff g moveTo 24 22 arcTo g 24 108 86 Math PI 2 0 arcTo g 24 108 70 0 Math PI 2 g endFill その2 線として弧を描く private function drawPattern2 g Graphics void g moveTo 24 60 g lineStyle 16 0xffffff 1 false normal CapsStyle NONE arcTo g 24 108 48 Math PI 2 0 g lineStyle 0 0 0 g moveTo 24 30 g lineStyle 16 0xffffff 1 false normal CapsStyle NONE arcTo g 24 108 78 Math PI 2 0 g lineStyle 0 0 0 その3 扇から扇を引く private function drawPattern3 g Graphics void g beginFill 0xffffff drawPie g 24 106 56 Math PI 2 0 drawPie g 24 106 40 Math PI

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/08/30/rss-icon-as3/ (2016-02-13)
    Open archived version from archive

  • lineTo と moveTo あたりのケーススタディ - てっく煮ブログ
    lineTo 0 50 graphics lineTo 100 100 graphics endFill graphics moveTo 150 100 graphics curveTo 240 50 150 0 始点と終点が結ばれて 内側が beginFill で指定した色で塗られた endFill のあとも 線のスタイルは変化していない点に注意したい 塗りの情報と線の情報は独立のようだ 塗りの情報は endFill を呼び出せば初期化される では 線のスタイルを初期化するにはどうするかというと lineStyle メソッドを引数なしで呼び出せばよい 例えば 次のように endFill の前に線のスタイルを初期化してみると graphics beginFill 0xffffcc graphics lineStyle 3 0xff0000 graphics moveTo 100 0 graphics lineTo 0 50 graphics lineTo 100 100 graphics lineStyle graphics endFill こうなった パスを閉じる線が太さ0で初期化されているのが分かる Case 3 beginFill しっぱなしで endFill しない 最初に beginFill して endFill しない graphics beginFill 0xffffcc graphics lineStyle 3 0xff0000 graphics moveTo 100 0 graphics lineTo 0 50 graphics lineTo 100 100 graphics moveTo 150 100 graphics curveTo 240 50 150 0 両方塗られる moveTo すると その時点でパスが閉じられて 塗られるようだ 注目すべきは 右の図形も同じ色で塗られているところ moveTo は 塗りを発生させるが 塗りの情報は維持されたまま 次の図形にも適用されるようだ Case 2 では 右の図形が塗られていないところと比較すると面白い Case 4 2つ目のみ beginFill moveTo のあとに beginFill で塗りを設定 graphics lineStyle 3 0xff0000 graphics moveTo 100 0 graphics lineTo 0 50 graphics lineTo 100 100 graphics moveTo 150 100 graphics beginFill 0xffffcc graphics curveTo 240 50 150 0 想像通り でも moveTo の前に beginFill を持ってくると graphics lineStyle 3 0xff0000 graphics moveTo 100 0 graphics lineTo 0 50 graphics lineTo 100 100 graphics beginFill 0xffffcc graphics moveTo 150 100 graphics curveTo 240 50 150 0 ナニコレ 謎だ どうも beginFill せずに描画したパスに対して 途中で beginFill を呼び出すとこうなるようだ beginFill

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/08/12/line-to-line-style-case-study/ (2016-02-13)
    Open archived version from archive

  • beginFill と endFill のケーススタディ - てっく煮ブログ
    を持ってきてみる graphics beginFill 0xff0000 graphics drawCircle 0 100 100 graphics endFill graphics drawCircle 100 100 100 graphics drawRect 30 100 300 50 graphics endFill 1つ目の円しか描画されない endFill を呼んだ段階で 塗りの情報は初期化されて それ以降は endFill されても何も塗られないんだと推測できる Case 3 毎回 beginFill してみる graphics beginFill 0xff0000 graphics drawCircle 0 100 100 graphics beginFill 0xff0000 graphics drawCircle 100 100 100 graphics beginFill 0xff0000 graphics drawRect 30 100 300 50 全部塗られる Case 1 のように XOR になることもない これは たぶん beginFill

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/08/10/begin-fill-end-fill-case-study/ (2016-02-13)
    Open archived version from archive

  • AS3 で iPhone 風ボタンを描画 - てっく煮ブログ
    iPhoneButton extends Sprite private const color int 0x1960CA private const SIZE int 60 private const ROUND int 20 public function iPhoneButton void var matrix Matrix new Matrix matrix createGradientBox SIZE SIZE Math PI 2 var base Shape new Shape base graphics beginFill color base graphics drawRoundRect 0 0 SIZE SIZE ROUND ROUND addChild base var border Shape new Shape border graphics lineStyle 1 0xffffff 1 border graphics lineGradientStyle linear 0xffffff 0xffffff 0xffffff 1 0 3 1 0 128 255 matrix border graphics drawRoundRect 1 1 SIZE 2 SIZE 2 ROUND ROUND border blendMode BlendMode OVERLAY addChild border var glowTop Shape new Shape glowTop graphics beginGradientFill linear 0xffffff 0xffffff 1 0 2 0 128 matrix glowTop graphics drawEllipse SIZE 2 SIZE 2 SIZE 2 SIZE glowTop blendMode BlendMode OVERLAY addChild glowTop var mask Shape new Shape mask graphics beginFill 0 mask graphics drawRoundRect 0 0 SIZE SIZE ROUND ROUND addChild mask glowTop mask mask var glowBottom Shape new Shape glowBottom graphics beginGradientFill linear 0xffffff 0xffffff 0 1 224 255 matrix glowBottom graphics drawRoundRect 0 0 SIZE SIZE ROUND ROUND glowBottom blendMode BlendMode OVERLAY addChild glowBottom var filter DropShadowFilter new DropShadowFilter 2 90 0x000000 0 7 base filters filter 2007 08 07

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/08/01/as3-iphone-button/ (2016-02-13)
    Open archived version from archive

  • AS3 は FLASHer には使いにくい? - てっく煮ブログ
    それに触発された void element blog さんの AS1MovieClipクラス がおもしろいので ちょっと見てみました fladdict さん製 を見てみた http twitter com fladdict statuses 43108192 から開発中のコードがのぞけます DynamicSprite クラスの package sketchbook display import flash display Sprite dynamic public class DynamicSprite extends Sprite という実装が素敵 前出の Sprite にプロパティつけれない という問題は解決しますね 他にも global を実現するためのクラスがあったり 描画が簡単になりそうだったり 色を扱うためのクラスライブラリがあったりします SpriteHelper はブログの記事にもあるとおり Sprite を継承するのではなく クラス内部に変数として保持しています オブジェクト指向用語でいう委譲 になります AS1MovieClip void element さん製 を見てみた AS1 や AS2 と同じように使える という点に主眼をおいて作成されています 深度管理も今まで通り createEmptyMovieClip や attachMovie swapDepths のメソッドはもちろん x などのアンダースコアつきのプロパティも使えます AS3 ではα値は 0 1 ですが alpha では AS1 AS2 時代と同様 1 100 で指定できるようになってます バリバリの FLASHer さんは嬉しいんじゃないでしょうか AS1MovieClip は MovieClip クラスを 継承して実装 されています 委譲として実装している fladdict さんと対照的でおもしろい delete mc onEnterFrame できない という話ですが 記事にもある通り Proxy クラスを継承するしかないでしょうが その場合 継承ではなく委譲で実装する必要が出てきますね 継承と委譲 それぞれの利点など Sprite や MovieClip のことをあえて MC と略します 継承 void element さん new で作成したインスタンスを CS3 や AS3 の MC に addChild できる でも CS3 や AS3 が生成した MC に適用することはできない MovieClip の派生クラスを機能拡張することもできない 委譲 fladdict さん MC とその派生クラス に一皮かぶせることができる でも mc is Sprite や mc is MovieClip が false になる かぶせた中身を取り出すためには mc target と書かなきゃならない 継承や委譲の使い分けについては オブジェクト指向を語る上では議論が尽きないところで それぞれにメリット デメリットがあって難しいところです 追記 2007 5 9 0 25 secondlife さんに subtech Pink Blossom Diary StrikerS SpriteHelper にて補足してもらってます stash 案もおもしろいですね この辺は本当に好みの世界になってきそう Progression 開発者の nium さんが で 結局 FLASHer 的に AS3 0 って blog nium jp にて AS3 の本当にめんどくさいところを書いてくれています こちらも かなり同意 特に イベント登録と navigateToURL が煩雑になる

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/05/08/p1/ (2016-02-13)
    Open archived version from archive

  • FABridge を試してみた - てっく煮ブログ
    を楽々操作できる FABridge てっく煮 FABridge の出発点は id brazil さんの FlashProxy でした これを汎用化すべく AS3 0 で書き直していたのですが 途中で FABridge の存在を思い出してソースを見てみたら あら不思議 自分の設計とほとんど同じ しかも高機能 というわけで 結局 FABridge を触ったり ソースを眺めたりしてました JS AS の両側にキャッシュがあったり 参照カウントがあったり ソースもおもしろかったです 基本的な設計思想は FlashProxy と同じなので ややこしければ FlashProxy を見てみるといいかもしれません Tweet 2007年04月15日 編集履歴 ActionScript Trace Rabbit がおかしい Flex の Bindable 入門 Please enable JavaScript to view the comments powered by Disqus comments powered by Disqus About Profile nitoyon にとよん 京都のベンチャー会社勤務 プログラマ たまに趣味でデザイン 詳細 Subscribe

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/04/15/fabridge/ (2016-02-13)
    Open archived version from archive

  • Tamarin でマルチスレッド(挫折) - てっく煮ブログ
    1000 i System write i System threadCreate proc System threadCreate proc avmplus に System threadCreate 関数を実装して 意気揚々と動かしてみたところ こんな警告が出力されてしまいました Unsafe access to GC from wrong thread Tamarin のソースを grep してみると MMgc GC cpp に該当部分発見 void GC CheckThread ifdef DEBUG ifdef WIN32 GCAssertMsg disableThreadCheck m gcThread GetCurrentThreadId Unsafe access to GC from wrong thread endif endif つまり Tamarin のガベコレはマルチスレッドをサポートしていない ということらしい ActionScript の仕様上 マルチスレッド対応で作る必要はないから考えてみれば当たり前ですね ちなみに Tamarin のソースには ECMAScript の仕様で出てくる Internal Method の Function

    Original URL path: http://tech.nitoyon.com/ja/blog/2007/03/13/p1/ (2016-02-13)
    Open archived version from archive



  •