Home > action script > ロードした画像達をタイル上に並べる

ロードした画像達をタイル上に並べる

CASA Framework の LoadGroup でまとめてロードしたサムネイル画像を、所定サイズ内に収まるようにタイル上に並べたくてとりあえず書いたコード。

今から根本的に違うもの作るから一時保管メモ。

var thumbs:Array = thumbLoadGroup.getLoads();
var preMc:MovieClip;
for(var i:Number=0;i<thumbs.length;i++){
     var mc:MovieClip = thumbs[i].getMovieClip();
     if(preMc._x + preMc._width + mc._width <= this._width){
          mc._x=preMc._x+preMc._width;
          mc._y=preMc._y;
     }else{
          mc._x=0;
          mc._y=preMc._y+preMc._height;
     }
     preMc = mc;
}

preMc は直前に処理したムービークリップ。LoadGroup 完了後にこの処理をするので、getMovieClip() して _width や _height もキチンと取得できる。

forループ1発目の preMc._x とかは undefined だけど 0 として扱ってくれるので気にしない。

6行目の this._width 部分を折り返しMAXのx座標値にすればOK。

割と初期の段階で CASA パッケージをダウンロードした人は、LoadGroup のインスタンスメソッド getLoads が追加される前のパッケージの可能性があるので最新版のご確認を。getLoads() と (MediaLoadクラスの)getMovieClip() は便利ですよ。

getLoads()して配列に格納して中のMediaLoadインスタンスをgetMovieClip()すると、一番最後にロードしたものが配列番号0番目になっているので注意

たぶんもっとスマートな方法はあるんでしょうね。何を今更的なコードだけど、こういう数学パズル的なことを考えるのが楽しい。この楽しさを5年前ぐらいの僕に教えてやりたい。

追記:同じようなタイリング用ユーティリティーがの CASA に既にあるということをたけしCEOに教えてもらいました。CASA の DistributionCollection を使えばいいとのこと。リンク先ページ「View source」でクラスファイルが見れるので、いかにスマートに実装してるかを見比べるがいいさ。

Comment:4

たけし 2007-11-27 (火) 12:39

CASA の DistributionCollection も指定範囲にタイル上に並べられますよー
CSSっぽくマージンとかも設定できるので、ただ"並べるだけ"なら一応使えないことはないかとw

tera 2007-11-27 (火) 13:49

ええ〜っ!そうだったんですか!!
僕がAPIリファレンス読んでないのがバレてしまいましたねwじっくり読まないとですね。
お恥ずかしい限りです。いやはやCASA便利だなぁ。

そら 2008-01-31 (木) 18:30

こんにちは、いつも参考にさせて頂いています。

ビデオチュートリアルCASAを使ってホットペッパーの画像を読み込み
この記事を参考にして画像をタイル上に並べることが出来ました。

次にCASAのDistributionCollectionが便利そうなので、
これを使ってタイル上に並べようとしているのですがうまくいきません。
ドキュメントのサンプルは動かすことが出来ました。

今現在はこのようになってます。

function onGroupLoadComplete(){
trace("全画像ロード完了");

var _dist:DistributionCollection;
_dist = new DistributionCollection( true );
_dist.setRectangle( new Rectangle(50, 50, 800, Number.POSITIVE_INFINITY) );
_dist.setMargin(10, 10, 10, 10);

var thumbs:Array = myLoadGroup.getLoads();
for(var i:Number=0;i var mc:MovieClip = thumbs[i].getMovieClip();
_dist.addItem( attachMovie("mc", "mc"+i, getNextHighestDepth()));
}
_dist.positionItems();
}

四角などのMovieClipを作って、リンゲージをboxとかにして
attachMovieのmcと置き換えると四角がタイル上に整列出来ます。

間違っている箇所があればご指摘くださるとありがたいです。

tera 2008-01-31 (木) 23:22

>soraさん
コメントありがとうございます。
興味深かったので別エントリにしました。
http://www.trick7.com/blog/2008/01/31-231306.php
僕も知らないことがあったので勉強になりました。
今後ともよろしくお願いいたします。

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

Trackback:0

TrackBack URL for this entry
http://www.trick7.com/blog/mt-tb.cgi/647
Listed below are links to weblogs that reference
ロードした画像達をタイル上に並べる from trick7.com blog

Home > action script > ロードした画像達をタイル上に並べる

持っている Flash & ActionScript 関連本の中から、自分的おすすめの読む順番をご紹介。各書籍のレビューは books カテゴリからご覧頂けます。
この順番でどう?(AS3.0)
  • Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)
    Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)

    デザイン方面からFlashデビューして、そのままAS2.0を使うようになった人が、難しいと評判のAS3デビューする時の最初の1冊として、とにかく目を通しておくと良いかと思います。プログラミング経験の少ない方でも、サンプルをじっくり読めば、ゼロからのAS3デビュー可。
  • ActionScript 3.0 アニメーション
    ActionScript 3.0 アニメーション
    洋書「Making Things Move!」の日本語訳本。ActionScript3.0で数学的アニメーションを作ることがメインテーマなのですが、前半部分でAS3.0の基礎を分かり易く解説されています。後半の重力, IK, 3D表現等のアニメーション解説も楽しい。僕はこれのAS2.0洋書版を読んでFlashの面白さに気付きました。
  • Essential ActionScript 3.0 (Essential)
    Essential ActionScript 3.0 (Essential)

    900ページ以上ある相当分厚い本。基礎からOOPまでを解説。ほぼ網羅しているので、これを抑えておけばAS3博士になれそう。
  • Actionscript 3.0 Cookbook
    Actionscript 3.0 Cookbook

    ActionScript3.0のリファレンス本。問題とその解決法が1ページぐらいで細分化されているので空いた時間にちょっとずつ読み進められる。WebでAS3のソースを見て勉強する時の字引としても使う。ただ、時期的に初期の本なので、AS3自体が仕様変更してたりするので正誤表は必読。
  • Object-Oriented Actionscript 3.0
    Object-Oriented Actionscript 3.0

    7/23に発売されたFlash&OOP本。AS2.0版は持っているのだけど、オブジェクト指向の初歩的な解説から入って、後半は僕の理解を超える難度になっていきました。今度こそ理解できるか?
この順番でどう?(AS2.0)
  • Foundation Actionscript Animation: Making Things Move (Foundation)
    Foundation Actionscript Animation: Making Things Move (Foundation)

    スクリプトでアニメーションさせる方法を学べる。プログラムの知識というよりも数学や物理の知識が必要。バネの表現や3D表現など、汎用性の高いテクニックを身に付けられ、個人の表現力をレベルアップするのに最適。参考までに、僕が調べた英単語リスト。2007年4月に、AS3対応版も発売されました。
  • ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
    ゲーム開発のための数学・物理学入門  Beginning Math and Physics for Game Programmers

    「Making Things Move!」の世界を突き詰めたい人用のステップアップのための本。行列や物理運動、2D/3D表現。Flashの本ではなく、じっくり読むタイプの本なので、あとまわしにしてもいいかも。
  • Flash 8 Essentials
    Flash 8 Essentials

    Flash8の新機能を紹介。全10章が独立した構成で、興味のある部分から読めます。フィルタやビットマップ、ビデオの使い方とかを、基礎から順を追って理解していけるので、ゼロからスクリプティングできるようになる。僕はビットマップ関連の作業の際のリファレンスとして常用しています。
  • .fla―Idea of Flash Creation
    .fla―Idea of Flash Creation

    上の本でFlash8の基本を身に付けて、それをどう面白い表現に落とし込むかを学べます。深津さんの、試行錯誤・実験しやすいスクリプティング、クラス設計に凄さを感じました。YouTubeやFlickrのAPI、PHPとの連携記事も。
  • FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]
    FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]

    ここまでで表現力が付き、テンションが上がるので、その勢いで難解なオブジェクト指向に挑戦。プログラム経験のない人がいきなり英語のOOP本を読むのは厳しい。この本で継承とかインターフェースとかポリモーフィズムとかの用語を理解しておくといいかも。
  • オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
    オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

    Flashの本ではありませんが、OOPの概念を気軽に読めるボリュームで解説してくれます。英語と日本語のOOP用語の対応を図るためにも「Object-oriented Actionscript for Flash 8」と併読するのがおすすめ。なんとなく読んでおくだけでも結構違うのでは。
  • Object-oriented Actionscript for Flash 8
    Object-oriented Actionscript for Flash 8

    前半はOOPの利便性や基本の紹介。デザインパターンやMVCの理解。13章からグッと難しくなって大変。Flash8対応。
  • Essential Actionscript 2.0
    Essential Actionscript 2.0

    上の本よりもさらにOOPプログラマ向け。同じOOP本ということでやや重複しており、こちらはMX2004時代の本なので見送ってもいいかも。分かりやすい英語で良著。この本のAS3版が出たら間違いなく買い。

Page Top