2009年9月30日水曜日

-keep-generated-actionscript

MXMLファイルは、SWFにコンパイルする際、ActionScriptのクラスにコンバートされます。Flexプロジェクトのコンパイラ引数に、-keep-generated-actionscriptオプションを追加してあげることで、その内容を確認することができます。

Flexプロジェクトを選択して、プロパティ > Flexコンパイラ > 追加コンパイラ引数 に、-keep-generated-actionscript=true を追加してください。

コンパイル実行時に、 generated というフォルダが、ソースフォルダ以下に生成され、そこに ActionScript のファイルがあります。

mxml と ActionScript を分離する

ファイル構成

src
│  Sandbox.mxml
└─sandbox
        Sandbox.as

MXMLファイル

Sandbox.mxml は以下の通り。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    xmlns:sandbox="sandbox.*">
    <sandbox:Sandbox id="sandbox" />
</mx:Application>

ASファイル

Sandbox.as は以下の通り。

package sandbox{
  
    import mx.core.IMXMLObject;
    import mx.events.FlexEvent;
    
    public class Sandbox implements IMXMLObject {
        
        private var view:Object;
        
        public function initialized(document:Object, id:String):void {
            view = document as Object;
            view.addEventListener(FlexEvent.CREATION_COMPLETE, 
                function (event:FlexEvent):void {
                    // ページ作成完了時の処理を記述
                }
            );
        }
        
    }
}

フィーリングで書いててもコード保管してくれるエディタは大好き。

source-path で見つかったファイルのパッケージ構造 'aaa' は、定義のパッケージ 'bbb' と同じである必要があります。

原因
利用しようとしてるクラスファイルのパッケージ定義が、パスと一致していなかった。

document 以下のTABキーを無効化

header タグ以下に追加。

<script language="javascript" type="text/javascript">
window.onload = function() {
    document.onkeydown = function() {
        if(event.keyCode == 9) { return false; }
    }
}
</script>

2009年9月29日火曜日

Mac OSX のコンピュータ名を変更

システム環境設定の共有パネルに、コンピュータ名を編集する項目が。

2009年9月28日月曜日

ありがとうジーノ よろしくアクセラ

ミラジーノはアクセラにクラスチェンジした。
排気量が大幅に上がった。
燃費効率が少し上昇した。
3ナンバーになった。
顔がいかつくなった。
車税が大幅に上がった。

上げればキリが無いですが、この度マツダアクセラに乗り替える運びとなりました。ジーノとはかれこれ9年もの付き合い。共に過ごした日々を思うと、別れるのが寂しいなぁと。まだ整 備されて中古販売されるそうなので、優しい里親に買われて、余生を過ごしてもらえたらなぁと。

いやぁ本当に色々あった。青春があったね。青年編でした。今度はアクセラに乗って中年編だ。いい思い出がれるといいなと。

2009年9月17日木曜日

クラス名を取得する

こんな感じでいけるかな?
flash.utils.getQualifiedClassName でもいいと思うけど。

function getClassName(obj:Object):String {
    return obj.constructor.toString().match(/^\[.+ (.+)\]$/)[1];
}

正規表現 メタ文字

特にActionScript用ってわけじゃないけど、自分用メモ。

.任意の1文字に一致する。
^文字列の先頭に一致する。
$文字列の最後に一致する。
*0回以上の繰り返しに一致。
+1回以上の繰り返しに一致。
?0回または1回の繰り返しに一致する。
|or
()グループ化する。
[]指定した文字のいずれかに一致する。
\メタ文字のエスケープ

2009年9月16日水曜日

swfファイルのキャッシュを防ぐ

swfファイルに時間などで作成した値を付加して、都度新しいファイルを参照させるとかもあるようだけど、公式的には(?)こういう風にしてねという事らしい。

SWF ファイルのキャッシュを防ぐ方法

ページ単位でキャッシュされなくなってしまうけど、それでも問題なければ、ユーザに余計なキャッシュを残さないためにも、こっちの手段をとったほうがいいんだろうな。

2009年9月10日木曜日

Flex Bulider ショートカットキー

エディタが変わるたびに困ります。

コメント

Ctrl + / 行コメント
Ctrl + Shift + C ブロックコメント
Ctrl + Shift + D CDATA

エディタ

Ctrl + Alt + ↓行複製
Ctrl + D行削除
Ctrl + L指定行へジャンプ
F3定義へ移動

実行

Ctrl + F11実行
F11デバッグ

2009年9月8日火曜日

Flash CS4 の『定数の構成』機能

Flash CS4 には、定数の構成という機能があるそうで、以下の場所で設定できます。

パブリッシュ設定 -> Flash -> スクリプト横の設定 -> 定数の構成

たとえば

名前
flamemo::Debug
true

何て設定しておいて

flamemo::Debug
{
    trace ("デバッグ大好き!");
}

と書いておけば、通りたくないときは、値を false にすればいいというわけです。
こりゃ便利だ。

ちなみに、Flex Builder 3 では、以下の場所で設定できます。

プロジェクトのプロパティ -> コンパイラ -> 追加コンパイラの引数

以下のように入力する。他の項目が入力されていれば、後ろに付け足せばO.K.

-define=flamemo::Debug,true

2009年9月4日金曜日

文字列操作

すぐ忘れるので。 単純な文字列置換
var msg:String = 'こんにちは、__name__さん!';
msg = msg.replace(/__name__/, 'ほげお');
trace(msg); // こんにちは、ほげおさん!

2009年9月1日火曜日

Firefox のアドオン WebDeveloper でCSS編集

最近めっきり CSS を触ることがなくなったんだけど、WebDevelper を追加した Firefox で、Ctrl + Shift + E で、CSS を編集できること知った。今更知った。 メニューからは、CSS -> CSSを編集するで開けます。 すげぇ便利。