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 は以下の通り。

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

ASファイル

Sandbox.as は以下の通り。

  1. package sandbox{  
  2.     
  3.     import mx.core.IMXMLObject;  
  4.     import mx.events.FlexEvent;  
  5.       
  6.     public class Sandbox implements IMXMLObject {  
  7.           
  8.         private var view:Object;  
  9.           
  10.         public function initialized(document:Object, id:String):void {  
  11.             view = document as Object;  
  12.             view.addEventListener(FlexEvent.CREATION_COMPLETE,   
  13.                 function (event:FlexEvent):void {  
  14.                     // ページ作成完了時の処理を記述  
  15.                 }  
  16.             );  
  17.         }  
  18.           
  19.     }  
  20. }  

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

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

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

document 以下のTABキーを無効化

header タグ以下に追加。

  1. <script language="javascript" type="text/javascript">  
  2. window.onload = function() {  
  3.     document.onkeydown = function() {  
  4.         if(event.keyCode == 9) { return false; }  
  5.     }  
  6. }  
  7. </script>  

2009年9月29日火曜日

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

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

2009年9月28日月曜日

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

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

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

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

2009年9月17日木曜日

クラス名を取得する

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

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

正規表現 メタ文字

特に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

何て設定しておいて

  1. flamemo::Debug  
  2. {  
  3.     trace ("デバッグ大好き!");  
  4. }  

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

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

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

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

-define=flamemo::Debug,true

2009年9月4日金曜日

文字列操作

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

2009年9月1日火曜日

Firefox のアドオン WebDeveloper でCSS編集

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