ラベル ActionScript3 の投稿を表示しています。 すべての投稿を表示
ラベル ActionScript3 の投稿を表示しています。 すべての投稿を表示

2008年1月16日水曜日

BitmapDataはdisposeでnullにならない

BitmapDataクラスの確保したメモリを解放するメソッドdispose()を使った場合、bitmapDataインスタンス自体は解放されない。

2008年1月4日金曜日

ドキュメントクラスのコンストラクタでコンポーネントの初期化ができない問題

FlashCS3で、コンポーネントを配置し、ドキュメントクラスを設定した場合、ドキュメントクラスのコンストラクタ上でコンポーネントの値の設定などの初期化を行うことができない。

addedToStageイベントで、はじめてステージに読み込まれた時に初期化を行うなどの処理をいれる必要がある。

参考:
http://www.fumiononaka.com/TechNotes/Flash/FN0604002.html

2008年1月3日木曜日

KeyboardEvent.KEY_DOWNがとれなくなる場合の回避方法

KeyboardEvent.KEY_DOWNは、ステージでaddEventListenerとしておいてもTileListなどをクリックするとイベントがとれなくなるようだ。
とりあえず暫定的な回避方法として、TileListをクリックしたらstage.focus=stageとして問題が回避できた。
他に回避方法や問題が起こる原因を下がる必要あり。

2008年1月1日火曜日

ScrollPane scrollDragプロパティ

ScrollPaneのscrollDragをtrueにして、scrollPaneを非表示にした場合。
dragEndについてのエラーが発生する。
またscrollPaneのsourceプロパティに設定したディスプレイオブジェクトがなぜかキャンセルされる。

原因不明。

2007年12月29日土曜日

is演算子

is演算子は A is B の書式で使用し、Bはクラス名、Aは変数
Aのクラスが、BもしくはBを継承したクラスである場合はtrue、違う場合はfalse

var clip:MovieClip=new MovieClip();
var sprite:Sprite = new Sprite();

if(clip is MovieClip){
trace("clip is MovieClip:true");
}else{
trace("clip is MovieClip:false");
}

if(clip is Sprite){
trace("clip is Sprite:true");
}else{
trace("clip is Sprite:false");
}

if(clip is DisplayObjectContainer){
trace("clip is DisplayObjectContainer:true");
}else{
trace("clip is DisplayObjectContainer:false");
}

if(sprite is MovieClip){
trace("sprite is MovieClip:true");
}else{
trace("sprite is MovieClip:false");
}

if(sprite is Sprite){
trace("sprite is Sprite:true");
}else{
trace("sprite is Sprite:false");
}

if(sprite is DisplayObjectContainer){
trace("sprite is DisplayObjectContainer:true");
}else{
trace("sprite is DisplayObjectContainer:false");
}

結果:
clip is MovieClip:true
clip is Sprite:true
clip is DisplayObjectContainer:true
sprite is MovieClip:false
sprite is Sprite:true
sprite is DisplayObjectContainer:true

2007年12月17日月曜日

「Traceアクションを省略」はsefに依存する。

Flashのパブリッシュ時の設定の1つである「Traceアクションを省略」。
この設定を有効にしてパブリッシュしたswfから、無効にしてパブリッシュしたswfをLoaderで読んだ場合。読み込まれた側のswfのtraceは表示されます。
各swfに依存している設定のようです。
実際に省略しているかはtraceを1万個ぐらい書いて試せばわかりますが。

2007年12月12日水曜日

SelectableListのselectedItem問題

Listなどの親クラスであるSelectedListのselectedItemは何も選択されていない場合はnullとなる仕様である。ただし、selectedItem自体をremoveItemした場合は、リストの先頭のアイテムが選択されてしまうようである。

対処方法
removeItemをしたら selectedItem=null;とする.

2007年10月15日月曜日

Flash CS3でAirを開発する方法が記載されたサイト一覧

Adobe AIRで作るデスクトップアプリケーション 第9回 Flash CS3による開発
インストールの方法からプロジェクトの作成方法まで紹介されています。

ants Lab Flash CS3用AIRエクステンション公開

1ページでまとまって拡張ツールのインストールの方法が紹介されています。



どうしてWeb→デスクトップへの流れが起こっているのかあまり理解していない。
C#.NETやJavaで開発した方がいいような気もするんですが。
デスクトップガジェットのためにあるのかな?。
何はともあれ一度触ってみないといけない。
せっかく触るんだからenibloを移植しようかな。

2007年9月3日月曜日

AS3 Socketデータ受信のデータ分割

socketクラスを使ってProgressEvent.SOCKET_DATAでデータを受信する場合、
10000byte以上のデータを受信しようとすると、データが分割されてくる。
あらかじめ、データの先頭に全体のサイズを付与しておき、socket.bytesAvailableで
すべてロードするまでByteArrayに溜めていくのがいいみたいだ。
しかし、どの10kbyteを超えるデータをたくさんうける場合は、今受け取ったデータがどのデータに相当するのか分からないので、困ることになる。
結局10Kbyteを超えるデータは送らないほうがいいってことなのかな。