「Flex/WaveForm2」の編集履歴(バックアップ)一覧はこちら

Flex/WaveForm2 - (2014/09/11 (木) 18:04:56) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

|開発環境|Apache Flex SDK 4.12.1| ||FlashDevelop 4.6.2.5| |実行環境|Microsoft Windows 8.1 (64bit)| |プロジェクトの種類|ActionScript 3/AS3 Project| |プロジェクト名|WaveForm2| #table_zebra(project, #fff, #eee) http://www.maroon.dti.ne.jp/lance/flash/WaveForm2.html Output/General |Dimensions|240 x 200 px| #table_zebra(prop, #fff, #eee) Main.as #highlight(actionscript){{ package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; public class Main extends Sprite { private var wflist:Vector.<Vector.<Number>> = new Vector.<Vector.<Number>>; private var targetwf:Vector.<Number>; private var reverse:Number = 1; private var tfReverse:TextField; private var sound:Sound = new Sound; private var soundChannel:SoundChannel = null; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var name:Vector.<String> = new Vector.<String>; var wf:Vector.<Number>; var i:int; var t:Number; name.push("サイン波"); wf = new Vector.<Number>(100); for (i = 0; i < 100; i++) { t = i / 100; wf[i] = Math.sin(2 * Math.PI * t); } wflist.push(wf); name.push("矩形波"); wf = new Vector.<Number>(100); for (i = 0; i < 100; i++) { t = i / 100; wf[i] = (t < 0.5) ? 1 : -1; } wflist.push(wf); var dtf:TextFormat = new TextFormat; dtf.align = TextFormatAlign.CENTER; dtf.size = 16; for (var r:int = 0; r < wflist.length; r++) { var tf:TextField = new TextField; tf.x = 10; tf.y = 10 + 60 * r; tf.width = 100; tf.height = 50; tf.background = true; tf.backgroundColor = 0x7fff7f; tf.border = true; tf.defaultTextFormat = dtf; tf.name = r.toString(); tf.selectable = false; tf.text = name[r]; tf.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); tf.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); addChild(tf); var sp:Sprite = new Sprite; sp.x = 120; sp.y = tf.y; addChild(sp); var g:Graphics = sp.graphics; g.beginFill(0xffffbf); g.drawRect(0, 0, 100, 50); g.endFill(); g.lineStyle(1); g.moveTo(100, 25); g.lineTo(0, 25); g.lineStyle(1, 0xff0000); wf = wflist[r]; for (i = 0; i < 100; i++) { g.lineTo(i, 25 - 25 * wf[i]); } } tf = new TextField; tf.x = 10; tf.y = 10 + 60 * r; tf.width = 100; tf.height = 25; tf.background = true; tf.border = true; tf.defaultTextFormat = dtf; tf.selectable = false; tf.text = "Reverse(Shift)"; addChild(tf); tfReverse = tf; dispReverse(); sound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey); stage.addEventListener(KeyboardEvent.KEY_UP, onKey); } private function dispReverse():void { tfReverse.backgroundColor = (reverse < 0) ? 0xff7f00 : 0xbfbfbf; } private function onSampleData(e:SampleDataEvent):void { // 2048~8192 for (var i:int = 0; i < 8100; i++) { var t:int = i % 100; var value:Number = targetwf[t]; e.data.writeFloat(value); e.data.writeFloat(value * reverse); } } private function onKey(e:KeyboardEvent):void { reverse = e.shiftKey ? -1 : 1; dispReverse(); } private function onMouseDown(e:MouseEvent):void { var i:int = parseInt(e.target.name); targetwf = wflist[i]; reverse = e.shiftKey ? -1 : 1; dispReverse(); var st:SoundTransform = new SoundTransform; st.volume = 0.2; soundChannel = sound.play(0, 0, st); } private function onMouseUp(e:MouseEvent):void { if (soundChannel != null) { soundChannel.stop(); soundChannel = null; } } } } }}
|開発環境|Apache [[Flex]] SDK 4.12.1| ||FlashDevelop 4.6.2.5| |実行環境|Microsoft Windows 8.1 (64bit)| |プロジェクトの種類|ActionScript 3/AS3 Project| |プロジェクト名|WaveForm2| #table_zebra(project, #fff, #eee) http://www.maroon.dti.ne.jp/lance/flash/WaveForm2.html Output/General |Dimensions|240 x 200 px| #table_zebra(prop, #fff, #eee) Main.as #highlight(actionscript){{ package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; public class Main extends Sprite { private var wflist:Vector.<Vector.<Number>> = new Vector.<Vector.<Number>>; private var targetwf:Vector.<Number>; private var reverse:Number = 1; private var tfReverse:TextField; private var sound:Sound = new Sound; private var soundChannel:SoundChannel = null; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var name:Vector.<String> = new Vector.<String>; var wf:Vector.<Number>; var i:int; var t:Number; name.push("サイン波"); wf = new Vector.<Number>(100); for (i = 0; i < 100; i++) { t = i / 100; wf[i] = Math.sin(2 * Math.PI * t); } wflist.push(wf); name.push("矩形波"); wf = new Vector.<Number>(100); for (i = 0; i < 100; i++) { t = i / 100; wf[i] = (t < 0.5) ? 1 : -1; } wflist.push(wf); var dtf:TextFormat = new TextFormat; dtf.align = TextFormatAlign.CENTER; dtf.size = 16; for (var r:int = 0; r < wflist.length; r++) { var tf:TextField = new TextField; tf.x = 10; tf.y = 10 + 60 * r; tf.width = 100; tf.height = 50; tf.background = true; tf.backgroundColor = 0x7fff7f; tf.border = true; tf.defaultTextFormat = dtf; tf.name = r.toString(); tf.selectable = false; tf.text = name[r]; tf.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); tf.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); addChild(tf); var sp:Sprite = new Sprite; sp.x = 120; sp.y = tf.y; addChild(sp); var g:Graphics = sp.graphics; g.beginFill(0xffffbf); g.drawRect(0, 0, 100, 50); g.endFill(); g.lineStyle(1); g.moveTo(100, 25); g.lineTo(0, 25); g.lineStyle(1, 0xff0000); wf = wflist[r]; for (i = 0; i < 100; i++) { g.lineTo(i, 25 - 25 * wf[i]); } } tf = new TextField; tf.x = 10; tf.y = 10 + 60 * r; tf.width = 100; tf.height = 25; tf.background = true; tf.border = true; tf.defaultTextFormat = dtf; tf.selectable = false; tf.text = "Reverse(Shift)"; addChild(tf); tfReverse = tf; dispReverse(); sound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey); stage.addEventListener(KeyboardEvent.KEY_UP, onKey); } private function dispReverse():void { tfReverse.backgroundColor = (reverse < 0) ? 0xff7f00 : 0xbfbfbf; } private function onSampleData(e:SampleDataEvent):void { // 2048~8192 for (var i:int = 0; i < 8100; i++) { var t:int = i % 100; var value:Number = targetwf[t]; e.data.writeFloat(value); e.data.writeFloat(value * reverse); } } private function onKey(e:KeyboardEvent):void { reverse = e.shiftKey ? -1 : 1; dispReverse(); } private function onMouseDown(e:MouseEvent):void { var i:int = parseInt(e.target.name); targetwf = wflist[i]; reverse = e.shiftKey ? -1 : 1; dispReverse(); var st:SoundTransform = new SoundTransform; st.volume = 0.2; soundChannel = sound.play(0, 0, st); } private function onMouseUp(e:MouseEvent):void { if (soundChannel != null) { soundChannel.stop(); soundChannel = null; } } } } }}

表示オプション

横に並べて表示:
変化行の前後のみ表示: