AS3 技術メモ
arguments.callee便利
いちいち変数宣言してた自分がハズカシイ・・・
private function func(e:*){ var info:LoaderInfo = loader.contentLoaderInfo; info.addEventListener(Event.COMPLETE,completefunc); } private function completefunc(e:*){ e.target.removeEventListener(Event.COMPLETE,arguments.callee); }
ナンデモURLRequest
画像はLoaderで・・とか切り替えが面倒なので、なんでもURLRequestでやってまえ!
/* URLリクエストの部分は割愛 */ model.addEventListener("onComplete",onComplete); function onComplete(e:*){ var loader = new Loader(); var info:LoaderInfo = loader.contentLoaderInfo; info.addEventListener(Event.COMPLETE,onLoadBytesComplete); loader.loadBytes(e.data); }
結局Loaderのお世話にはなるんだけど・・・。
読み込み部分は共通化できるね。
印刷のSpriteについて
印刷でPrintJobオブジェクトにSpriteをaddPageする場合、
SpriteオブジェクトにさらにSpriteオブジェクトを入れ子にし、
さらにMC入れ子しているとをaddChildしていると座標を設定していてもリセットされてしまう。
それを回避するには印刷領域に透明な矩形をdrawすればOK
var printJob = new PrintJob(); printCanvas = new Sprite(); printCanvas.graphics.beginFill(0xFFFFFF,0); printCanvas.graphics.drawRect(0,0,printJob.pageWidth,printJob.pageHeight); printCanvas.graphics.endFill();