swf10限定の動作サンプルです。swf9だと一部のフォントがうまく反映されませんでした。swf10でも完璧じゃないですけど。。。。。ちなみにActionscript使ってます。
サンプルは、PC上のフォントリストを取得、その中から選んだフォントに動的に変更します。左がフォントリスト、右がフォントを適用した画面上の<text>コンポーネント。フォントリストでもサンプル的に表示できるようにしています。
フォントを埋め込んでるのじゃないので、PCによってフォントリストの中身は変わってきます。
(OpenLaszlo4.6.1/swf10)
<?xml version="1.0" encoding="UTF-8"?> <canvas proxied="false" bgcolor="0xeeeeee" fontsize="25"> <!-- swf10限定 --> <dataset name="font_ds"/> <passthrough> import flash.text.Font; import flash.display.Sprite; import flash.text.*; </passthrough> <handler name="oninit"><![CDATA[ var allFonts = flash.text.Font.enumerateFonts(true); allFonts.sortOn("fontName", Array.CASEINSENSITIVE); var dp = font_ds.getPointer(); for(var i=0;i<allFonts.length;i++){ var fn = allFonts[i].fontName; dp.addNode('fn',fn,""); } ]]></handler> <attribute name="FONT" type="string" value=""/> <class name="ftext" font="${canvas.FONT}" extends="text"/> <simplelayout axis="x" spacing="30"/> <view width="300" height="300" clip="true" bgcolor="white"> <vbox datapath="font_ds:/"> <text datapath="fn/text()" font="${this.text}" width="${parent.parent.width}" resize="false"> <handler name="onmouseover"> this.setAttribute('bgcolor',0xdddddd); canvas.setAttribute('FONT',this.text); </handler> <handler name="onmouseout"> this.setAttribute('bgcolor',0xffffff); </handler> </text> </vbox> <scrollbar visible="${this.scrollable}"> <handler name="onmousewheeldelta" reference="lz.Keys" args="d"> this.step(-d); </handler> </scrollbar> </view> <view height="300" clip="true" bgcolor="white"> <vbox spacing="5"> <ftext>あいうえお</ftext> <ftext>日本語漢字</ftext> <ftext>アイウエオ</ftext> <ftext>ABCDEF123456</ftext> </vbox> <scrollbar visible="${this.scrollable}"/> </view> </canvas>