In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

"銀河鉄道の夜”をText Layout Frameworkで縦組みする on 2010-3-15

Text Layout Framework Test02
** 縦組みの実験。XMLとそうではない方法の連携実験。
** リンクも実験。
** 各所のコメントアウトは色々試した結果なので気にせず。
** reference--------
** http://www.aozora.gr.jp/cards/000081/files/43737_19215.html(青空文庫 銀河鉄道の夜)
** http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/index.html (Adobe)
/* auther--------
** more_more_for
/**
 * Copyright more_more_for ( http://wonderfl.net/user/more_more_for )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/9aAn
 */

/* Text Layout Framework Test02
** 縦組みの実験。XMLとそうではない方法の連携実験。
** リンクも実験。
** 各所のコメントアウトは色々試した結果なので気にせず。
	** reference--------
	** http://www.aozora.gr.jp/cards/000081/files/43737_19215.html(青空文庫 銀河鉄道の夜)
	** http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/index.html (Adobe)
	/* auther--------
	** more_more_for
	*/
package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.text.engine.JustificationStyle;
    import flash.text.engine.TextLine;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.elements.Configuration;
    import flashx.textLayout.elements.LinkElement;
    import flashx.textLayout.elements.ParagraphElement;
    import flashx.textLayout.elements.SpanElement;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.factory.TextFlowTextLineFactory;
    import flashx.textLayout.formats.BlockProgression;
    import flashx.textLayout.formats.JustificationRule;
    import flashx.textLayout.formats.TextAlign;
    import flashx.textLayout.formats.TextLayoutFormat;

    public class Configuration_example extends Sprite
    {
    	private var _bgContainer:Sprite;
    	private var _txtContainer:Sprite;
    	private var _config:Configuration;
    	private var _txtLayoutFormat:TextLayoutFormat;
    	private var _factory:TextFlowTextLineFactory;
    	private var _txtFlow:TextFlow;
    	private var _paragraphEl:ParagraphElement;
    	private var _spanEl:SpanElement;
    	
    	public function Configuration_example()
    	{
    		if(stage) init();
    		else this.addEventListener(Event.ADDED_TO_STAGE, init);
    	}
    	
    	
        public function init():void
        {
        	removeEventListener(Event.ADDED_TO_STAGE, init);
        	
        	//コンテナー設定
        	_bgContainer = new Sprite();
        	_bgContainer.graphics.beginFill(0xCCCCEE);
        	_bgContainer.graphics.drawRect(0,0,465,465);
        	_bgContainer.graphics.endFill();
        	this.addChild(_bgContainer);
        	_txtContainer = new Sprite();
        	_txtContainer.x = -5;
        	_txtContainer.y = 8;
			_bgContainer.addChild(_txtContainer);
        	
        	//テキストのフォーマットを設定
        	_config = new Configuration();
        	_txtLayoutFormat = new TextLayoutFormat();
        	_txtLayoutFormat.fontFamily = "Hiragino Mincho Pro M";
        	_txtLayoutFormat.fontSize = 10;
        	_txtLayoutFormat.locale = "ja";
        	_txtLayoutFormat.color = 0x333333;
        	_txtLayoutFormat.textAlign = TextAlign.JUSTIFY;
        	_txtLayoutFormat.textAlignLast = TextAlign.LEFT;
        	_txtLayoutFormat.justificationRule = JustificationRule.EAST_ASIAN;
        	_txtLayoutFormat.justificationStyle = JustificationStyle.PUSH_IN_KINSOKU;
        	_txtLayoutFormat.blockProgression = BlockProgression.RL;
        	_config.textFlowInitialFormat = _txtLayoutFormat;
        	  /*//リンク設定(Normal)
        	  var linkNormalFormat:TextLayoutFormat = new TextLayoutFormat();
        	  linkNormalFormat.color = 0xFFFFFF;
        	  linkNormalFormat.textDecoration = TextDecoration.UNDERLINE;
        	  _config.defaultLinkNormalFormat = linkNormalFormat;
        	  //リンク設定(selection)
        	  var selectionFormat:SelectionFormat = new SelectionFormat(0xFFFFFF);
        	  _config.focusedSelectionFormat = selectionFormat;*/
            
            //TextFlowを設定
            _txtFlow = new TextFlow(_config);
            /*var selectionManager:SelectionManager = new SelectionManager();
            _txtFlow.interactionManager = selectionManager;*/
            
            
            
            
            //テキスト内容
            var markup:String = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
            "<flow:TextFlow xmlns:flow=\"http://ns.adobe.com/textLayout/2008\" verticalScrollPolicy=\"auto\" horizontalScrollPolicy=\"auto\" editingMode=\"readWrite\"  lineHeight='20' textIndent=\"11\" marginBottom=\"15\" paddingTop=\"4\" paddingLeft=\"4\">"+
                "<flow:p fontSize='16' fontWeight='bold' textIndent='50' lineHeight='200%'>"+
                		"<flow:span>六 銀河(ぎんが)ステーション</flow:span>"+
                "</flow:p>"+
                "<flow:p>"+
                    "<flow:span id='span1'>そしてジョバンニはすぐうしろの天気輪(てんきりん)の柱(はしら)がいつかぼんやりした三角標(さんかくひょう)の形になって、しばらく蛍(ほたる)のように、ぺかぺか消(き)えたりともったりしているのを見ました。それはだんだんはっきりして、とうとうりんとうごかないようになり、濃(こ)い鋼青(はがね)のそらの野原にたちました。いま新しく灼(や)いたばかりの青い鋼(はがね)の板(いた)のような、そらの野原に、まっすぐにすきっと立ったのです。</flow:span>"+
                "</flow:p>"+
                "<flow:p>"+
                    "<flow:span id='span2'>するとどこかで、ふしぎな声が、銀河(ぎんが)ステーション、銀河(ぎんが)ステーションと言(い)う声がしたと思うと、いきなり眼(め)の前が、ぱっと明るくなって、まるで億万(おくまん)の蛍烏賊(ほたるいか)の火を一ぺんに化石(かせき)させて、そらじゅうに沈(しず)めたというぐあい、またダイアモンド会社で、ねだんがやすくならないために、わざと穫(と)れないふりをして、かくしておいた金剛石(こんごうせき)を、誰(だれ)かがいきなりひっくりかえして、ばらまいたというふうに、眼(め)の前がさあっと明るくなって、ジョバンニは、思わず何べんも眼(め)をこすってしまいました。</flow:span>"+
                "</flow:p>"+
                "<flow:p>"+
                    "<flow:span id='span3'>気がついてみると、さっきから、ごとごとごとごと、ジョバンニの乗(の)っている小さな列車(れっしゃ)が走りつづけていたのでした。ほんとうにジョバンニは、夜の軽便鉄道(けいべんてつどう)の、小さな黄いろの電燈(でんとう)のならんだ車室に、窓(まど)から外を見ながらすわっていたのです。車室の中は、青い天鵞絨(ビロード)を張(は)った腰掛(こしか)けが、まるでがらあきで、向(む)こうの鼠(ねずみ)いろのワニスを塗(ぬ)った壁(かべ)には、真鍮(しんちゅう)の大きなぼたんが二つ光っているのでした。</flow:span>"+
                "</flow:p>"+
            "</flow:TextFlow>";
            
            _txtFlow = TextConverter.importToFlow(markup, TextConverter.TEXT_LAYOUT_FORMAT);
            
            //paragraphElementを設定
            _paragraphEl = new ParagraphElement();
            _spanEl = new SpanElement();
            _spanEl.text = "銀河鉄道の夜 宮沢賢治";
            _spanEl.color = 0x990000;
            var link:LinkElement = new LinkElement();
            link.href = "http://www.aozora.gr.jp/cards/000081/files/43737_19215.html";
            link.addChild(_spanEl);
            _paragraphEl.addChild(link);
            _txtFlow.addChild(_paragraphEl);
            
            _txtFlow.hostFormat = _txtLayoutFormat;
            
            var containerController:ContainerController = new ContainerController(_txtContainer, 450, 440);
            _txtFlow.flowComposer.addController(containerController);
            _txtFlow.flowComposer.updateAllControllers();

        }
        
    }
}