ActionScript3.0 における音楽再生と停止

AS 3.0において、mp3を埋め込んで再生するのはすごく簡単で、 import flash.media.Sound; [Embed(source='hoge.mp3')] private const BGM01:Class; private function play():void{ var s:Sound = new BGM01(); s.play(0,256) } とかやればいい。埋め込んだデ…

Actionscript 3.0でウェイトをかける

なんかsleep(ミリ秒)なんてのを期待していたのだが、みつからなかったので自作。 import flash.utils.*; public function wait(count:uint ):void{ var start:uint = getTimer(); while(getTimer() - start < count){ } } 単位はミリ秒。

Actionscript 3.0 におけるファイル間グローバル定数

Actionscript3.0はファイルを分割して記述できるが、そのスコープはかなり厳しい。まず、各 packageには一つしかクラスをかけない。package宣言の後にはいくらでもクラスや定数、関数を書けるが、これは別のファイルからは見えない。したがって、異なるファ…

スプライトを動かす

キーイベントが取れたので、スプライトを動かしてみる。 package { import flash.display.*; import flash.text.*; import flash.events.*; import flash.ui.*; public class SpriteTest extends Sprite { private var field:Sprite; private var player:Spr…

キーイベント

キーイベントを取る。addEventListenerもJavaではおなじみ。 package { import flash.display.*; import flash.text.*; import flash.events.*; import flash.ui.*; public class KeyTest extends Sprite { private var tf:TextField; public function KeyTe…

vimで Actionscriptのファイルタイプ追加

あんまりActionScript が Javaっぽいので、vim で *.asファイルを開いたときに、javaモードで開くようにしてしまえ。.vimに以下の内容のfiletype.vimを作る。 % cd .vim % cat filetype.vim augroup filetypedetect au BufNewFile,BufRead *.as setf java au…

CentosでFlexしてみる

FlexはJavaを使ってるだけあって ノートでは遅いので、CentOSのサーバに入れてみる。まず、どんなjavaが入っているか確認する。 % which java /usr/bin/java % java --version java version "1.4.2" gij (GNU libgcj) version 4.1.2 20071124 (Red Hat 4.1.2…

CygwinでFlexしてみる

やっぱり今はFlashの時代だよなぁ、でも買うと高いよなぁ、と思ってたら、FlexというFlash作成ツールのSDKが無料ということなので入れてみる。まず、 http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3sdk にいって、ダウンロードして、展開。と…

メモリ不足でコンストラクタが呼ばれない

AIXで、datasizeが不足するとコンストラクタが呼ばれないという現象にあってハマったので、覚書。こんなコードを書いた。 const int SIZE = 50000000; class Class{ int buf[SIZE]; public: Class(void){ printf("Hello\n"); }; }; int main(void) { printf(…

stringのc_str()の指す先が破壊される

stringで作った文字列をc_str()でconst char*に受けたとき、後でそれを参照しようとすると値が破壊されている。ソースはこんな感じ。 #include <iostream> #include <mpi.h> #include <string> #include <sstream> #include <fstream> #include <iomanip> using namespace std; int main(int argc,char **argv){ i</iomanip></fstream></sstream></string></mpi.h></iostream>…

Cygwinでファイル名をフルパスでクリップボードにコピー

C#

Cygwinをメインに使っている場合、ファイルへのパスが実際の場所と違うのに困ることがある。たとえばファイルをメールソフトに添付するときとか。だいたいディレクトリは深くなるので、いちいちメーラで目的のディレクトリまで降りていくのは面倒だ。という…

Cygwinでsudoもどき

C#

Vistaを使ってると、たまに管理者権限じゃないと触れないファイルがあって鬱陶しい。そこで、Cygwin上でsudoもどきをやるためのコードを組んだ。引数のファイルをパスから探し、管理者権限で実行する。以下ソース。 using System; using System.IO; using Sy…

環境変数PATHを探す

C#

ファイル名を指定されたとき、環境変数PATHからフルファイル名を探したかったので、そういうコードを組んだ(linuxでいうところのwhich)。 System.Environment.GetEnvironmentVariable("Path")でPATHの文字列を取得し、splitで分割、foreachで探してExistsで…

ファイルサイズとタイムスタンプの取得

C#

C#でファイルサイズの取得にはFileInfo.Lengthを、タイムスタンプの取得にはGetLastWriteTimeを使う。 using System; using System.IO; public class dir { static void Main(){ string cdir = Directory.GetCurrentDirectory(); string[] files = Directory…

PaintBoxによる直接描画

前回はDataGridViewで表示していたが、自分の用途には多機能すぎる気がしたので、PaintBoxにより描画の面倒を自前で全部見ることにした。とりあえず表示だけならこんな感じ。DataGridView使うより楽な気がする。描画でSolidBrushとかをちゃんとdisposeすべき…

コンポーネントの覚書

C#

さっきのエントリは長くなったので、覚書をこっちに。 コンポーネントを親コンテナ全体に広げるには、Dockプロパティに、DockStyle.Fillをセット。 dgv.Dock = DockStyle.Fill; Colorオブジェクトを、HTML記法から作るのはColorTranslator.FromHtml DataGrid…

DataGridView

春Mのグリッド表示のためのコンポーネントを探していたのだが、DataGridViewで良いらしい。とりあえずDataGridViewを使って、春Mっぽい画面を作ってみる。データとか全部決めうちだが、だいぶ春Mっぽくなった。 DataGridViewは単に文字表示するだけに使う…

ShowInTaskbarとホットキー

春Mのまねして、ホットキーでタスクトレイに収まるようにしようとしたら失敗。タスクトレイに収めるためには、WindowStateをFormWindowState.Minimizedにして、ShowInTaskbarプロパティをfalseにするのだが、そうするとホットキーイベントが受け取れなくな…

トレイアイコン(NotifyIcon)

タスクトレイにアイコンを表示するサンプル。NotifyIconクラスを使う。同じディレクトリにtest.icoを置いておく。 using System; using System.Drawing; using System.Windows.Forms; namespace WinApp { public class TestForm : Form { NotifyIcon notifyi…

VistaでCygwinからC#コンパイル

Windows XPの場合は.bashrcに alias csc='/cygdrive/c/WINDOWS/MICROSOFT.NET/Framework/v2.0.50727/csc' と指定したが、Windows Vistaの場合は、以下のように指定する。 alias csc='/cygdrive/c/Windows/Microsoft.NET/Framework/v2.0.50727/csc.exe' 同じ…

ホットキーとイベントハンドラ

春Mに限らず、ファイラやランチャはホットキーで立ち上がってくれないと困る。ホットキー+キーボード操作でユーティリティーが起動できれば、ほぼ全部の操作がキーボードだけで済む。というわけで、ホットキーのサンプル。 using System; using System.Dra…

ウィンドウの作成

C#

なんかコンポーネントのテストとか、ウィンドウプログラミングもVisual Studioでやるのが面倒になってきたので、コマンドラインからWindowを出してみる。 using System; using System.Drawing; using System.Windows.Forms; namespace WinApp { public class…

Copal近況

ついでにCopalの近況もこっちに書いておくか。Copalはフォントの変更と、タブ幅の変更の要望が来ていて、そんくらい簡単だと思って実装に入ったら、MSのタブ幅のシステムが複雑怪奇で未だに理解できていない。いくつかテストコードを書いたが、まだフォント…

ディレクトリとファイル一覧

春Mを作る第一歩、ファイルとディレクトリ一覧を取得しないといけない。そのサンプルコード。 using System; using System.IO; public class dir { static void Main(){ string cdir = Directory.GetCurrentDirectory(); string[] files = Directory.GetFil…

CygwinからC#コンパイル

いろいろテストするのにいちいちVisual Studio立ち上げてたら重くて仕方ないので、Cygwinからコマンドラインでコンパイルできるようにする。C#コンパイラはcsc.exe。うちの環境(Visual Studioデフォルトオプションでインストール)では、 C:\WINDOWS\MICROSOF…

ディレクトリとファイル一覧(パスなし)

Directory.GetFilesやGetDirectoriesから得られるフルパスからファイル名、ディレクトリ名だけを取り出さないといけない。そのためには、Path.GetFileNameメソッドを使う。ディレクトリでも使えるようだ。というわけで修正版。 using System; using System.I…

まずは

とりあえずメニューと、「終了」をクリックしたら終了するようにしてみた。どうせthis.Close();だろうと思ったらそうだった。C#の拡張子は*.csで、C++と違ってヘッダファイルがないのがいい感じ。Javaより動作軽いし。ここまでをsvnリポジトリに放り込んで今…

新規作成で作られるファイル

新規作成でプロジェクトを指定。このとき「ソリューションのディレクトリを作成する」のチェックをはずしておく。意味はまだわからないが、無駄にディレクトリを掘ってもしょうがないような気がしたので。最初に作られたファイルは以下のとおり。 shundei sh…

春泥

そもそもVisual Studioをインストールしようとしたきっかけは、あまりのVistaの使いにくさに「ちゃんとしたファイラがないと仕事ができない」と実感したから。ずっと春Mというファイラを使っていたが、もう何年も更新がないのでいろいろ不具合が出てきてい…

ヘルプ

Visual Studioのヘルプもインストールする(デフォルトではインストールされない)。MSDN LibraryのDisc 1を挿入し、インストールするものをチェック。その後 Disc 4まで。