AS3でビットマップテクスチャを描画する「BitmapTexture」クラス

ActionScript3.0でドット模様のビットマップテクスチャを全画面に描画する「BitmapTexture」クラスを作成しました。

デフォルトではユーザーの解像度を取得し全画面に描画しますが、ステージサイズや任意のサイズを指定することも可能です。

ファイル

使用方法

  • TEXTURE(DisplayObjectContainer)にライブラリのリンケージクラス ‘_BitmapTexture’を読み込み全画面に描画
1
BitmapTexture.load(TEXTURE);
  • TEXTURE(DisplayObjectContainer)にドットテクスチャを全画面に描画
1
BitmapTexture.draw(TEXTURE);
  • TEXTURE(DisplayObjectContainer)の縦480ピクセル×横240ピクセルの範囲へドットテクスチャを描画
1
BitmapTexture.draw(TEXTURE, 480, 240);

パラメータ解説

$scope

テクスチャを描画するオブジェクト
[DisplayObjectContainer][省略不可]

w

テクスチャを描画する横範囲
[規定値:0 -> 代入値:Capabilities.screenResolutionX][省略可]

h

テクスチャを描画する縦範囲
[規定値:0 -> 代入値:Capabilities.screenResolutionY][省略可]

p1

BitmapDataの第1・第2引数へ代入される値(調整用)
[規定値:2][省略可]

p2

BitmapData.setPixel32の第1・第2引数へ代入される値(調整用)
[規定値:0][省略可]

p3

BitmapData.setPixel32の第1・第2引数へ代入される値(調整用)
[規定値:1][省略可]

ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package net.dolice.gui{
  import flash.display.DisplayObjectContainer;
  import flash.display.BitmapData;
  import flash.display.Sprite;
  import flash.system.Capabilities;
  import net.dolice.utils.Cleaner;
  public class BitmapTexture extends Sprite {
      private static var scope:DisplayObjectContainer;
      private static var w:uint;
      private static var h:uint;
      private static var bmd:BitmapData;
      private static var sp:Sprite;
      public static function draw($scope:DisplayObjectContainer, w:uint=0, h:uint=0, p1:uint=2, p2:uint=0, p3:uint=1):void {
          if ($scope == null) {
              return;
          }
          BitmapTexture.initialize($scope, w, h);
          var bmd:BitmapData = new BitmapData(p1,p1,true,0x00FFFFFF);
          bmd.lock();
          bmd.setPixel32(p2, p2, 0xFF000000);
          bmd.setPixel32(p3, p3, 0xFF000000);
          bmd.unlock();
          BitmapTexture.bmd = bmd;
          BitmapTexture.beginFill();
          BitmapTexture.addStage();
      }
      public static function load($scope:DisplayObjectContainer, w:uint=0, h:uint=0):void {
          if ($scope == null) {
              return;
          }
          BitmapTexture.initialize($scope, w, h);
          var bmd:BitmapData = new BitmapTexturePattern(0,0);
          BitmapTexture.bmd = bmd;
          BitmapTexture.beginFill();
          BitmapTexture.addStage();
      }
      private static function initialize($scope:DisplayObjectContainer, w:uint, h:uint):void {
          BitmapTexture.scope = $scope;
          w ? BitmapTexture.w = w:BitmapTexture.w = Capabilities.screenResolutionX;
          h ? BitmapTexture.h = h:BitmapTexture.h = Capabilities.screenResolutionY;
      }
      private static function beginFill():void {
          var sp:Sprite = new Sprite();
          sp.graphics.beginBitmapFill(BitmapTexture.bmd, null, true, true);
          sp.graphics.drawRect(0, 0, BitmapTexture.w, BitmapTexture.h);
          sp.graphics.endFill();
          BitmapTexture.sp = sp;
      }
      private static function addStage():void {
          if (BitmapTexture.scope.numChildren) {
              Cleaner.deleteContainer(BitmapTexture.scope, 0, null);
          }
          BitmapTexture.scope.addChildAt(BitmapTexture.sp, 0);
      }
  }
}
   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)