Home

くだらないページ

サクラエディタ アイコン

サンプル画像

サクラエディタ アイコン

ほぼ自分用ですが、サクラエディタのアイコンを作ってみました。
アプリケーションのアイコンと検索用のアイコンをWindows7のガイドラインに近い感じにしてみました。後でガイドラインの消失点からズレてることに気が付きましたけど(´・ω・`)

実行ファイルの書き換えはResource Hackerで出来ますが、自己責任でお願いします。

ダウンロード

“サクラエディタ アイコン” をダウンロード

sakura_icon.zip – 5552 回のダウンロード – 116.06 KB

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 – 非営利 2.1 日本 ライセンスの下に提供されています。

WordPressの記事内でクエリ文字列を使用

旧サイトの電光掲示板では、swfのURLへクエリ文字列を追加してメッセージを表示させていました。

引越しに際して、swfへの直リンはスマートでないのと、サイトの体裁が悪いので、記事内のFlashへクエリ文字列を受け渡してやる必要が出ました。

しかし、「WordPress URL クエリ文字列」等で検索しても、希望の情報が出てきません。WordPressのタグ関数への引数で使うクエリ文字列ばかりヒットします。
「WordPress URL パラメータ」でも似たような状況です。

しようがないので、ショートコードでURLクエリ文字列を取得して記事内へ埋め込む事にしました。

function url_query_short($atts){
	extract(shortcode_atts(array(
		'name' => '',
	), $atts));
	return $_GET[$name];
}
add_shortcode('urlquery', 'url_query_short');

こんなコードをテーマのfunctions.phpへ追加しました。

使い方は、記事中にショートコードで[urlquery name=”クエリ名”]と記入すると、URLのクエリがそのまま埋め込まれます。

電光掲示板では、HTMLエディタで<object>や<embed>でFlashを埋め込み、FlashVarsパラメータにショートコードを加えています。

<object~><param name=FlashVars value="msg=">
<embed~FlashVars="msg="></embed></object>

例によってエラー処理を考えていない簡単なコードですが、目的には十分でしょう。

電光掲示板

電光掲示板です。
テキストボックスにメッセージを入れて、OKボタンをクリックすると電光掲示板に表示されます。

[swf]/flash/lightboard/lb.swf,320,320,msg=[/swf]
表示内容

かなり初期作を旧サイトから引越しさせました。
ParaFla!のバージョンが0.7a5の時に作ったらしい。今ではParaFla!は年に一度くらいしか触らないのですが。この頃は大変お世話になりました。

Photoshopで複数ファイル間で共通画像を使う

ファイルのリンク

Photoshop CS5.5での作業で複数ファイル間で共通画像を使用している時に、その画像を編集した場合に全てのPSDでコピペを繰り返すと言った作業が面倒なので、何か良い方法が無いかと探しましたがIllustratorのリンクに相当する機能が無いとの事。

置き換えなら

しかし、共通画像のレイヤーをスマートオブジェクトにしておけば、共通画像だけをファイル化しておいて編集後に置き換えが可能なのでコピペよりは作業が楽になります。

そこで、全てのファイルにおいて、スマートオブジェクトのレイヤーに特定の名前を付けておき、レイヤーの選択と「コンテンツを置き換え」をアクションにして、画像の編集後にバッチを使用し更新が更に楽になりました。

FlashDevelopの一行コードフォーマット

コードフォーマット

僕が最近FlashDevelop4を使っていて、微妙だなという点がコードフォーマットです。
コードフォーマットを実行するとカーソル位置がかなり変わってしまって、コーディングの流れが切れる感覚なのですね。
単にちょっとだけ書き換えたコードを整形したいと言う考えで使うなと言う事でしょうか?

ですが、エンターキーやセミコロン「;」を入力するとフォーマットする機能がデフォルトで有効になっているのだから、一行だけのフォーマットならこれでいいじゃないかと思い立ったのですね。

そこで、マクロにしてショートカットキーに割り当ててみると案外使い勝手が良かったのです。

もちろんブレース「{」の改行するかしないかと言うのは出来ませんが、軽く整形するだけなら十分でしょう。カーソル位置が行の末尾になりますが、思いっきりズレる事に比べれば問題ないと言えるでしょう。

やり方

メニュー→マクロ→マクロの編集 で新規ボタンで追加したマクロのEntriesの[…]をクリックして

ScintillaCommand|LineEnd
ScintillaCommand|NewLine
ScintillaCommand|LineCut
ScintillaCommand|CharLeft

と入力して、ショートカットキーを設定するだけ。

ただし、ツール→環境設定→ASComletionのDisable Code Reformatがtrueになっていると使えません。

FlashDevelopでActionScript3.0のリファレンスを呼び出す

リファレンスの事

FlashDevelopのF1キーを押して呼び出すヘルプは、デフォルトでGoogleに検索をかけていますが、いまいち検索結果を選ぶ一手間が掛かります。

今更ですが、何かいい方法をと探した結果。XXDoc.htmを使ってローカルに保存してあるリファレンスを呼び出す方法を見つけました。
ところが、起動パスにスペースが入っていると上手くブラウザが起動しない。ダブルコーテーションでパスを囲っていてもスペースで途切れてしまうので面倒で見送り。

他には、Doc?でローカルにリファレンスを保存してFlashDevelopからテキストを出力してDoc?に反応させる方法。しかし、結局はDoc?に検索をさせているので、一手間は掛かります。

ローカル保存したAS3リファレンスのブラウザ表示 また、丸ごと保存するツールを使ってローカルに保存したリファレンスでも、パッケージやクラスの一覧が表示されません。

リファレンスサイトを一発で参照したい

ローカル保存は諦めるとして、一発でリファレンスサイトを参照したいと言う希望を叶えるべくバッチファイルを書いて見ました。

@echo off
set URL=http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/
set TMP=%1
set PKG=%TMP:.=/%
if %PKG%==%TMP% goto toplevel
start %URL%%PKG%/%2.html#%3
exit
:toplevel
start %URL%%2.html#%3

asdoc.batと言うバッチを作ったら、FlashDevelopのツール→環境設定→AS3Context→Documentation Command Lineに

cmd;/c (保存したパス)asdoc.bat $(ItmTypPkg) $(ItmTypName) $(ItmName)

と入力します。

問題点は、プロジェクト内のクラスや追加したライブラリの場合そのパッケージ名のパスにアクセスしようとする事です。出来ればバッチの中で抑制したいですね。

今年もよろしく

遅ればせながら新年の挨拶を。

年賀状はSculptris alpha 6でモデリングとレンダリングをしてます。あのレンダリングはウインドウサイズまでのサイズしかレンダリング出来ないので、全画面でも印刷用には微妙な所ですが少し頑張って300dpi程度にはなってると思います。

去年の8月ごろからAS3へ移行を始めてぼちぼち書いてますが、こんな事ならさっさと始めていればよかったw
分からないことが多すぎですw

スライドショー

スライドショーの話題を目にしたので、ParaFla!で簡単にスライドショーが作れるASを書いて見ました。

サンプル

サンプルのプロジェクトをダウンロードしてzipを展開した後、slideshow.pflをParaFla!で開くとslideshowと言うスプライトがあります。

スプライトの中は、表示する画像が1フレームずつ並んでいるだけです。ファイルリストから配置したまま、サイズや位置は変えていません。
ファイルリストを複数選択してイベントリストにドラッグするだけの簡単なお仕事で十分です。

メインのタイムラインの最初にアクションを挿入してアクションスクリプトにします。アクションスクリプトを編集して、

#FILE "slideshow.as"

と入力します。サンプルではすでに入力してあります。

プレビューをするとスライドショーになっています。

カスタマイズ

少しだけ、自分のプロジェクトに合わせてカスタマイズする部分があります。

slideshow.asをテキストエディタで開いて編集します。

//設定ここから
var slideName = "slideshow"; //スライドショーにするスプライトのインスタンス名
var wait = 3; //次の画像を表示する時間(秒)
var rand = true; //ランダム表示にするか
var effectType = ""; //トランジションのエフェクト名(""でランダム)
var fps = 30; //プロジェクトのfpsと同じにする
var useBackgroundImage = false; //背景に画像を置いているか
var backgroundColor = 0x000000; //プロジェクトの背景色
//設定終わり

ここの部分を書き換えます。
簡単にはwaitで秒数を指定と、fpsでプロジェクトのプロパティのfpsと同じ値を、backgroundColorでプロジェクトのプロパティの背景色と同じ値を入力します。
メインのイベントリストでアクションスクリプトの前に画像を固定で追加した場合、その画像が背景になります。useBackgroundImageのfalseをtrueに変えてください。

slideshowのスプライトに配置した順番にスライドショーを表示する場合は、randのtureをfalseに変えます。

ダウンロード

サンプルのダウンロード 

AIR for AndroidのアプリケーションID

AIR3にてAndroidとiOS用のプロジェクトが共通化出来る事を期待して、FlashDevelop上で開発を始めようとしたのです。
しかし、AIRアプリケーションIDで少々つまづいたのでメモにしときます。

Androidのパッケージ名は通常ドメイン名を逆にするように指示されているらしいのでそのようにしています。
このサイトのドメインだと、net.ku-daになりますが、ハイフンは許可されないのでアンダースコアに変えるように指示されています。
つまりnet.ku_daですね。

AIRのアプリケーションIDは逆にハイフンは許されていて、アンダースコアは使えません。 そこで、アプリケーションIDをハイフンにしておくのですが、AIR SDKがパッケージ時にハイフンをアンダースコアに自動で変えてパッケージ名にしてくれます。
しかし、FlashDevelopはハイフンのままをパッケージ名として起動しようとするので、起動に失敗します。

SetupApplication.batのAPP_IDだけ書き換えてもいいと思いますが、コンパイル時にFlashDevelopのバッチは 、APP_IDがapplication.xmlのidタグにあるかチェックしているので、このチェックを外すかしなければなりませんが、折角チェックをしてくれるのだからそのままにしておきます。

なのでRun.bat中のAndroidアプリ起動部分を

adb shell am start -n air.%APP_ID%/.AppEntry
↓
adb shell am start -n air.%APP_ID:-=_%/.AppEntry

と、App_IDのハイフンをアンダースコアに置換しておけばOKです。

蛇足

AIRのパッケージャはパッケージ名の先頭にair.を付け足してくれるのでガッカリしますね。AIR製アプリかが判別付くので親切なのかも?

Adobeでは変え方も指示しているので、嫌ならば変えればいいのですが。

サブフォルダ

ExtendScript Toolkit2

PhotoShopで、フォルダ内画像を自動処理をするためにアクションではファイル名による選別が不可能なため、Javascriptを利用しようと思い立った。

ExtendScript Toolkit2でエディタのフォントを固定幅フォントにしたら、ボールドを独自に持っていないフォントだとボールドで強調された文字の幅が変わって固定幅の意味がなさないのは気にしない事にした。Windows版のみかもしれないが。

フォルダ内処理のめどが立ったので、サブフォルダも自動で処理したい。

サブフォルダ

Folder.getFiles()で、正規表現にてフォルダを検索していたのだが、フォルダ内の全てのファイルを取得するとフォルダも一緒に列挙している様子。

戻り値のArrayに、FileとFolderの両方のオブジェクトが入っている。

function foo(files){
    for(var i = 0;i < files.length;i++){
        if(typeof(files[i].getFiles) == "function"){
            //Folderなので再帰
            foo(files[i].getFiles());
        }else{
            //Fileの処理
        }
    }
}

こんな感じに、再帰でサブフォルダを処理してみた。

検索
Feed
アーカイブ
Meta

Return to page top