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];
}