いつぞやの記事で別にフルフラッシュサイトでなくてもProgression使えるよー的な事書きましたが、ちょっとしたサンプル作ってみました。
サンプル
XMLを読み込んで、タイトルを表示し、クリックすると当該URLへジャンプするものです。
後ろの模様は単にperlinNoiseです。
外部からjpgロードして表示しても良いですよね。
一つ一つを別シーンにして一定時間待機させてぐるぐる回してます。ただそれだけ。
今回のポイント?はPropコマンドを使いたいが為にシーンの方でテキスト追加している点ですね。普通はsprite側でテキスト追加するんじゃないかと思います。
var _xmlData:XMLList = new XMLList( this.sceneInfo.data );
var _obj:Object = XMLUtil.xmlToObject( _xmlData );
var _format = new TextFormat();
_txt = new TextField();
_bannerSprite = new BannerSprite({naviUrl:_obj.naviurl});
addCommand(
// 任意のコマンドを記述してください。
new Prop(_format, {
size:12,
color:0xffffff,
font:"_等幅"
}),
new Prop(_txt, {
mouseEnabled:false,
text:_obj.title, //タイトルのセット
wordWrap:true,
width:230,
x:10,
y:10
}),
new Func(function():void{_txt.setTextFormat(_format)})
);
このようにソースコードがすっきりします。
もう一つはキャストボタンのhrefプロパティです。これにURL渡すとクリックした際に当該URLに飛ばす事が出来ます。便利!
public function BannerSprite( initObject:Object = null ) {
super( initObject );
_bannerButton = new BannerButton();
_bannerButton.href = initObject.naviUrl;
}
このようにhrefプロパティに値を設定するだけです。
もうひとつあります。
シーン入れ替えの際、前シーンのスプライトの_onCastRemovedと次シーンのスプライトの_onCastAddedを並列動作させたかったのですが、
私は当該スプライトの_onCastRemovedでaddCommandせずに、パラレルリストを作って実行しています。
protected override function _onCastRemoved():void {
var _pList:ParallelList = new ParallelList();
_pList.addCommand(
new DoTweener(this, { alpha:0, time:1 } ),
new RemoveChild(this,_bannerButton)
);
_pList.execute();
}
これで思った通りの動作になります。
前回同様全く屑のようなサンプルですが、プロジェクトファイル一式とりあえずここに置いておきます。
これは徐々にパワーアップさせる予定。
ちなみにこのサンプルは日曜夜10時から絶賛放送中のフララジというラジオ番組を聴きながら作りました。
cellfusion先生のustreamチャンネルで聴く事が出来ます。
みんなも聴くといいと思います。

コメントする