Home > flash Archive
flash Archive
文字列の検索について割とどうでもいいこと
- 2010年5月18日 00:56
- flash
var str :String = "テスト";
var i :uint = 0;
for (i = 0; i < 100000; i ++)
{
str.search(/テスト/);
}
for (i = 0; i < 100000; i ++)
{
str.indexOf("テスト");
}
単に任意の文字列が含まれているかどうかの検索だけなら、
無駄に正規表現使うよりもindexOfのほうが20~30倍くらい速い。
検索対象文字列 or 検索文字列を長くしてもおなじ。
正規表現は要はパターンマッチだから indexOf と比べて遅くいのは当然、といえばまあそうなのかも。
- Comments: 0
- TrackBacks: 0
多重ループからの脱出
- 2010年5月17日 23:59
- flash
ラベル使うと2重、あるいは3重といった多重ループの中から簡単に抜け出すことができる。
ということをつい最近知った。
LABEL:
for (var i:int = 0; i < 3; i++)
{
for (var j:int = 0; j < 3; j++)
{
if ((i == 1) && (j == 1)) break LABEL;
trace(i,j);
}
}
まあループって重ねても2つ、稀に3つのときもある、というくらいだから、
あんまり使いどころがなかったりするのだけれど。
- Comments: 0
- TrackBacks: 0
papiness class library :: update
- 2010年3月21日 00:09
- flash
久々にクラスライブラリを更新した。
掃除と更新で今日一日が大方終わってしまったな。
- Comments: 0
- TrackBacks: 0
空白文字を無視して単語を抽出
- 2010年2月 9日 03:28
- flash
正規表現の話。
下のサンプルはAS3だけど基本的には他の言語と大差ないかと。
改行や空白などが間に挟まった単語で、それらを全部マッチさせたい場合、
たとえば「りんご」という単語を例にとって見た場合、下記のように「り\s.ん\s.ご」という正規表現パターンで抽出することができます。
var str1 :String = "りんご"; var str2 :String = "り ん ご"; var str3 :String = "り\nん\n\n\n\n\nご"; var reg :RegExp = /り\s.ん\s.ご/; trace( str1.match( reg ) ); trace( str2.match( reg ) ); trace( str3.match( reg ) );
"\s"は任意の空白文字(スペース・タブ・改行・復帰)を指します。
- Comments: 0
- TrackBacks: 0
タイムライン上のサウンドをcomputeSpectrumで解析
- 2010年1月24日 02:20
- flash
SoundMixerのcomputeSpectrumって、
タイムライン上にストリーミングで配置してるサウンドも解析してくれるものだと思ってたら、
どうも解析されない。
一旦下記のようなスクリプトで、適当なmp3(空でよい)を読み込んで再生すると
タイムライン上のものもきちんと解析されるようになった。
var sound :Sound = new Sound();
sound.load( new URLRequest("blank.mp3") );
sound.play();
いやはや、謎仕様だ。
- Comments: 0
- TrackBacks: 0
Papervision3D 両面にテクスチャとかエフェクト掛けれるようにするとか
- 2009年9月18日 02:29
- flash | papervision3D
日々いろんなことをやっていると、
いろんなことを忘れていくので、
こうしてメモとして記事に起こすとちょっとは忘れなくなる、かな。
(たとえ後で見返すことがなくとも)
plane.doubleSided = true; // 両面にテクスチャを適用
plane.useOwnContainer = true; // alphaとか(ブラーやグローなどの)エフェクトが使用可になる // ただし、CLICK効かなくなるので、代わりにPRESSを使う
- Comments: 0
- TrackBacks: 0
12 National Language Translator
- 2009年9月13日 17:13
- flash
Google AJAX Language APIを使って、12ヶ国語翻訳機を作ってみた。
対応言語:英語、日本語、中国語、韓国語、ドイツ語、フランス語、イタリア語、スペイン語、オランダ語、ポルトガル語、ロシア語、トルコ語
以下、翻訳用のクラス。
[class file: GoogleLanguage.as (AS3.0) ]
var gl :GoogleLanguage = new GoogleLanguage();
gl.addEventListener( GoogleLanguage.COMPLETE, glComplete );
gl.translate("こんにちは", "jp", "en");
function glComplete ( evt :Event ) :void
{
trace( gl.result );
}
使い方はこんな感じ。
これで日本語→英語(例:"こんにちは"→"Hello")に翻訳されます。
- Comments (Close): 0
- TrackBacks: 0
EasingGenerator
- 2009年9月13日 16:14
- flash
AltSwitch - EasingGeneratorリリース
これはTweenerを思い通りに制御したいときに便利な感じがする。
mxp形式パッケージ。
- Comments (Close): 0
- TrackBacks: 0
みんないなくなってしまえばいいと思うよ。
- 2009年8月27日 02:20
- flash
function hide ( obj :DisplayObjectContainer ) :void
{
while ( 0 < obj.numChildren )
{
var m :* = obj.getChildAt(0);
if ( m is DisplayObjectContainer )
hide( m );
m.parent.removeChild( m );
m = null;
}
}
// rootでこれ呼ぶとステージ上からすべての表示オブジェクトが消滅する(参照も外れる)
hide( this );
ほんとうに消滅します。
(そしてありとあらゆる親子関係が無くなります)
ブラシツールや鉛筆ツールで適当に描いてみた絵も、
システマティックに並べてみたMovieClipやUIComponentも、
forループで数百数千個と生み出したSpriteも、
ぜんぶぜんぶ、消えてしまいます。
通称、みんな死んぢまえメソッド(今考えた)。
クラス化しておこうかと思ったけど、
ぶっちゃけそれほどのことはないし、そもそも使う機会がほとんどなさ気なので、
まあいいや。
- Comments: 0
- TrackBacks: 0
"N as Boolean" is false
- 2009年8月14日 02:51
- flash
var n :int = 1; trace( n as Boolean ); → false
var n :int = 1; trace( Boolean ( n ) ); → true
as *** で型キャストしてばかりだと、
こんなところでつまずくから目も当てられにゃい。
- Comments: 0
- TrackBacks: 0
Home > flash Archive