Flex、AIR、Java、Androidなど

Archive for 1月 9th, 2009

09 1月, 2009

FlexでSWFの背景を透明に

Posted by: tachibana In: Flex

適当に
StyleManager.getStyleDeclaration("Application").setStyle("backgroundAlpha", 0);
を実行。
HTMLは
"bgcolor", "#869ca7",
と同じ内容のをを消し、
"wmode", "transparent",
を追加。
SWFObjectを使う時は、
var flashvars = {};
var params = {scale:’exactfit’, wmode:’transparent’};
var attributes = {styleclass:’noOutline’};
swfobject.embedSWF("SimpleBlogRSS.swf", "simpleBlogRSSField", "200", "500", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

こんな感じ。attributesはFireFox 3でFlashをクリックした時にまわりに灰色の点線が表示されてしまうのを防ぐために入れています。スタイルは
.noOutline {
outline:none;
}
こうです。

コメントは受け付けていません。
Tags:

09 1月, 2009

prototypeパターンの理解

Posted by: tachibana In: プログラミング

※この記事は私が本を読み、頭で考えたことを将来完全に理解してから見直して笑ったりするためにそのまま羅列したものです。故に間違った理解や意味不明なこともたくさん出てくると思います。プログラミングを教えるような立場の方には有益かも(笑)?
Prototypeパターンの理解
なんで= new Manager使うのか?
これまでのパターンはインターフェースをextendなりimplementしたクラスを、メインクラス上でそれらのスーパークラス(extendの際は)であるクラスに代入していた。prototypeパターンの場合のクラスの関係はManagerクラスは何もextendもimplementもせず、動くメソッドをもっているだけ。→抽象クラスではない(抽象クラスをextendする可能性もあるか? or してはいけない理由があるのか?)。
この場合、Managerクラスの働きはそれ自身に(key、Obj)の形のハッシュを置き、それのメソッドに引数が渡されcloneされようとした際にはkeyからハッシュを舐め、それをProductインターフェースが持つメソッドに委譲しProductを返す。
ちょっと待った。cloneというメソッドはJavaのクラスライブラリにすでにあるんだよな。<自分自身かサブクラスからしか呼び出せない。
サンプルプログラム。Managerクラスにはkeyとして与えられた文字列に対してあるクラスのインスタンスを返すような連想配列が置かれる。後に生成されるインスタンスは型は全て同じ。だが、内容は異なる。そして全て同じインターフェースをimplementしている。それにサブクラスを代入。代入はnewでインスタンス化されるのではなく、あらかじめmanagerのメソッドが行う。
Prototypeされたクラスはmanagerクラスによりメインクラスにkeyとともに初期化(インスタンスが存在するようになる)され格納される。即ち、managerを使い新たにオブジェクトを存在させる手順は、newしているのではなく連想配列に格納されたインスタンスを返しているだけである。これは自分にとって新しい。
もしmanagerクラスがなかったらどうなる?

まずクラスは毎回インスタンス化され始めて使えるようになる。その際コンストラクタによりある程度のカスタムは可能だが、あまり複雑なものは利用できない。
大切なのは、再利用されるパーツとしての価値を考えたとき、そのパッケージ内のクラスが他のクラスに依存しないこと。そのまま他のプロジェクトにimportされた時でも引数を付けて呼ばれた際には常に同じ動作をするよう設計されていること。その際にはProductインターフェースの存在は必須となる。managerはkeyによりProduct型のインスタンスを返し、ProductインターフェースはCloneableで、複製を行う抽象メソッドを定める。
自分なりの結論:

生成のたびにわざわざクラスからインスタンス化する必要がなくcloneでもよいオブジェクトや、ユーザーの任意の操作により変更されたオブジェクトを複製したい時に使う。通常インスタンス化されたオブジェクトを返すためにはその為のメソッドを用意する必要があったり、それを受け取るために受け取る側でも変数を定義してやる必要があったりでややこしい。このような時はCloneableを便宜上実装したインターフェースを作る等し、実際に仕事をするクラスにはそれを実装させる。ここでは、複製されたオブジェクトを返すメソッドの定義が実装するインターフェースにより義務付けられている。一つの親クラスを継承した何種類かのクラスがあり、それらのインスタンスを連想配列に保管しいつでも返せるようなクラスを用意しておけば、インスタンス化と同時にそのクラスにインスタンスへの参照とキーを登録するといつでもインスタンスを得ることができる。ここで重要なのは登録されたインスタンスは親インターフェース型の変数であり、連想配列に登録されているのは値ではなく参照だということ。この参照先を新たな変数に代入することでコピーが行われ、新らしい変数が生成されることとなる。

コメントは受け付けていません。

09 1月, 2009

Singletonパターンの理解

Posted by: tachibana In: プログラミング

※この記事は私が本を読み、頭で考えたことを将来完全に理解してから見直して笑ったりするためにそのまま羅列したものです。故に間違った理解や意味不明なこともたくさん出てくると思います。プログラミングを教えるような立場の方には有益かも(笑)?
簡単なので省略。ただプロジェクト内にそのクラスのインスタンスが一つしか存在しないことを明示したい時のクラスの書き方。
ただ問題点もあるようで、C++での説明だがSingletonパターンさまに非常に分かりやすく解説されている。
先に読んでおいて良かった。
自分なりの結論:

プロジェクト内でインスタンスが1個しか存在しないこと、存在させないことを表現するパターン。また、これによりミスによる複数個のインスタンスの生成を防ぐことができる。いくつも存在しても無駄になるだけのような時にも使う。グローバル変数として使うのは間違い。

コメントは受け付けていません。

09 1月, 2009

Factory Methodの理解

Posted by: tachibana In: プログラミング

※この記事は私が本を読み、頭で考えたことを将来完全に理解してから見直して笑ったりするためにそのまま羅列したものです。故に間違った理解や意味不明なこともたくさん出てくると思います。プログラミングを教えるような立場の方には有益かも(笑)?
Factory Methdパターンの理解
Template Methodの応用。派生といってもいいかも。
要はフレームワークとして働くextendされるクラスが何をabstractでないメソッドとしてもつか、ということ。Factory Methodの場合はイオンスタンスを生成するメソッドをもつ。

Factory Methodはインスタンスの生成をいつものextendされるクラス型の変数をメインクラスに置き、それにextendしたサブクラスを代入するパターンの際にインスタンスを生成するメソッドを実装しる場合のことを指す?
Factory=工場。ここで用いられているテンプレートメソッドはcreate。
自分なりの結論:

Template Methodパターンの使い方の一つと言っても良い。抽象クラスはいくつかの抽象メソッドとメインクラスが使うであろう抽象でないメソッドを持つが、抽象でないメソッドが引数をもらいそれによって異なるオブジェクトを生成し返すような特徴を持つ。つまりこの抽象クラスを継承したクラスは全て同じ型の変数のメソッドでもってオブジェクトを生成できる。Factory(引数をもらいオブジェクトを生成したりするクラス)を分離した状態で置くことで、strategyパターンのようにここだけ実装を変えることも可能だろう。

コメントは受け付けていません。

09 1月, 2009

FeedListを入れようとしたら

Posted by: tachibana In: 未分類

以前wordpressにも入れていたFeedList。今やってみると
There was a problem initializing the feedlist plugin. Make sure the file feedlist.php is in the feedList directory under your wp-content/plugins directory.
と言われ怒られる。Googleで調べ色々やったが同じ。
RSSとかは簡単だからちゃちゃっと作ったろか。


Categories

 

2009年1月
« 1月   2月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

About

Author: tachibana

  • ちょっとしたことはTwitterに書いています。こっちはアプリの公開等の時に更新されます。
  • 最近はもっぱらJavaとObjective Cです。AS3は飽きました。
  • スクリプト言語ではPerlが好きでしたが最近はGAE/Jで何でもやってます。
  • Linuxは自宅サーバー建てるのがやっとのレベルです。前の会社で何日も徹夜してやったのはいい思い出です。
  • アプリへのご要望などご意見等ありましたらお気軽にご連絡下さい。

Alternative content here