犯罪予告風櫻井メソッド
ライブプレゼン用
犯行声明
櫻井メソッド ver0.10
■使用環境
flash player 9以降
■使い方
fonts.swfを起動し、
左上をクリックします。
そこにテキストを打ち込みます。
空白行を入れると改ページになります。
あらかじめ用意したテキストを用いることは
現バージョンでは出来ません。
テキストエディタからコピペしてください。
■ビルド方法
方法1. mk.batを実行します。
方法2. コマンドラインからmxmlc fonts.asと入力します。
方法3. 変更を加えながら行う場合は
fcshとコマンドラインから入力します。
mxmlc fonts.asと入力するとコンパイルされます。
コンパイル中にcompile 1と先行入力しておきます。
次回からはfonts.asだけを変更すると大幅にコンパイル時間を
減らすことが出来ます。
2008.9.17 ver0.10リリース
■TODO
○ファイルの読み込みをする。
○ページをいったりきたり出来るようにする。
○FlexBuilderでGUIを作ってみる。
○サーバに保存できるようにする。
○AIRアプリにしてファイルを保存できるようにする。
○flash player 10でファイル読み込みできるようにする。
○モード切替を入れる。
○画面効果をいろいろ入れる。
○htmlのパラメータを受け取って表示
○urlからプレゼンが見れるようにする。
package { import flash.display.Sprite; import flash.text.Font; public class EFont extends Sprite { [Embed(source='c:\\windows\\fonts\\msgothic.ttc', fontName='MSゴシック')] private var font:Class; public function EFont(){ Font.registerFont( font ); } } }
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.*; import flash.events.Event; import flash.geom.*; import flash.filters.*; [SWF(width="300", height="200", frameRate="5", backgroundColor="#FFFFFF")] public class fonts extends Sprite { public var e:EFont = new EFont(); public var formats:Array; public var txt2:TextField = new TextField(); public var texts:Array = new Array(); public var sprite:Sprite = new Sprite(); public var dropShadow:DropShadowFilter; public var glowFilter:GlowFilter; public var filter:Array; public var len:int; public var arraypos:int; public function fonts(){ // ドロップシャドウ dropShadow = new flash.filters.DropShadowFilter(); dropShadow.blurX = 5; dropShadow.blurY = 5; dropShadow.distance = 5; dropShadow.angle = 35; dropShadow.quality = 1; dropShadow.alpha = 0.5; //グロー glowFilter = new flash.filters.GlowFilter(); glowFilter.blurY=10; glowFilter.blurX=10; glowFilter.knockout=true; filter = [dropShadow]; stage.align = "TL"; stage.scaleMode = "noScale"; addChild(sprite); sprite.filters = filter; formats = new Array(); for(var i:int = 0; i < 10; i++) { var format:TextFormat = new TextFormat(); format.font = "MSゴシック"; format.color = 0x000000; format.size = 30+i; formats[i]=format; } txt2.width = 400; txt2.height = 300; txt2.type = TextFieldType.INPUT; txt2.multiline = true; addChild(txt2); addEventListener("enterFrame", onEnterFrame); arraypos=0; } public function onEnterFrame( event:Event ):void { var w:int = 1; var x:int = 0; var y:int = 0; var str:String = txt2.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n") .replace(/^\n+/,"").replace(/\n+$/,""); var array:Array = str.split("\n\n"); if(arraypos != array.length){ len = 0; } arraypos=array.length; str = array[array.length -1]; sprite.scaleX=1; sprite.scaleY=1; for(var j:int ;j<texts.length;j++){ try{ sprite.removeChild(texts[j]);//.text = ""; } catch(e:Object){} } if(len < str.length)len++; else len = str.length; for(var i:int = 0; i < len; i++) { try { var chr:String = str.substring(i,i+1); var txt:TextField; //if(texts.length <= i) { txt = new TextField(); txt.embedFonts = true; //txt.width = 100; //txt.height = 100; txt.autoSize= TextFieldAutoSize.LEFT; txt.type = TextFieldType.INPUT; txt.background = true; txt.backgroundColor = 0x010101*int(Math.random()*22+0xff-22); sprite.addChild(txt); texts[i] = txt; //} txt = texts[i]; if(chr == "\n") { // txt.visible = false; x = 0; y += 40; continue; } //txt.visible = true; txt.defaultTextFormat = formats[int(Math.random()*10)]; txt.text = chr; txt.rotation = Math.random()*30-15; //txt.x=0; var rect:Rectangle = txt.getRect(sprite); txt.x = x; txt.y = y; x += rect.width*0.65; //x += txt.getLineMetrics(0).width; if(x > w) w = x; //x += 30; }catch(e:Object){ //texts[i].text = ""; } } /* for(;i<texts.length;i++){ texts[i].visible = false; }*/ var h:int = y + 45; w+=10; // サイズをあわせる。 // 1.幅を var size:Number = stage.stageWidth/w*2; var size2:Number = stage.stageHeight/h; if(size > size2)size = size2; sprite.scaleX = size/2; sprite.scaleY = size; } } }