ちょいと感激。

[`evernote` not found]
LINEで送る
Pocket

Flash CS 3を利用していて、デバッグ用にデータをTextFieldに出力しようとしました。

で、その出力データを追加するときに、
『+=』で追加したのですが、『コンパイルエラー』パネルに、

Warning: 3551: TextField に += を使用してテキストを追加すると、TextField.appendText() メソッドを使用するよりも何倍も遅くなります。

2007年9月8日23:13

ふと思った事。

[`evernote` not found]
LINEで送る
Pocket

突然ですが、プログラムだったり、スクリプトだったり、書いている人が沢山いると思いますが、
その時に、どんな風にコメントを書いていますか??

どんな風、というのは、コメント本文はもちろんのこと、コメントがわかりやすく、かつ美しい書き方とか知りたいです。

ずーっと独学、我流でやってきたので、美しいコメントの書き方とかあれば知りたいなー、なんて思った訳です。

僕は、ブロック単位でのコメントの場合、

/*********************************************************************

*********************************************************************/

でくくっています。

Webの人だと独学の人がとても多いと思うので、こんな事を共有し合うのも面白いんじゃない!?とか思っちゃいました。

2007年9月7日22:18

SharedObject

[`evernote` not found]
LINEで送る
Pocket

SharedObjectで困ったのでメモ。

a.swfとb.swfがあり、この2ファイル間で同じSharedObjectを共有したい場合、

getLocalの第二引数でパスを明示すればいいみたい。

例えば:
var so:SharedObject = SharedObject.getLocal(“sharedObject名”, “/”);
とすれば共有できやすよ!

2007年9月7日04:55

値段査定ブログパーツ

[`evernote` not found]
LINEで送る
Pocket

ブログの値段を査定するというブログパーツを、
mixiで見かけたので早速貼ってみました。

ある意味ではプレッシャーになりますね。しっかりやらんと!という気持ちになります。

siteStock
http://www.sitestock.jp/
より。

RSSフィードを登録するみたいですが、値段はこのような方法らしい。(mixiニュース)

価格は、ブログの更新頻度や被リンク数、検索順位などを基準に、同社が過去に取り扱った成約案件の実績と照らし合わせて設定した。数百円程度からで、高額な場合は500〜600万円程度になるという。価格は1日1回程度更新する。 

それにしても、僕のは安いなあ。。

2007年9月7日00:40

URL体系を変更しました。

[`evernote` not found]
LINEで送る
Pocket

お知らせです。
このブログは自家製のブログなのでして、
今まで記事を識別するために、?key=aaa のようにしていたのですが、あからさま過ぎるなーと思っていました。

ですので、若干変更です。

本当はmod_rewriteでHTMLに見せたかったのですが、ちょっとつまづいたところがあったので断念。
で、PHPがあれば必ず利用可能のPATH_INFO系に変更しました。

トラックバックなどの際はご注意下さい。(って誰がみてるんだ??)

2007年9月6日19:23

AIRのPodCastか。。

[`evernote` not found]
LINEで送る
Pocket

発見しました。(ってこれ有名??)
Mike Downey on Adobe AIR
http://feeds.feedburner.com/MikeDowneyOnAdobeAir
ブログはこちら。
http://madowney.com/blog/

Adobe Group manager のMike Downyのブログです。
英語がご堪能なかたはどうぞ。

僕も挑戦はしてみます。

2007年9月3日17:12

XMList とか連携とか。

[`evernote` not found]
LINEで送る
Pocket

最近、PHPとAS3との連携をさせるようなスクリプトを書いていまして、
その時のデータ連携時にXMLを使おうとしています。
AMFPHPなんかも便利とは思うのですが、なんかインストールが面倒なのと、XMLにしておけば他のアプリケーションとも連携をとりやすそうだ、と考えてXMLにしています。

で、今使っている流れとしては、

1.PHP側でデータを取得し、XMLに整形して出力

2. PHPが吐き出すXMLをswfに読み込んで、DataGridなり、Treeなりに登録

3. swfで、データを読み込み、
 はじめはXMLListとして読み込み、
 そのXMLListを若干成形したデータをXMLListCollectionに登録

という簡単なものです。

2.の処理ですが、データを同期させるために、XMLListCollectionクラスが大活躍しているのですが、
3のステップで、外部XMLをXMLListとして読み込む際に、

var list:XMLList = new XMLList( e.target.data );
とすればすっぽり使えるのに、
var list:XMLList = e.target.data as XMLList;
と書くとデータがnullになっていました。

同じようにデータを強制変換するときに使えるのか?と思い込んでいたのですが、全然違うみたいですね。

違いを調べないと。。

追記:

本当に恥ずかしいですが、『全く』違うものでした。

as (Adobe Flex 2 リファレンスガイド 『演算子』 as の項参照)———————————————-

使用法
expression as datatype

最初のオペランドで指定された式が、2 番目のオペランドで指定されたデータ型のメンバーであるかどうかを評価します。最初のオペランドがそのデータ型のメンバーである場合、結果は最初のオペランドになります。それ以外の場合、結果の値は null です。

2 番目のオペランドで使用される式は、評価結果がデータ型となる必要があります。

オペランド
expression:* — 指定されたデータ型に対してチェックする値。
datatype:Class — expression オペランドの評価に使用されるデータ型。型指定がないことを表す特殊な * 型は使用できません。

結果
Object — expression が datatype で指定されたデータ型のメンバーである場合、結果は expression になります。それ以外の場合、結果の値は null です。

—————————————————————————–

asは要するに型チェックをして、同じ場合はデータをそのまま利用できて、違う場合はnullを返す、ということですね。
だから、e.target.dataとして取得した型が違うものなので当然nullを返す。

一方、new XMLList()の場合は、new String( int )で変換してくれるように、型変換してくれるので望み通りデータの利用が可能、ということですな。

ああ、恥ずかしい。

2007年9月2日02:17

サーバーへのXML保存

[`evernote` not found]
LINEで送る
Pocket

ちょいとはまりましたので記録として。

AS3でXMLを保存するときに、XMLのままでは何なので、Stringに変換し、POSTで送信。

これをPHP側で保存していたのですが、どうやらサーバーへ送られて、PHPで取得するときには、属性(attribute)の『”』がエスケープされてしまっている。

確かにセキュリティを考えればいい事なのですが、このままではXMLとして保存できないので、

PHP側で stripslashesして保存。

すると無事にXMLらしく保存完了!!

でも、stripslashesしないといけないということは、セキュリティ上の対策を施すべきかなあ??
Flexからとわかる識別子をつけるとか。。。。

2007年9月1日02:11

As3 画像変換ライブラリ、JPGEncoder , PNGEncoder

[`evernote` not found]
LINEで送る
Pocket

ImageConverterという本当に簡単すぎる画像変換アプリをこないだ作ったのですが、画像変換には、
Corelibの、
JPGEncoderとPNGEncoderを利用しました。
GIFがないのはライセンス問題とかなのかな?

入手方法は、
http://code.google.com/p/as3corelib/
のページの『Featured Downloads』あたりからダウンロードして下さい。
ダウンロードしたファイルを解凍し、Flexから使えるようにします。

実際のファイルが、
[パス]/com/adobe/images/
以下にあるものとして話しを進めます。

これは、
bitmapDataのデータを変換します。
importしておきたいもの:
flash.display.BitmapData
flash.utils.ByteArray

使い方
JPGEncoder:

//ライブラリのインポート
import com.adobe.images.JPGEncoder;

private var jpgEncoder:JPGEncoder = new JPGEncoder();
private var byteArray:ByteArray = new ByteArray();

//100 , 100 は幅、高さです。
private var bitmapData:BitmapData = new BitmapData( 100, 100);

//bitmapDataに実際のデータを書き込みます。
bitmapData.draw(『何らかのデータ』);

//bitmapDataのデータをjpgに変換しbyteArrayに格納します。
byteArray = jpgEncoder.encode(bitmapData);

このbyteArrayを使ってURLStream , FileStreamでファイルを書き込むと、jpg画像が完成です。

JPGEncoderとの違いは、こちらはstaticなので、インスタンスを作成しません。
要するに、
JPGEncoder -> new JPGEncoder()とかしてから使う
PNGEncoder -> new とかなしでそのまま使う
ってことなんです。

一応サンプル。
PNGEncoder:

//ライブラリのインポート
import com.adobe.images.PNGEncoder;

private var byteArray:ByteArray = new ByteArray();

//100 , 100 は幅、高さです。
private var bitmapData:BitmapData = new BitmapData( 100, 100);

//bitmapDataに実際のデータを書き込みます。
bitmapData.draw(『何らかのデータ』);

//bitmapDataのデータをjpgに変換しbyteArrayに格納します。
byteArray = PNGEncoder.encode(bitmapData);

このbyteArrayを使ってURLStream , FileStreamでファイルを書き込むと、png画像が完成です。

ちなみに、実際のファイルはJPGEncoder.asとPNGEncoder.asにありますので、興味があれば一度見てみましょう。
僕にはまだまだ理解できませんが、ByteArrayを活用している風ですね。僕も理解して動画変換のライブラリとか作ってみたいです(あるいは作ってほしいです)。

2007年8月31日00:40

簡単な画像変換アプリ

[`evernote` not found]
LINEで送る
Pocket

こんなの作ってみました。
Image Converter。

http://www.hi-farm.net/air/imageconverter/imageConverter.zip

要するに、Finderとかからドラッグアンドドロップすると、対応する形式に変換されます。

現在の要改善点:

・本来は、画像の上書きになる場合は確認するようになっているのですが、.jpg -> .jpgの場合は確認ダイアログがでません。
まあ同じファイルだから別にいいんでしょうが、ちょっと気持ち悪いです。

・外見がまるっきりコンポーネント+テキストなのであまりにもぱっとしません。明らかにいい加減になってました。
 後でやらないといけないですね。

何かあれば連絡やら書き込みなど頂けると密かに泣きながら感激しています。

ソースに関しては、思うまま書いたこともあり、今はかなり汚いので、整頓してから公開しますね。

2007年8月30日01:15