forked from: forked from: TLF縦書き時のbug

by 9re forked from forked from: TLF縦書き時のbug (diff: 17)
TLFを
 1.縦書き
 2.複数のコンテナを配置
 3.コンテナのサイズが異なる、
 4.インデックスが小さいコンテナを左に移動する
と操作した場合コンテナの親のwidthが正しく得られない。


♥0 | Line 27 | Modified 2010-05-29 11:59:10 | MIT License
play

ActionScript3 source code

/**
 * Copyright 9re ( http://wonderfl.net/user/9re )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/9MlQ
 */

// forked from kappaLab's forked from: TLF縦書き時のbug
// forked from kappaLab's TLF縦書き時のbug
/*
TLFを
 1.縦書き
 2.複数のコンテナを配置
 3.コンテナのサイズが異なる、
 4.インデックスが小さいコンテナを左に移動する
と操作した場合コンテナの親のwidthが正しく得られない。


*/

package {
    public class FlashTest extends Sprite {  public function FlashTest() {

	//コンテナ0
	var sp:Sprite = addChild(new Sprite()) as Sprite;
	//コンテナ1
	var sp1:Sprite = addChild(new Sprite()) as Sprite;
	sp.x = 100
		
	var ctr:ContainerController  = new ContainerController(sp,50,50);
	var ctr1:ContainerController = new ContainerController(sp1,40,40);
		
	
	var tfw:TextFlow = TextConverter.importToFlow("abcdefgf123456789asdfas;lkasjdfsdf wef"
	,TextConverter.PLAIN_TEXT_FORMAT);
	tfw.blockProgression = "rl";
		
	tfw.flowComposer.addController(ctr);
	tfw.flowComposer.addController(ctr1);
	tfw.flowComposer.updateAllControllers();

	trace(width,height);
		
	//親の背景を描くが10pxのズレが生じる。
	
	// 詳細についてはTLFのソースコードを読むと良いですが、
	// 一般にコンポーネントにおける描画は次のフレームで行われますので
	// 描画にかかわる処理は次のフレームにやるというのがいいでしょう。
	addEventListener(Event.ENTER_FRAME, function draw(e:Event):void {
		removeEventListener(Event.ENTER_FRAME, draw);
		
		graphics.beginFill(0x00FFFF,.5);
		graphics.drawRect(0,0,width,height);
	});
		
		
	//addEventListener(MouseEvent.ROLL_OVER,function():void{trace(width)});
	//addEventListener(Event.ENTER_FRAME,function():void{trace(width)});
		



         
}   }
import flash.display.Sprite;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.conversion.TextConverter;
import flashx.textLayout.container.ContainerController;
import flash.events.MouseEvent;
import flash.events.Event;

}