未返信記事の表示 | 活発なトピックの表示 現在時刻 - 2010年9月08日(水) 13:48



新しいトピックを投稿する トピックへ返信する  [ 1 件の記事 ] 
 フレームアクションで覚える PV3D Vol.06 : スライドショー XMLバージョン 
作成者 メッセージ

登録日時: 2010年4月12日(月) 07:13
記事: 1
投稿記事 フレームアクションで覚える PV3D Vol.06 : スライドショー XMLバージョン
Clockmaker様の「フレームアクションで覚える PV3D Vol.06 : スライドショー」のエントリーのサンプルの改造版を制作しました。

元ファイルのURLはこちら
http://clockmaker.jp/blog/2009/05/papervision3d_tutorial_6/

XMLパースを加えることによって、テキストの連携もできるようにしてみました :D

XML解析部分のプログラムの参考(技術評論社のNORIさんの連載記事より抜粋)
http://gihyo.jp/design/serial/01/flash_mt/0004

また、テキストのタイピングアクションは「プロとして恥ずかしくないActionScript3.0の大原則」の33ページで紹介されていたスクリプトを参考に制作しております。

XMLとの連携部分は以下の通りです。

XML解析用のonLoad関数の中に、

1.まずはXMLをE4Xで解析

2.配列にデータを格納

3.Papervision3Dのマテリアルを生成する際に、配列に格納した画像データを表示させる

ような形になります。

(何せ初めてこのような投稿をしたもんで…修正ばかりで申し訳ないです)

引用:
/************************************************************************/
//URLLoaderオブジェクトを用意する。
var myLoader:URLLoader = new URLLoader();

//myLoaderの受け取るデータがテキストであることを宣言する。
myLoader.dataFormat=URLLoaderDataFormat.TEXT;

//myLoader読み込み終了時に実行する関数を定義する。
myLoader.addEventListener(Event.COMPLETE,onLoaded);

//イメージなどのデータが入る配列
var image_array:Array = new Array();

//onLoaded関数を設定
function onLoaded(e:Event):void {

//初期表示
var typeStr:TypeStr=new TypeStr(txt);
typeStr.typing("写真をクリックすると拡大表示されます。");

var typeStr2:TypeStr=new TypeStr(date);
typeStr2.typing("");

//XMLオブジェクトを作成して、読み込んだテキストデータをパース
var myXML:XML=new XML(e.target.data);

//E4XでmyXMLを解析
for each (var entrydata:XML in myXML.*) {

var t_object:Object = new Object();

//entrydataの中のimgタグのsrc属性を調べる
t_object.src=entrydata.img.@src;
t_object.id=entrydata.@id;
t_object.title=entrydata.@title;
t_object.date=entrydata.@date;

image_array.push(t_object);

}

//(5)写真の数(変数):応用
var PHOTO_NUM=image_array.length;

//(6)写真を配置する
for (var i:int = 0; i < PHOTO_NUM; i++) {

//(7)マテリアル(Material)を作成する (ビットマップファイルマテリアルは引数にライブラリの画像を指定します)
var material:BitmapFileMaterial=new BitmapFileMaterial("img/"+image_array[i].src);

//(8)イベントを拾うことができるようにする
material.interactive=true;

//表示しているビットマップイメージをスムーズにする
material.smooth=true;

//(9)平面(Plane)を作成する
var photo:Plane=new Plane(material,844,400,1,1);

//(10)photoオブジェクトのクリックイベントの設定
photo.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, clickHandler);

//(11)3D空間に球面を追加します
world.scene.addChild(photo);

//(12)写真ギャラリーを並べる 横=横幅×列番号+調整値(Planeの横幅の半分)
photo.x = 944 * (Math.floor(i / 3) - PHOTO_NUM / 3 / 2) + 944 / 2;

//(13)写真ギャラリーを並べる 縦=縦幅×行番号+調整値(Planeの高さの半分)
photo.y = 500 * (i % 3 - 2 / 3) - 500 / 2;

}

}

//XMLデータの読み込みを実行する
var myURLRequest:URLRequest=new URLRequest("photodata.xml");
myLoader.load(myURLRequest);
/************************************************************************/


あとは、Flashのサイズに合わせて、サイズに関するパラメータをいじっただけですが・・・

サンプル)
http://just1factory.kir.jp/

Flaデータのご要望がありましたら
fumiya.def.mathmatica@gmail.com
まで、ご一報ください。


添付ファイル:
コメント: サンプルの見た目はこんな感じになっております。
image.jpg
image.jpg [ 120.92 KiB | 表示回数: 596 回 ]
2010年4月12日(月) 08:42
プロフィール
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 1 件の記事 ] 


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]


トピック投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.
Japanese translation principally by ocean