Flashでゲームなどを作る時に、動作の重さは悩みの種です。 軽い容量となめらかな拡大縮小が長所のFlashなのですが、その分、描画速度は犠牲になっていて、フルフラッシュサイトでCPUをガンガン食われてしまった経験もあると思います。 この重さを解決する方法の1つとして、BitmapDataを使うというものがあります。 これは素材をgifやjpegにする、という話ではなく、表示部分の扱いをビットマップデータにしてしまうというものです。 たとえ素材がgifでも、MovieClipとかに入れてたくさん表示しているととたんに重くなってしまいます。 これをBitmapDataとBitmapクラスによる表示に切り替えるだけで、軽くできることがよくあります。 ちょっとサンプルで体感してもらいましょう。 wonderflにはこういう実験作品があるのでちょっと拝借。(リンク先の画面右側の三角マークを押せばサ
public function Main() { var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.addEventListener(Event.COMPLETE, onComplete); urlLoader.load(new URLRequest("binary.txt")); } URLLoaderのdataFormatプロパティにURLLoaderDataFormat.BINARYを指定することで、データを受け取るdataプロパティがバイト配列になり、バイナリデータを受信するように設定されます。 private function onComplete(event:Event):void { var urlLoader:URLL
SWF上で描いた画像をローカルに保存するJPEGSaverクラスをAS3.0クラスで作ってみる。 FileReferenceクラスを使うよ。 要 Flash Player 10 以上 package net { import flash.events.EventDispatcher; import flash.net.FileReference; import flash.utils.ByteArray; import flash.display.BitmapData; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; import flash.events.HTTPStatusEvent; import flash.events.SecurityE
以前作成した「3Dオブジェクトにマウスでペイントをする」プログラムの画像データを PHPへ送信し保存できるようにしようと思います。 こちらのサイトを参考にしました。 http://www.matzmtok.com/blog/?p=12 このソースコードを改造すればできそうです。 public function submit(ev:FlexEvent):void{ var codec:IImageEncoder = new PNGEncoder(); var bmpData:BitmapData = new BitmapData(src.width, src.height, true, 0x00000000); var byteArray:ByteArray; var req:URLRequest = new URLRequest(); var loader:URLLoader = new
ActionScriptライブラリas3corelibがgithubへホストサーバーを変更していました。 as3corelibはcom.adobeなので安心して使えるライブラリのひとつです。 最近の流行なのでしょうか、Google Codeからgithubへサーバーを変えていました。 http://ja.wiki.github.com/mikechambers/as3corelib/ Google Codeでは今後メンテナンスが行われないとアナウンスされているので、ダウンロードリンクを早々に変更しておきましょう。 Introduction The corelib project is an ActionScript 3 Library that contains a number of classes and utilities for working with ActionScript
最近、中途で入社しました シマダ コウショウ です。 KAYACのFLASHチームには、もう一人シマダさんがいるので名前の方で呼ばれています。 今後ともよろしくお願いします。 ------------------------------------- 記念すべき初投稿は、タイムライン派のお手軽スクリプト第1弾。 個人的に大好きな「DisplacementMapFilter」について。 FLASH8(as2)から利用できるようになったフィルタなので ネタとしてはちょっと古いですが、 先日AS2案件で使うことがあったので その仕組みから、マップの描き方まであらためてまとめてみたいと思います。 「DisplacementMapFilter」については、以前日高さんがまとめた記事もあるので ぜひそちらも合わせてお読みください。 -----------------------------------
Bitmap.draw()するとき、基準点が左上だと問題ないのですが、 マイナスの位置にDisplayObjectがあったりすると 領域を取得するときに面倒くさくなりがちです。 そこでキャプチャ領域を自動的に判定してキャプチャするクラスを作りました。 ASファイル DrawAuto.drawBmp(displayObject : DisplayObject) でBitmapを返します。 DrawAuto.drawBmd(displayObject : DisplayObject) でBitmapDataを返します。 DrawAuto.getRectAuto(displayObject : DisplayObject) でパラメータDisplayObjectのローカルRectangleを返します。 仕組みは、ダミーのスプライトを作りパラメータDisplayObjectをaddChild()し
drawTrianglesであそぼ、第2回です。 前回は、とりあえず使ってみるということでdrawTrianglesを扱うためのクラスを作り、適当にエフェクトを作ってみました。 今回は前回の仕組みを利用し、ちょっとおしゃれっぽく見えるエフェクトを作ってみます。 考え方 とは言っても、前回でdrawTrianglesを扱うクラスを作ってしまっているので、エフェクトのバリエーションを増やすにあたって工夫するポイントはDistortUnitクラスのfadeIn、およびfadeOutメソッドだけです。 前回のコードを見るとこのようになっています。 public function fadeOut():void { var i:int = 0; for each(var p:touchPoint in PtArray) { BetweenAS3.delay( BetweenAS3.tween(p,{$
as以前、BitmapData を使って文字列でマスク という記事を書いたけど、BitmapData を使わなくても文字列でマスクを作れることに気がついた。キモは cacheAsBitmap プロパティ。こいつを利用すれば内部的に BitmapData を作成してくれるので、TextField をマスクとしても利用できちゃう。完成品はこんなの。文字を編集することもできる。編集後の文字でもマスクされる!やってることTextField を表示マスクされる Sprite を作成Sprite のマスクを TextField に設定するTextField と Sprite の両方の cacheAsBitmap を true にするソースコードは以下に(39行)。 // Easy Dynamic Text Mask package{ import flash.display.*; import fla
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く