Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

Flex Book Componentのページ真ん中の黒ずみを消す方法

Flex book component (beta) : Ruben’s blogというナイスなコンポーネントがあります。こんな感じでeBookみたいなのを作るやつ。


ですがふつーに写真乗っけて本みたいにしようぜって思うと、本の真ん中が黒ずんで表示されます。


ネットで色々サンプルを探しても、みんなこの黒ずみは残ったままでした。

ハッキリ言ってこんなのかっこ悪くてしょうがないから、ソースを追いかけて消す方法を見つけました。

該当する箇所はココ。ソースファイルはBook.as。メソッド名はchildrenCreated。

//Book.asの390行目ぐらい
/**
 * Draw additional graphisc for Pages where necessary.
 * 
 * @private
 */
override protected function childrenCreated ():void {
	super.childrenCreated();

	//この処理が黒ずみの折り目を描画してる
	// make sure that non-hard pages whose flipsides are hard don't have fold-gradients:
	for (var i:int=0; i<this._pages.length; i++){
	  Page(this._pages.getItemAt(i)).refreshFoldGradient();
	}	
	// create hit regions for page-corners:
	this.createRegions();	
}

このPage.refreshFoldGradient()の中でGradients.asのdrawFold()が呼ばれ、fold=折り目が作られます。

なので、ここ全部コメントアウトすればまっさらになります。

そんだけ。

あと、pageflipする時にページがめくれて前のページがグレイアウトするような処理も走ってます。Book#addSmoothGradientsというメソッド。

ページングの時のグレイアウト的な描写も要らねーよって場合は、635行目ぐらいにあるのでそれをコメントアウトして下さい。dragPageCornerっていうメソッドの中にある。

色の調節はGradientsクラスで設定されてますので、いまひとつ設定方法よくわかんねーけど適当に色を変えてみたらいいと思います。