maskの練習.借り物
♥0 |
Line 58 |
Modified 2010-10-29 16:20:55 |
MIT License
archived:2017-03-20 13:51:21
ActionScript3 source code
/**
* Copyright Nowloading_ ( http://wonderfl.net/user/Nowloading_ )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9P3f
*/
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class Root extends Sprite {
public function Root() {
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
//top..field..ect
var top:Sprite = new Sprite;
top.graphics.beginFill(0x00ff00);
top.x= 200;
top.y= 200;
top.graphics.drawCircle(0,0,200);
top.graphics.endFill();
addChild(top);
var field:Sprite = new Sprite;
field.graphics.beginFill(0x777777);
field.graphics.drawRoundRect(0, 0, 400, 400, 20);
field.graphics.endFill();
top.addChild(field);
// テキスト要素
var t:TextField = new TextField;
t.x = 100;
t.y = 200;
t.width = 300;
t.text = "abcdeABCDEあいうえお";
field.addChild(t);
// 赤い要素
var c:Sprite = new Sprite;
c.x = 50;
c.y = 100;
c.graphics.beginFill(0xFF0000);
c.graphics.drawRect(0, 0, 200, 50);
c.graphics.endFill();
field.addChild(c);
// 青い要素
var c2:Sprite = new Sprite;
c2.x = 200;
c2.y = 0;
c2.graphics.beginFill(0x0000FF);
c2.graphics.drawRect(0, 0, 20, 300);
c2.graphics.endFill();
field.addChild(c2);
// マスク要素1
// m要素がfield要素のマスクとなり、mの描画範囲のみ下地部分が表示される
// m要素は描画範囲のみ問題となるので、色(0xFFFFFF)は無関係となる
// field要素をマスクすることで、field要素の子要素である t, c, c1 もマスクされる
var m:Sprite = new Sprite;
m.x = 200;
m.y = 200;
m.graphics.beginFill(0xFFFFFF);
m.graphics.drawCircle(0, 0, 100);
m.graphics.endFill();
field.mask = m; // maskプロパティにマスク要素を入れることで、マスクされる
// マスク要素2
// 青い要素のみをマスクしている
// その場合、青い要素は二重にマスクされることになる
var m2:Sprite = new Sprite;
m2.x = 0;
m2.y = 0;
m2.graphics.beginFill(0xFFFFFF);
m2.graphics.drawRect(0, 0, 400, 120);
m2.graphics.endFill();
c2.mask = m2;
addChild(field);
}
}
}