Flash builder4.7 ネットワークモニターで特定の通信だけ失敗するときは

原因はやっぱりこれと同じでした。

普段使いのブラウザではFlashPlayer自動更新してるけど、ActiveX版が古くなってるときなどにうっかり起きます。

通信が変だなーと思ったらまず「ActiveX版Flash Playerのバージョン確認」というのは癖をつけておかないとハマりまくるね。

windows版Flex HTTP Serviceで#2032 StreamErrorが出る場合

MacOSで開発中に、印刷のテストしなきゃと思ってふと家の中を見回したら

そもそもプリンターなんてウチになかった

事を思い出したあゆたやです。

じゃあ仮想プリンタ入れればいいじゃない!AcrobatのPDFプリンタ大活躍だね!と楽観的に生きていたら

・・・。
しょうがないナーとWindowsに戻ったら。

「Error #2044: Unhandled IOErrorEvent:. text=Error #2032: Stream Error.」

サーバーとまってるわけでもないのに、全ての外部通信ができません。

これ印刷どころの騒ぎじゃないのでは、と冷や汗だくだくしたのは言うまでもない。

OSで一番設定の違いがありそうなファイアウォールかと思って止めてみたものの関係無さそう。
パケットキャプチャ見ると外部にアクセスしようとした形跡すらない。

で、結論。
ActiveX版Flash Playerのバージョンが11.6で、プラグイン版が11.7(最新)だったというわけ。

スクリーンショット_062713_020117_PMまさかと思ってアップデートしたら治りました。めでたしめでたし。

しかもIEでアクセスしないとプラグイン版が手に入る罠まで張ってあったよ!

バグズ ライク。

もぞもぞ動くヤツが絵をつくるアニメ。ちょっと癖になってしまった。

虫とか黒い小さな点が嫌いな人は絶対に見ちゃダメですよ!

真ん中あたりをじっくり見ると、ちょっと違う世界への扉が開けそうです。

繰り返し見ると頭痛くなるのでご注意ください。

bugs photo

Black cat @Doug88888 http://www.flickr.com/photos/doug88888/5717852049/

[Flex]全画面・最小化などのnativeWindowメソッド処理後にリサイズしたいとき

少なくともFlex SDK 4.5.1では、
WindowApplication内に「動的配置したModuleで」リサイズイベントと同時に再配置したりするようなとき、nativeWIndow.maximize()、nativeWindow.restore()では「画面のサイズが変わる直前の」数値を取ってきてしまうようです。

なので、全画面からrestore()したら、全画面のときの数値でリサイズされる。

これを回避するのにベタかつスマートではないけど下記のような方法で対応。

import flash.events.NativeWindowDisplayStateEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;

//Timerで100ミリ秒後に1回イベント起こす
private var resizeTimer:Timer=new Timer(100,1);

protected function inith():void
{
	//NativeWindowDisplayStateEventでnativeWindow状態変化を監視
	this.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE,resizeFire);

	//TimerEventのcompleteを監視
	resizeTimer.addEventListener(TimerEvent.TIMER_COMPLETE,resizeComplete);
}

private function resizeFire(event:NativeWindowDisplayStateEvent):void
{
	//リセットしてからスタート(Timerカウントを0→1(終了)とするため)
	resizeTimer.reset();
	resizeTimer.start();
}

private function resizeComplete(event:TimerEvent):void
{
	//対象のModuleをリサイズ
	targetContent.dispatchEvent(new Event(Event.RESIZE));	
}

ちゃんとやるならinvalidateProperties()とか使うもんだけどね。

Stardustに関する覚書

AS3のオープンソースライブラリ「stardust」でパーティクルをお勉強(1) » Flatech+ http://blog.rainyday.jp/flash/pv3d/stardust01.htmlより引用

(1)Clockを作る…パーティクル発生の頻度
(2)Emitterを作ってclockをセット…エミッターって発生装置みたいなもの(?)
(3)Rendererを作る…画面表示用オブジェクト(?)
(4)Renderer.addEmitter( Emitter )でエミッターをレンダラーにセット
(5)Emitter.addInitializer( 発生場所とか発生させるspiteとか )でエミッターを初期設定
(6)Emitter.addAction( 寿命の長さとか重力とか )で実際の動きを設定
(7)Event.ENTER_FRAMEやTimerEvent.TIMERに、Emitter.step()を関連づけて表示を更新