メイン

Flex アーカイブ

2007年12月12日

ASDoc覚え書き

僕のプログラムにコメントを付けない癖を改善すべくASDocを勉強することに。
一応メモ。

ASDocってのは、クラスやらメソッドやらプロパティやらに書かれたコメントをHTMLにしてくれる優れものです。
Flex 2 SDK がインストールされてれば使えます。

早速実験。
ASDocはターミナルで、/Applications/Adobe Flex Builder 2/Flex SDK 2/bin/asdocを叩いて実行します。(Mac環境)

■asdoc コマンドの主なオプション
・-source-path :クラスファイルがあるディレクトリを指定します。
ソースファイルを/Users/godagoda/study/flex/asdoc/に作ったら

asdoc -source-path /Users/godagoda/study/flex/asdoc/

ってな感じに指定します。

・-doc-classes :対象のクラスを指定します。
お目当てのクラスが、/Users/godagoda/study/flex/asdoc/net/godagoda/hoge/Example.asだったら、

asdoc -source-path /Users/godagoda/study/flex/asdoc/ -source-path net.godagoda.hoge.Example

ってな感じに指定します。
複数指定したい場合には単純に、

asdoc -source-path /Users/godagoda/study/flex/asdoc/ -source-path net.godagoda.hoge.Example net.godagoda.hoge.Example2

てな感じに指定します。多分。
ポイントは、パスを"."で指定する事ですかね。ちなみに、指定したクラスと依存関係にあるその他のクラスも勝手に追加してくれます。

・-doc-sources :プロジェクトファイルを検索して一気に作ってくれます。
-doc-sourcesでソースファイルの場所を指定すれば、再帰的に検索してくれるそうです。
-doc-sourcesを使う場合には、-source-pathの指定がいらないそうなので、

asdoc -doc-sources /Users/godagoda/study/flex/asdoc/

でな感じにしていすれば一気に作ってくれるはずです。

・-exclude-dependencies :依存関係にあるクラスを勝手に追加するかどうかを設定します。
-doc-classesで、依存関係にあるクラスは勝手に追加されると書きましたが、その挙動を防ぐ時に設定します。多分。
この値をtrueに設定すると、勝手に追加されません。デフォルトはfalseです。
Exampleクラスの依存関係にあるクラスを追加したくない時には、

asdoc -source-path /Users/godagoda/study/flex/asdoc/ -source-path net.godagoda.hoge.Example -exclude-dependencies=true

てな感じに指定すれば、依存関係のクラスは追加されずに、Exampleだけが追加されます。多分。

・-exclude-classes string :追加したくないクラスを設定します。
-doc-sourcesで一気にクラスを追加する時などに、このパラメータで追加したくないクラスを設定します。Example2を追加したくない時には、

asdoc -doc-sources /Users/godagoda/study/flex/asdoc/ -exclude-classes net.godagoda.hoge.Example2

てな感じに指定すれば、Example2は除外されます。
これもパスを"."で指定します。

・-output :出力先のディレクトリを指定します。
そのまんまです。作成されるHTMLなんかのファイルの出力先のディレクトリです。
/Users/godagoda/output/に出力したい時には、

asdoc -doc-sources /Users/godagoda/study/flex/asdoc/ -output /Users/godagoda/output/

てな感じに指定すれば、/Users/godagoda/output/に出力されているはずです。

とりあえず、今はここまで。

2007年12月14日

ASDoc覚え書きの続き

引き続きASDocの覚え書き。

■コメントの書き方
コメントは、下記の様に/**で始まり、*/で終わります。

/**
* Main comment text.
*
*/

ベストプラクティスは、ASDoc コメントの各行の前にアスタリスク (*) 文字を付け、その後に 1 つの空白を挿入することにより、ActionScript または MXML ファイルでコメントを読みやすくし、コメントを正しく解析できるようにします。だそうです。

ちなみに、ソースをUTF-8で保存しておけば、日本語ちゃんと表示されます。
HTMLのタグも使えちゃったりします。以下使える主なタグ。
<p><listing><pre><br><ul><li><table><th><tr><td><img><code><strong><em>

実際にコメントを配置する場所は、クラス、インターフェス、メソッド、プロパティの宣言の直前に、配置します。


/**
* ここにコメントを書きます。
*
*/
public function hoge():Void{}


■ASDocのタグ
ASDocには、頭に@が付く独自のタグが用意されてます。
このタグを使えば、他のコメントをコピーできたり、コメントを非表示に出来たりします。
以下主なタグです。

・@private
このタグが付けられると、コメントが非表示になります。
クラス自体を非表示にしたい時には、クラスのコメントにこのオプションを付ければ、そのクラス全体が非表示になります。-exclude-classesオプションと同じですかね。

/**
* CommentCommentCommentComment
*
* @private
*/


・@default
プロパティの初期値を宣言できます。

/**
* The default value of text
*
* @default defaultStringValue
*/
public var defaultString:String = "defaultStringValue";


・@param
メソッドの引数を宣言できます。

/**
* The default value of text
*
* @param param1 Describe param1 here
* @param param2 Describe param2 here
*/
public function hoge(param1:String, param2:Number):Boolean {}


・@return
メソッドの戻り値を宣言できます。
/**
* The default value of text
*
* @param param1 Describe param1 here
* @param param2 Describe param2 here
* @return Describe return here
*/
public function hoge(param1:String, param2:Number):Boolean {
return true;
}

以上こんな感じですかね。

2008年01月07日

VideoDisplay覚え書き

FlexでVideoDisplayをいじったので、メモ。

・cuePointManagerを使う
cuePointManagerを使いたい場合は、cuePointManagerClassプロパティに、
「mx.controls.videoClasses.CuePointManager」と設定する。
これでcuePointManagerが使用可能になる模様。

video(インスタンス).cuePointManagerClass= mx.controls.videoClasses.CuePointManager;

・addCuePointを使う
addCuePointには、引数として、「name」と「time」のプロパティを持ったオブジェクトを指定する。
独自のプロパティも渡したいんだけど上手くいかない。

video.cuePointManager.addCuePoint({name:"cue_name",time:3});

・シークしたい
VideoDisplayには、シーク関連のメソッドが無い模様。
playheadTimeプロパティに任意の秒数を設定することでシークできた。

private function seek(p:Number):void{
video.playheadTime = video.totalTime*p;
}


2009年04月26日

Panelコンポーネントのalpha値

タイトルバー、コントロールバー、および Panel の両側のアルファ値を設定するには、スタイルで”borderAlpha”を設定してあげる。ちなみにデフォ値は、.4。

2010年08月25日

Flex4メモ::ぼんやり継承関係の確認

Group → GroupBase → UIComponent

GroupBase has _layout:LayoutBase

SkinnableContainer(contentGroup:Group) → SkinnableContainerBase → SkinnableComponent → UIComponent

List → ListBase → SkinnableDataContainer (dataGroup:DataGroup IItemRendererOwner) → SkinnableContainerBase → SkinnableComponent → UIComponent

2010年08月31日

Flex4メモ::sparkではaddChildが使えない

spark系のコンポーネントではaddChildは使えないようです。

SkinnableComponentでもGroupでも下記のようにErrorをスローするようにoverrideされてます。

/**
*  @private
*/
override public function addChild(child:DisplayObject):
DisplayObject
{
    throw(new Error(resourceManager.getString("components", 
"addChildError")));
}

じゃあどうするか。

かわりにaddElementってのを使うことになります。

addChild→addElement

その他は、

addChildAt→addElementAt

removeChild→removeElement

なんかがあります。

ここにmxとspakrの子供の管理方法の違いが載ってます。

2010年09月01日

Flex4メモ::ItemRenderer

Flex3では、自作のitemrendererといえばCanvasなどを継承したクラスで作るのが定石だと思いますが、Flex4(spark)ではそのものずばりItemrendererクラスってのが用意されているので、自作のitemrendererを作る時はこれを継承してあげればよいっぽいです。

ItemrendererはDataRendererを継承し、IItemRendererを実装しています。

で、DataRendererはIDataRendererを実装していて、これにお決まりのset dataとget dataが定義されています。

ちなみにListのitemrendererに設定できるのは、このIDataRendererを実装しているものだけです。

ざっと使ってみた感じでは、Flex3と同じノリで、crateChildrenだのset dataだのcommitPropertiesだのをがしがしオーバーライドしていく感じで大丈夫だと思われます。

2010年09月03日

Flex4メモ::Scroller

Flex3(mx)でスクロールバーを表示したい場合には、ContainerやContainerを継承したCanvasの中に適当にコンポーネントを配置しておけば、Containerが子供コンポーネントのサイズや位置を計測して勝手にスクロールバーを表示してくれていましたが、Flex4(spark)でスクロールバーを表示したい場合、明示的にScrollerコンポーネントを配置してあげる必要があります。

Scrollerには、IViewPortを実装したコンポーネントを一つだけ配置できます。このIViewPortを実装しているのは、GroupとRichTextEditorだけなので、Groupを一つ配置すると思っておけばよいのではないでしょうか。

mxmlは下記のようになります。

<s:Scroller x="0" y="0"  width="200" height="200">
  <s:Group>
    <s:layout>
      <s:BasicLayout />	
    </s:layout> 
  </s:Group>
</s:Scroller>

この場合子供のコンポーネントが表示領域が200pxを超える場合、スクロールバーが表示されます。

Flex3(mx)でおなじみの、verticalScrollPolicyとhorizontalScrollPolicyもScrollerクラスにあります。autoで自動表示、onが強制表示でoffが常に非表示になります。clipContentが見あたらなかったので、verticalScrollPolicyとhorizontalScrollPolicyを両方offにしろということでしょうか。

この記事を書いている時に、Flexデベロッパセンターに完璧な記事を発見したので、これを読んだほうが手っ取り早いですね。

About Flex

ブログ「godagoda.net」のカテゴリ「Flex」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはFLASHです。

次のカテゴリはMacです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。