Action Script 3.0 での透過色で描画する

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Action Script 3.0 での透過色で描画する

#1

投稿記事 by dic » 9年前

Action Script 3.0 をやってます。
いま、画像の表示までいきました。
しかし、画像の指定した色を透明にする方法がわかりません。
Dxライブラリでいうところの透過色のセットです。

例として、緑色 RGB(0,255,0) を透明色としたい場合
どのようなソースコードをかけばいいのでしょうか?

いまできているソースコードを載せておきます

コード:

package
{
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IEventDispatcher;
	import flash.events.TimerEvent;
	import flash.geom.Point;
	import flash.net.URLRequest;
	import flash.utils.Timer;
	
	public class Image extends Sprite {
		
		public var myRequest:URLRequest;
		public var myLoader:Loader;
		public var myTimer:Timer;
		
		public function Image () {
			myRequest = new URLRequest( "ハエ.jpg" );
			myLoader = new Loader();
			configureListeners( myLoader.contentLoaderInfo );
			myLoader.load( myRequest );
			myTimer = new Timer( 16 );
			myTimer.addEventListener( "timer", timerhandler );
			myTimer.start();
		}
		
		public var add_x:int = 1;
		public var add_y:int = 1;
		
		private function timerhandler( event:TimerEvent ) : void {
			//	タイマーによって呼び出される
			if ( myLoader.x >= 320 ) {
				add_x = -1;
			}
			if ( myLoader.y >= 240 ) {
				add_y = -1;
			}
			if ( myLoader.x <= 0 ) {
				add_x = 1;
			}
			if ( myLoader.y <= 0 ) {
				add_y = 1;
			}
			myLoader.x += add_x;
			myLoader.y += add_y;
		}
		
		public function configureListeners( dispatcher:IEventDispatcher) : void {
			dispatcher.addEventListener( Event.COMPLETE, completeHander );
		}
		
		public function completeHander( evt:Event ) : void {
			var maxNum:int = 320;
			var minNum:int = 0;
			var rndNum_x:int = Math.floor( Math.random() * (maxNum - minNum + 1));
			var rndNum_y:int = Math.floor( Math.random() * (maxNum - minNum + 1));
			myLoader.width = 32;
			myLoader.height = 32;
			myLoader.x = rndNum_x;
			myLoader.y = rndNum_y;
			addChild( myLoader );
		}
	}
}

アバター
ookami
記事: 214
登録日時: 13年前
住所: 東京都

Re: Action Script 3.0 での透過色で描画する

#2

投稿記事 by ookami » 9年前

透過処理済みのpng画像等ではだめでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: Action Script 3.0 での透過色で描画する

#3

投稿記事 by h2so5 » 9年前

Flash持ってないので試せないのですが、BitmapDataのthresholdメソッドを使えば透過できるようです。
SpriteではなくBitmapクラスを使う必要があると思います。

dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: Action Script 3.0 での透過色で描画する

#4

投稿記事 by dic » 9年前

>>ookamiさん
ちょっと間違えてしまって透過処理済みのpngではなくgifで作ってしまいました。
しかし、きちんと透過処理されていました。


>>h2so5さん
しらべたところ、 threshold ではなく
transparent : Boolean
[読み取り専用] ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。
みたいです。
しかし、読み取り専用でどうやってセットするのかまではわかりませんでした。
BitmapData から Bitmap を生成するみたいですが、
手続きが複雑すぎて頭がこんがらがってしまいます。
なので、ちょっとおあずけです。



解決しました。ありがとうございました。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: Action Script 3.0 での透過色で描画する

#5

投稿記事 by h2so5 » 9年前

dic さんが書きました: しらべたところ、 threshold ではなく
transparent : Boolean
[読み取り専用] ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。
みたいです。
しかし、読み取り専用でどうやってセットするのかまではわかりませんでした。
それはPNGの透明度をサポートするかどうかのフラグですよね?
もとの質問は「指定した色を透明にする方法」のはずですが。

dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: Action Script 3.0 での透過色で描画する

#6

投稿記事 by dic » 9年前

>>h2so5 さん
失礼しました。
threshold ってクラスのことだったのですね。

件名にある、指定した色を透過色にする とありますが、
透明色が実装できればいいです。
へたな日本語でもうしわけありません。

閉鎖

“C言語何でも質問掲示板” へ戻る