日本語:アセット

オーバービュー
site.xmlにある、他のノードタイプは、アセットです. アセットは、ページに属し、また、アセットに属するページと関連する外部ファイルです. アセットを使用することにより、Gaiaを簡単に管理し、外部ファイルにアクセスできます.

AS2用 と AS3用 アセット

 * NetStreamAsset - flv, m4a ファイル
 * XMLAsset       - XML files
 * SoundAsset     - mp3, wav ファイル
 * StyleSheetAsset - css ファイル

AS3用 アセット
これらは、AS3用DisplayObjectの継承ツリーです.


 * DisplayObjectAsset - DisplayObjectアセット用の基底クラス
 * BitmapAsset       - イメージは、デフォルトでがBitmapAssetsとしてロードします. (png, jpg, gif等)
 * BitmapSpriteAsset - このアセットは、相互作用するスプライトでラップされたBitmapAssetsです.
 * SpriteAsset       - AS3用ディスプレイオブジェクトの継承ツリーを反映するために含まれます.
 * MovieClipAsset    - デフォルトで、swfは、ムービークリップアセットとしてロードします.
 * TextAsset         - テキストファイル用(.txt). また、XMLAsset, StyleSheetAssetとJSONAsset用の基底クラスです.
 * JSONAsset         - jsonファイル用(.json)
 * ByteArrayAsset   - For loading raw bytes

AS2用 アセット

 * MovieClipAsset - 元来、MovieClip(swf, png, jpg, gif等)の中に読み込むものです.
 * SoundClipAsset - 埋め込まれた音付きの外部swfファイルです. (完全ループ用)



アセットの使い方
デフォルトで、アセットは、プリロードするプロセスの一部としてページと共にロードします. この振る舞いは、それぞれのアセットの基礎上にオーバーライドされます. (以下を参照)

*** 重要: アセットのアクセスについて ***

アセットオブジェクトは、transitionInがページ上に呼ばれるまで有効ではありません. これは、アセットオブジェクトがページに割り当てられる前に実行するロードされたページの最初のフレーム上のActionScriptだからです. ましてや、アセットがロードしたらです. transitionInがアセットにアクセスしようとする前に呼ばれる後まで待ちます.

こちらが、どうアセットが使われるかの概要です.

       

この例で、ページ "home"は、myMusic、myCopy、myImage、mySWFのidから成る４つのアセットを持ちます. アセットは、ページドキュメントクラス内あるいは、あなたのswfページの基底タイムライン上のアセットと呼ばれるプロパティ内で、あなたのswfページに対し有効になります.

あなたはアセットディレクトリに、プロキシデザインパターンを経由し、それらのIDとアセット上に直接有効なフラッシュアセットのそのタイプの大部分ネイティブメソッドよりアクセスします.

アセットがGaiaがFlashでアセットクラスを反映します.

'''注意: イメージとswfアセットは、それがロードし0,0で配置される時に、visible = falseを持ちます. もし、ステージ上に表示するためにimageかswfを欲しい場合、visible = trueをセットする必要があります. '''



MovieClipAsset
ほとんどのネイティブMovieClipメソッドとプロパティを使用して、直接MovieClipAssetにアクセスできます. こちらが、シンタックスの例です. 他のMovieClipと同様に直接アセットにアクセスできます.

AS2 assets.myImage._x = 50; assets.myImage._y = 100; assets.myImage._visible = true; trace(assets.myImage._parent);  // MovieClipの_parentを戻します // assets.mySWF.gotoAndPlay(10); assets.mySWF.onRelease = function {};

AS3では、キャストは必須ではありません. しかし、もしコードヒントとパフォーマンス用に厳密なタイピングをしたい場合、それらのインターフェースに対しアセットをキャストしてください. MovieClipAssetsは、IMovieClipを使用し、imagesは、IBitmapを使用し、spritesは、ISpriteを使用し、また、それらは全て、IDisplayObjectから継承します. また、重要なことは、親プロパティは、コンテントではなく、ローダーの親を戻します.

AS3 IDisplayObject(assets.myImage).x = 50; IDisplayObject(assets.myImage).y = 100; IDisplayObject(assets.myImage).visible = true; // IMovieClip(assets.mySWF).gotoAndPlay(10); trace(IMovieClip(assets.mySWF).parent); // loader.contentではなく、ローダーの親を戻します. // // AS3は、またキャスティングなしでも動作します // assets.mySWF.gotoAndStop(5); assets.myImage.scaleX = 0.5; // BitmapSpriteAsset.parent returns the parent of the Sprite it is nested in trace(assets.myImage.parent);

AS3において、もしファイルサイズが重要な場合、必要なメソッドを持つIAssetに最も近いインターフェースを使用するだけにしてください. 例えば、もし、単にxとyをセットする必要がある場合、IDisplayObjectを使います.

MovieClipAssetsのタイムラインを目標にする
もし、swfアセットがあり、そのドキュメントクラスあるいはそのタイムライン(例として、カスタムメソッド、プロパティ、MovieClips等)何かを目標にしたい場合、 クラス/タイムラインを直接目標にする必要があり、また、MovieClipを戻すcontentプロパティを使うことによってできます.

AS2 assets.mySWF.content.someMethod assets.mySWF.content.someMovieClip._x = 10;

AS3では、MovieClipAssetをIMovieClipか否かでとして、キャストができます.

AS3 assets.mySWF.content.someMethod; IMovieClip(assets.mySWF).content.someMovieClip.x = 10;

同じものをページ(PageAsset extends MovieClipAsset)用として、trueにホールドできます.

AS2 Gaia.api.getPage("index/nav").content.someMovieClip._visible = true;

か

_global.Gaia.getPage("index/nav").content.someMovieClip._visible = true;

AS3 Gaia.api.getPage("index/nav").content.someMovieClip.visible = true;



BitmapAsset (AS3専用)
BitmapAssetは、DisplayObjectAssetを拡張します. AS3で、site.xml内のどのimageアセット(jpg、gif、pngとか)は、BitmapAssetsとして、それにロードされます.

import com.gaiaframework.api.IBitmap; import flash.display.BitmapData; // IBitmap(assets.myBitmap).x = 50; var myBitmapData:BitmapData = IBitmap(assets.myImage).bitmapData;



BitmapSpriteAsset (AS3専用)
これは、それに対する相互作用を加えることができるBitmapAssetのバージョンです. なぜなら、BitmapSpriteAssetsはSpriteコンテナ内でラップされ、アセットはSpriteメソッドへプロキシを提供します. BitmapAssetをBitmapSpriteAssetにするために、type="sprite"をアセットノードでセットしてください.

import com.gaiaframework.api.IBitmapSprite; // IBitmapSprite(assets.myBitmap).buttonMode = true; IBitmapSprite(assets.myBitmap).addEventListener(MouseEvent.CLICK, onClickBitmap);



SpriteAsset (AS3専用)
SpriteAssetは、DisplayObjectAssetを拡張します. SpriteAssetは、AS3の継承ツリーと同格で、設定可能なアセットタイプではありません. もしIMovieClipでメソッドが必要でない場合、ISpriteインターフェースは、ファイルサイズをより小さく保つために使われます.

コンテナ
SpriteAssetは、MovieClipAssetsとBitmapSpriteAssets用に作られたコンテナSpriteのローダーを目標にするcontainerと呼ばれるプロパティを持っています. 一般に(ISpriteを拡張する)IBitmapSpriteを使うことになります.

import com.gaiaframework.api.IBitmapSprite // TweenLite.to(IBitmapSprite(assets.myBitmap).container, 2, {alpha:0});



SoundAsset
SoundAssetは、Flashのサウンドオブジェクトと同じネイティブメソッドを持ちます.

例えば、もし、再生するために"myMusic"というidと共にmp3アセットが欲しい場合、以下に続くページクリップのルートタイムライン上のシンタックスを使うことになります.

AS2 assets.myMusic.start; assets.myMusic.start(4, 5); // if you wanted it to start 4 seconds in and loop 5 times

AS3は、ISoundインターフェースを使います.

AS3 ISound(assets.myMusic).play; ISound(assets.myMusic).play(4, 5); // 開始までに４秒、５回ループをする場合

AS2では、サウンドアセットは、デフォルトでイベントに対してセットされます. streaming属性を　アセットノード内で、ストリーミングオーディオとして再生したいサウンドアセット用に、"true"にセットしてください.

AS3では、ロードされるサウンドイベントはありません. なので、"streaming"属性は、使われません. また、全てのサウンドアセットはストリーミングとして扱われます. もし、preload="true"にセットした場合、ページの一部として、全体のサウンドをプリロードします. そして、あなたが指示するまで、それは再生しません.

最後に、Gaiaは、AS2のストリーミングサウンドがループできないネイティブな制限を修正し、そうすることをループ値をセットすることにより許可します. この機能の詳細は、Load On Demandセクションの下にあります.

SoundAssetsは、３つのヘルパーメソッドを持ちます.

一時停止(pause)
pause(flag:Boolean)

一時停止したい場合、trueをセットし、一時停止を解除したい場合、falseをセット(もしくは、何もセットしない)して下さい. そして、前回一時停止した位置から再び再生し始めます.

fadeTo
fadeTo(value:Number, duration:Number, [onComplete:Function])		// AS2 fadeTo(value:Number, duration:Number, onComplete:Function = null) // AS3 value: ボリュームをフェードしたい値 duration: フェードの秒数 onComplete: フェードが完了したときに呼ばれる関数を任意にセット可能

panTo
panTo(value:Number, duration:Number, [onComplete:Function]) 		// AS2 panTo(value:Number, duration:Number, onComplete:Function = null) 	// AS3 value: パンしたいパン値(AS2では、-100 から 100. AS3では、-1 から 1) duration: パンするたの秒数 onComplete: パンが完了したときに呼ばれる関数を任意にセット可能



SoundClipAsset (AS2専用)
SoundClipAssetは、SoundAssetとほぼ同等です. そして、たいていのSoundAssetと同じネイティブメソッドを持ちます. SoundClipAssetsは、完全ループのmp3ファイル用に優先的に使われます.

Gaia用にSoundClipAssetを作るために、まず、Flashファイルを新規作成し、Audioファイルをインポートします. Audioファイルに、任意のリンケージIDを与え、以下のコードをタイムライン中に入れます.

sound = new Sound(this); sound.attachSound("YOUR_LINKAGE_ID");

site.xmlに、アセットタイプ属性を"sound"にセットします. 例:



あなたの作業は以上です. 残りは、Gaiaが行います.

SoundClipAssetsは、ストリーミングにセットされないことを除いてSoundAssetsの様にふるまいます. それとは別に、通常のSound Assetsと全く同様にSoundClipAssetsにアクセスします. SoundGroupsにも追加できます.

<br style="clear:both" />

NetStreamAsset
NetStreamAssetsは、NetStreamAssetsに対して有効なNetStreamクラスに有効である全てのメソッドを持ちます. また、NetStreamAssetは、それ自身のインスタンスNetStreamを参照するプロパティ"ns"も持ちます.

AS3内で、NetStreamAssetsは、INetStreamインターフェースを使用します.

INetStream(assets.myFLV).play; INetStream(assets.myFLV).attach(video);

AS2とAS3両方で、NetStreamAssetsは、２つの便利なプロパティと１つのメソッドを持ちます.

duration
get duration:Number ロードされたNetStreamAssetの持続期間を戻し、metaDataから引き出されます.

metaData
get metaData:Object ロードされたNetStreamAssetのmetaDataオブジェクトを戻します.

attach
attach(video:Video) このヘルパーメソッドは、ビデオインスタンスをattachに渡し、GaiaがNetStreamをVideoにアタッチするようにハンドルします.

AS3のみ、NetStreamAssetsは、４つの便利なプロパティとメソッドを持ちます.

volume (AS3専用)
get volume:Number set volume(value:Number):void このセッタープロパティは、NetStreamAsset上のボリュームにアクセスします. 0から1まで、0.1単位で設定できます.

pan (AS3専用)
get pan:Number set pan(value:Number):void このゲッター、セッタープロパティは、NetStreamAsset上のパンにアクセスします. -1から1まで、0.1単位で設定できます. This getter/setter property accesses the pan on the NetStreamAsset, a floating point value from -1 to 1.

fadeTo (AS3専用)
fadeTo(value:Number, duration:Number, onComplete:Function = null) フェードしたいボリューム値で、持続期間は、フェードしている間の秒数です. そして、任意で、フェードが完了したときに呼ばれる関数を渡すことができます.

panTo (AS3専用)
panTo(value:Number, duration:Number, onComplete:Function = null) パンしたい、パン値(-100 to 100 in AS2では、-100から100, AS3では、-1から1)で、持続期間は、パンしている間の秒数です. そして、任意で、パンが完了したときに呼ばれる関数を渡すことができます.

<br style="clear:both" />

NetStreamAssetEvent
また、NetStreamAssetは、onMetaDataとonCuePointを含むクライアント"events"間のイベントをディスパッチします. NetStreamAssetに対するこれらのイベント用リスナーを追加でき、イベントは、"info"プロパティを渡します.

// AS3 INetStream(assets.myFLV).addEventListener(NetStreamAssetEvent.METADATA, onMetaData); // AS2 assets.myFLV.addEventListener(NetStreamAssetEvent.METADATA, Delegate.create(this, onMetaData));

onMetaDataイベントをリッスンするために、NetStreamAssetは、preload="false"に設定されていなければなりません. そうでなければ、メタデータは、あなたがアセットにアクセスするときまでに、既に有効でしょう.

あなたが聞けるNetStreamAssetイベントは、これらが全てです. これらのイベントの詳細は、ドキュメントのActionscript NetStreamをご覧ください.

AS3 and AS2 * NetStreamAssetEvent.METADATA * NetStreamAssetEvent.CUEPOINT

AS3専用 * NetStreamAssetEvent.IMAGE_DATA * NetStreamAssetEvent.TEXT_DATA * NetStreamAssetEvent.XMP_DATA

AS2専用 * NetStreamAssetEvent.STATUS

<br style="clear:both" />

XMLAsset
AS2では、XMLプロパティから列にアクセスするか、プロパティオブジェクト内のXML2AS ActionScript objetctオブジェクトにアクセスするか、いずれかの方法でXMLアセットにアクセスできます.

AS2 assets.myCopy.xml.firstChild.firstChild.attributes.id; assets.myCopy.obj.site[0].page[0].attributes.id;

AS3では、"xml"プロパティ内のXMLにアクセスでき、E4Xシンタックスをパースする際に利用可能です. AS3ではIXml インタフェースを使用します.

AS3 var myXML:XML = IXml(assets.myCopy).xml; trace(myXML.child[0].anotherChild[0].@someAttribute);

<br style="clear:both" />

StyleSheetAsset
StyleSheetAssetは.cssファイル用のアセットです. StyleSheetAssetクラス用プロキシメソッドや、StyleSheetインスタンスを操作するための"style"プロパティが存在するとともに、非常に便利な transformStyle メソッドがあります. (transformStyleメソッド = 2つのネイティブ StyleSheetメソッドを合体させて、一つのTextFormatに変換)

transformStyle
myFormat:TextFormat = assets.myStyle.transformStyle(styleName);

AS3 ではIStyleSheetインタフェースを使用します.

myFormat:TextFormat = IStyleSheet(assets.myStyle).transformStyle(styleName);

<br style="clear:both" />

TextAsset (AS3専用)
TextAssetは .txtファイル用のアセットです. また、StyleSheetAsset、JSONAsset、XMLAssets のベースクラスにもなります. ITextインタフェースを使用し、元テキストを取得する際に、"text"プロパティを利用します.

AS3ではITextインタフェースを使用します.

var str:String = IText(assets.myFLV).text;

<br style="clear:both" />

JSONAsset (AS3専用)
JSONAssetsはTextAssetの拡張で、IJsonインタフェースを使用します. "json"プロパティを持ち、com.serialization.json.JSON classを使用して非直列化JSONオブジェクトを返します.

IJson(assets.myJson).json;

ByteArrayAsset (AS3専用)
ByteArrayAssetはバイトデータをロードします. パブリックプロパティ内のByteArrayより返される"data"プロパティ内にあります. 1ファイル内にビットマップやSWFファイルなどの複数インスタンスを生成するバイトデータをロードする際に役立ちます.

IByteArray(assets.myByteArray).data;

<br style="clear:both" />

DisplayObjectAsset (AS3専用)
DisplayObjectAssetはAbstractAssetを拡張します. またDisplayObjectAssetはSpriteAsset(そしてMovieClipAsset)、BitmapAsset、BitmapSpriteAssetのベースアセットにもなります.

<br style="clear:both" />

Load-On-Demandアセット
site.xmlのpreload属性を"false"に設定すると、ページをプリロードせずに、アセットがオンデマンドでロードされます. オンデマンドでアセットをロードするには、loadメソッドを使用します. アセットの数を気にせず、一度にロード可能です. (同時HTTPリクエストの最大数を利用)

assets.mySWF.load; assets.myMusic.load;

AS3では最適なインタフェースクラスを使用します.

IMovieClip(assets.mySWF).load; ISound(assets.myMusic).load;

SoundとNetStreamアセット
SoundとNetStreamアセットは、loadが呼ばれるすぐにストリーミングを開始します. Soundがevent soundもしくはSoundClipAssetだと、ロードは優先され、即座に再生されます.

load
SoundAssetは、Sound.startメソッドのように loadメソッド上で2つのパラメータが利用できます.

SoundAsset.load(startTime:Number, loops:Number);

SoundAssetがストリーミングを行わない場合、サウンドファイル全体をロードしてから再生されます. ストリーミングを行う場合は、すぐにサウンドが再生されます. AS2のloadSoundメソッドと違い、好きなだけストリーミングの音ファイルをループも可能です. 以下のサンプルでは、ストリーミングを開始後に999回までループします:

assets.myStreamingMusic.load(0, 999);

loadWithoutPlaying
Sound Assetsは、再生せずにロードだけを行うメソッドも利用できます.

SoundAsset.loadWithoutPlaying;

<br style="clear:both" />

他のアセットタイプ
イメージ、SWF、XMLアセットは通常のとおりにロードされます. イメージとSWFアセットはロード時に非表示です.

<br style="clear:both" />

属性の進捗状況
site.xmlのprogress属性を"true"にすると、アセットのローディング状況をプリローダーを使用して表示できます(例外：NetStream、音素材のストリーミング). "false"にすると、表示されません. この機能はデフォルトのプリローダーを使用しますが、ランタイム上で変更することも可能です. より詳しい情報は：Preloader 、 API

<br style="clear:both" />

アセットのローディング完了
アセットのローディング完了を確認したい場合は、AssetEvent.ASSET_COMPLETEイベントリスナーをアセットに設定します. 終了後にイベントリスターを削除することを忘れずに！

AS3

// replace this IAsset import with whatever specific asset interface you're using import com.gaiaframework.events.AssetEvent; import com.gaiaframework.api.IAsset; // var myAsset:IAsset = Gaia.api.getPage("index").assets.mySWF; myAsset.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetLoaded, false, 0, true); myAsset.load; // private function onAssetLoaded(event:AssetEvent):void {    myAsset.removeEventListener(AssetEvent.ASSET_COMPLETE, onAssetLoaded); // access your asset OR event.target, which is also your asset }

AS2

import com.gaiaframework.assets.AbstractAsset; import com.gaiaframework.events.AssetEvent; import mx.utils.Delegate; // var myAsset:AbstractAsset = Gaia.api.getPage("index").assets.mySWF; var completeDelegate:Function = Delegate.create(this, onAssetLoaded); myAsset.addEventListener(AssetEvent.ASSET_COMPLETE, completeDelegate); myAsset.load; // private function onAssetLoaded(event:AssetEvent):Void {    myAsset.removeEventListener(AssetEvent.ASSET_COMPLETE, completeDelegate); // access your asset OR event.target, which is also your asset }

<br style="clear:both" />

DisplayObjectAssetsのリペアレンティング (AS3専用)
作成したMovieClipかSpriteにBitmapAssetかMovieClipAssetを追加する場合は、transitionInが呼ばれるのを待ち、ローダープロパティを使用します.

myContainer.addChild(assets.myAsset.loader);

BitmapSpriteAssetかMovieClipAssetをリペアレントするには、コンテナプロパティを使用します.

myContainer.addChild(assets.myAsset.container);

<br style="clear:both" />

アセットの他の利用方法
アセットの利用方法として、アセットのプリロードとキャッシュを手動で行う方法があります. アセットのsrcプロパティを扱うことにより行えます. ここでは例として、ページが進んだ後もサウンドアセットを存続させたいケースを紹介します.

AS2 var mc:MovieClip = _root.createEmptyMovieClip("MC_Music", _root.getNextHighestDepth); _root.music = new Sound(mc); _root.music.loadSound(assets.myMusic.src); _root.music.onLoad = function {    _root.music.start; };

<br style="clear:both" />

別ページのアセットにアクセス
あるページのタイムラインから読み込み済みの別ページのアセットにアクセスする方法は２つあります.

おすすめの方法は、APIメソッドgetPageを利用する方法です.

Gaia.api.getPage(branch).assets

(詳しくはAPIセクションを参照ください. )

もう一つの方法は、以下のように街頭ページの親/子プロパティにアクセスする方法です.

page.getParent.assets もしくは page.children.somePageID.assets

<br style="clear:both" />

プリローダーアセット
MovieClipAssetをプリローダーのように使用できます. 多くの場合depth="preloader"がright設定よりも利用されます. ロードされないページのアセットに設定することをお進めします(例えばindexページ). もしMovieClipAssetがロードされない場合、PreloadControllerがデフォルトのサイトプリローダーを利用して元の状態に復帰させます. アセットのプリローダーがオーバーラードされる前にMovieClipAssetがロードされているかどうか、ご注意ください. 詳しくはPreloaderを参照ください.

<br style="clear:both" />

動的外在アセット
'''上級者向けのテクニック. Gaiaアセットの扱いに慣れたユーザー対象'''

Gaia API メソッド addAssetsを利用してアセットXMLファイルの作成とページへのアセットの動的適用できます. idとsrcの必要な属性が適用されているだけでOKです. イメージギャラリーの作成も容易に作れ、また、アセットのリストを動的に生成する際にAssetLoaderかGaiaのプリローディングエンジンも利用できます.

お進めする方法としては、indexページのアセットのようにアセットを含むXMLファイルを用意します. (以下の例のように、 indexFirst="true"を利用します). そして indexページのtransitionInメソッド内にあるaddAssetsをアセットを追加したいページにてコールします.

アセットをオンデマンドで追加する事もできますし(設定：preload="false")、ページと同時にプリロードする場合はpreload="true"と設定しておけばOKです.

addAssetsを利用するには、追加したいアセットノードとリファレンスのリストをPageAssetに渡します. 既にページに存在するアセットを、更に追加しようとする場合にはGaiaが自動的に警告を出してくれます. 外部アセットには重複しないIDを利用し、複数に渡り同じアセットを追加しないように気をつけてください. ページにアセットを追加するaddAssetsは永続して実行されます.

外部アセットの利用方法
Gaia.api.addAssets(nodes:XMLList, page:IPageAsset):void // AS3 Gaia.api.addAssets(nodes:Array, page:PageAsset):Void // AS2

どのように動くのかの例を以下に説明します

例：site.xml
<site title="Gaia Scaffold Site: %PAGE%" menu="true" indexFirst="true"> <page id="index" src="index.swf"> <asset id="homeAssets" src="homeAssets.xml"/> <page id="nav" src="nav.swf" depth="top"> <page id="home" title="Home" src="home.swf" menu="true" />

このように、indexページにはXMLAsset、homeAssets、indexFirstが"true"とセットされます. そしてGaiaがホームページ以下ページを読み込む前に、indexページとxmlがロードされます.

<br style="clear:both" />

例：homeAssets.xml
<asset id="asset1" src="image1.jpg"/> <asset id="asset2" src="image2.jpg"/> <asset id="asset3" src="image3.jpg"/> <asset id="asset4" src="image4.jpg"/>

<br style="clear:both" />

例：IndexPage.as
AS3 override public function transitionIn:void {   super.transitionIn; var assetNodes:XMLList = IXml(assets.homeAssets).xml.asset; var homePage:IPageAsset = Gaia.api.getPage("index/nav/home"); Gaia.api.addAssets(assetNodes, homePage); TweenLite.to(this, 0.3, {alpha:1, onComplete:transitionInComplete}); }

AS2 public function transitionIn:Void {   super.transitionIn; var assetNodes:Array = assets.homeAssets.obj.assets[0].asset; var homePage:PageAsset = Gaia.api.getPage("index/nav/home"); Gaia.api.addAssets(assetNodes, homePage); TweenLite.to(this, 0.3, {_alpha:100, onComplete:Delegate.create(this, transitionInComplete)}); }

<br style="clear:both" />

説明
上記コードはhomeAssets.xmlファイル内のすべてのアセットが "home" ページが読み込む前に追加されることと、ページとともにアセットがプリロードされることを示しております. 読み込むアセットは"index/nav/home"分岐がロードされる前に追加されます.

もしもページにアセットを読み込みたくない場合は、外部アセットノード毎に preload="false"と設定してください. もちろん、設定によっては個別にHomePageクラスにアセットを読み込む事も可能です.

注意：ノードは”asset"と名付けなくてもOKです. アセットノードの複数ページを、外部の個別XMLファイルに保存することも可能です. お好みのノードリストをaddAssetsAPIメソッドに渡すとGaiaがリストどおりに繰り返し実行します.

<br style="clear:both" />

File Bytesのアップデート
外部アセット向けの"bytes"属性をGaiaパネルに更新する場合、XMLアセットのassets="true"を設定する必要があります.

<br style="clear:both" />

アセットの複製
もしもアセットを複製したい場合は、ノードを複製し、idを変更し追加してください.

AS3 var node:XML = assets.myAsset.node.copy; // duplicate the node node.@id = "newAssetID"; // give the asset a new id var xml:XML = ;  // create a root node for an XMLList xml.appendChild(node); // add the asset to the root node Gaia.api.addAssets(xml.asset, page); // add the duplicated asset to the page

<br style="clear:both" />

アセットについて、もっと知りたい方へ
アセットで利用できるメソッドを確認するには、com.gaiaframework.assets package内の各クラスファイルを確認してください. AS3は com.gaiaframework.api packageの各アセットインターフェースクラスを確認してください. アクセスするcastingアセットのファイルサイズを小さくしたい場合は、これらのインターフェースを利用してください.

AS3 import com.gaiaframework.api.ISound; var myMusic:ISound = assets.myMusic as ISound; myMusic.play;

import com.gaiaframework.api.INetStream; var myVideo:INetStream = assets.myVideo as INetStream; myVideo.play;

ノード
ページを含むすべてのアセットは"node"プロパティがあります. ページのxmlノードか、site.xml内のアセットが含まれます. XMLなので、もちろん好きなように属性をカスタマイズし、ページやアセットノードに追加でき、また、 や ノードではない子ノードもカスタマイズできます. AS3であれば、ノードはE4Xを介してアクセスできるXMLです. AS2であれば、XML2ASオブジェクトとなります.