guram journal

Icon

Just another WordPress weblog

[Study] AS3/SoundMixer.computeSpectrum

SoundMixer.computeSpectrumの練習のため,一年くらい前に作ってたもの.AS3で音から波形生成+簡単な衝突判定.
衝突判定きちんとしたいのと,跳ね方をもう少し調節したい.

画面クリックで,スタート/停止.音が出るので注意してください.
たまに表示されないときがあるけど原因が不明.
追記:そういえば忘れていたけど,音関連,YouTubeとか別画面で再生していて,競合してるとダメだという現象があった気がする.





使用している曲


プログラミング/ダイアグラム/一般常識

    1. プログラミング
      ダイアグラム
      一般常識
  • を身につけるための習作.

    知りたいことがらについて,プログラムで図を作成することで,上記3つについて一度に勉強しようという話.今回のテーマは,先日行われた「衆議院議員総選挙」.
    いきなり複雑なもの完璧なものを(作れないのに)作ろうとする悪いくせがあるので,
    少しずつ作っていって,これから少しずつ内容やデザインを修正・発展させていく予定.
    作業記録とすぐやめないためにとりあえず公開してみる.個別の話はまた今度整理して書く予定.

    投票率の遷移


    ※processing(java) Ben Fry著の「ビジュアライジング・データ ?Processingによる情報視覚化手法」の中のサンプルをほぼそのまま使用.


    過去45回分の各党の議席数およびその内訳

    XMLの読み込みで内訳を表示.とりあえず今回は,割合ではなく議席数を利用した棒グラフ.でも本来,選挙においては割合の方が関心が高いはずなので,パーセンテージを利用した内訳付きの棒グラフにするべき.また,このままだと,全体の議席数の変化は読み取れるものの,各政党ごとの内訳の変遷については情報が得られない.連続性を表示する必要がある.
    ※Flash/ActionScript 3.0 (FlashPlayer 9.0以上)

    過去4回分の選挙における各党の獲得議席数の変遷

    プログラミング的には,ベジェ曲線の練習が主な目的.
    図の話でいうと,今回の選挙は,政権交代が主な話題だったので,民主党と自民党の入れ替えとその獲得議席数が分かるよう過去4回のみを表示.ただ,55年体制が崩壊するという意味においては,過去の自民党の長い歴史を表示した方が良いと思う.

    Xcode + flex + fl.motion.*

    Xcode+Flex3の環境で,fl.motionパッケージのBezierSegmentを使う際のメモ.
    fl.motionパッケージは,Adobe Flash CS3では普通に使えるけど,Flex3には含まれていないみたい.そのため,コンパイルしようとしたら「型が見つからないか、コンパイル時定数ではありません」などとエラーがでてしまう.

    結果からいうと,

    1. flパッケージを入手
    2. Stuffit Expanderで解凍(Mac OS X付属のアーカイブユーティリティ.appではだめ)
    3. 「flexのフォルダ>frameworks > libs」に入れる
    だけで良かった.

    主に,以下のことのために相当長い時間費やしてしまった.
    • felxにflパッケージが入っていないということに気づくための時間
    • Xcodeでの外部パッケージのパスの通し方を調べる時間
    • fl.swcをどうやって手に入れたらいいかについて気づくための時間
    最後は,Xcodeでパスを通す方法で悩んでいたけど,結果的には,ダウンロードしたファイルの解凍方法がまずくて,その後も,無駄なエラーが出てしまっていた.

    以下は,経緯のメモ.

    felxにflパッケージが入っていないということは,検索して同じように悩んでいる人がいたのですぐに分かった.
    検索して調べると,解決方法が2つあるみたいだった.
    1. Adobe Flash CS3へクラスパスを通す.
    2. flパッケージを入手する方法
    1の方法は,Flash CS3を持っていない人はできない(体験版をダウンロードしている人もいた)ので,2の方法で解決することにした.以下のサイトで配布している,flパッケージをSWCいう形式のファイルを手に入れれば良いとのこと.
    fl.* Package .swc | EVOLVE:Downloadsページ

    SWCファイルとは,拡張子こそは.swcだけど,実際は,いくつかのファイルがzip圧縮されたものらしい.javaでいうと.jarのようなもの.この知識が結果的にあだになった.
    ダウンロードする際,ダイアログで「アプリケーションで開く」と「ファイルを保存する」が選べるが,はじめ「ファイルを保存する」でダウンロードしたら「flswc.zip」というファイルがダウンロードされた.解凍すれば「fl.swc」が出てくると思い,ダブルクリックで解凍すると「library.swf」「catalog.xml」の2つのファイルがはいった「fl」フォルダが出てきてしまった.
    ここで,swcがzipだということだったので,勝手に,拡張子の「zip」を「swc」に変更して,さらに「flswc.swc」を「fl.swc」にリネームして強制的に作ってみた.
    実はこれがまずくて,普通に,解凍する際に,「Stuffit Expander」を使えば,「fl.swc」というファイルが出てきて,何の問題もなかった.もしくは,ダウンロードする際,ダイアログで「アプリケーションで開く(Stuffit Expander)」で,ダウンロードすれば問題なかった.

    このあと,環境設定の「ソースツリー」などに,パスを追加しようとしてうまくいかず,しばらくXcodeのパスの通し方で時間を費やしてしまう.
    その調べ中に「fl.swc」を,flex sdkをインストールしたフォルダの中の「frameworks > libs」フォルダに入れるだけで良いと知り,コンパイルしてみると,今度はどうやら「fl.swc」は認識しているようだけど,「catalog.xmlが読み込めません」というようなエラーが出た.

    ここでやっと,パスの通し方ではなく「fl.swc」自体が問題あることが分かったので,もう一度調べてたら,Mac OS X付属のアーカイブユーティリティ.appではだめ,らしいという情報があったので,試しにダウンロードする際に,Stuffit Expanderで解凍したら普通に「fl.swc」が出てきた.

    相当時間無駄にした.

    Syntaxhighlighter+brBrbr

    Syntaxhighlighterプラグインのあとに,brBrbrプラグインをインストールすると,ソースコードの行末にbrタグが表示されてしまう 不具合が発生.

    検索すると解決方法が紹介されていた.

    インストール済みプラグインから,brBrbrプラグインを選択して,編集画面へ.
    brBrbr関数のreturnの前に,以下のように1行追加しプラグインを更新.

    function brBrbr($brbr) {
    	$brbr = str_replace(array("\r\n", "\r"), "\n", $brbr); // cross-platform newlines 
    	$brbr = str_replace("\n", "<br />\n", $brbr); // cross-platform newlines 
    	$brbr = preg_replace('!(</?(?:table|img|thead|tfoot|caption|tbody|tr|td|th| div|dl|dd|dt|ul|ol|li|pre|select|form|textarea|input| blockquote|address|p|math|p|script|h[1-6])[^>]*>)\s*<br />!', "$1", $brbr);
    	$brbr = preg_replace('|<blockquote([^>]*)>|i', "</p>\n<blockquote$1><p>", $brbr);
    	$brbr = str_replace('</blockquote>', "</p></blockquote>\n<p>", $brbr);
    	$brbr = preg_replace('/(<script.*?>)(.*?)<\/script>/ise', "clr_br('$0')", $brbr);
    	$brbr = preg_replace('/(<form.*?>)(.*?)<\/form>/ise', "clr_br('$0')", $brbr);
    	$brbr="<p>\n".$brbr."</p>\n";
    
    	/*以下の1行を追加*/
    	$brbr = preg_replace('/(<code-style.*?>)(.*?)<\/code-style>/ise', "clr_br('$0')", $brbr);  
    
    	return $brbr; 
    }
    


    code-styleタグで囲むとbrタグがきちんと消える.
    <code-style>
    [as]
    	//コード
    [/as]
    </code-style>
    

    [WordPress]SyntaxHighlighter

    ブログ記事にコードを記載するため「SyntaxHighlighter」の改造版(?)の「SyntaxHighlighter Evolved(ver.2.0.0)」というプラグインをインストールした.ActionScriptに対応していないなかったので,SyntaxHighlighterのインストールから対応させるまでのメモ.

    Read the rest of this entry »

    swf