/**
* Copyright Nowloading_ ( http://wonderfl.net/user/Nowloading_ )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/2ag2
*/
// forked from ton_'s TextButtonTest2
// forked from ton_'s TextButtonTest1
/**
テキストボタン実験4
右中に簡易演出窓作成
クリック時の_nowの値に+1して(1<=_now+1<=6)
それを6で割り、0xffffffに書けている
とりあえずここまでで終了。
BitmapData,Bitmapの知識と
Button(),Sprite,などなど要勉強
次回からスロット制作サンプルとし、
抽選の具体化、演出の複雑かを行う
**/
package {
import flash.geom.Matrix;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.BitmapData;
import flash.display.Bitmap;
public class FlashTest extends Sprite {
private var _fld:TextField;
private var _fld2:TextField;
private var _tf2:TextFormat;
private var _XY:Array = new Array();
private var _Sai:Array = [0,0,0,0,0,0];
private var _now:int;
private var _Sum:int = 0;
public var bgColor:Sprite;
private var _button:MyButton;
private var _bData:BitmapData;
private var _bmat:Matrix;
private var _bspr:Sprite;
//メインファンクション
public function FlashTest() {
setStage();
Text();
Text2();
Button();
addEvent();
}
//ステージ描画
private function setStage():void{
graphics.lineStyle(1,0x000000);
graphics.drawRect(0,0,464,464);
graphics.drawRect(300,45,464,360);
}
//テキストフィールド1(画面左)の情報
private function Text():void{
_fld = new TextField();
_fld.wordWrap = true;
_fld.height = 355;
_fld.width = 300;
_fld.border = true;
addChild(_fld);
}
//テキストフィールド2(画面右上)の情報
private function Text2():void{
//書式設定
_tf2 = new TextFormat();
_tf2.size = "22";
_fld2 = new TextField();
_fld2.wordWrap = true;
_fld2.x = 300;
_fld2.y = 0;
_fld2.height = 45;
_fld2.width = 164;
_fld2.border = true;
_fld2.defaultTextFormat = _tf2;
addChild(_fld2);
}
//演出画面(画面右中)の情報
public function bmp1(color:int):void{
color = color+1;
var bc : uint = color/6 * 0xffffff;
var matrix:Matrix = new Matrix();
matrix.createGradientBox(200, 200, 45 * Math.PI / 180);
var canvas:Sprite = new Sprite();
canvas.graphics.beginGradientFill("linear", [0xFFFFFF, bc], [1.0 , 1.0], [0, 255], matrix);
canvas.graphics.drawRect(0, 0, 163, 359);
canvas.graphics.endFill();
var newbd:BitmapData = new BitmapData(163, 359, false);
matrix = new Matrix();
matrix.tx = 0;
matrix.ty = 0;
newbd.draw(canvas, matrix);
var bitmap:Bitmap = new Bitmap(newbd);
bitmap.x = 301;
bitmap.y = 46;
addChild(bitmap);
}
//ボタン情報
private function Button():void{
_button = new MyButton()
_button.x = 304;
_button.y = 410;
addChild(_button);
}
//イベントリスナー登録
private function addEvent():void {
_button.addEventListener(MouseEvent.CLICK, onClick);
_button.addEventListener(MouseEvent.MOUSE_OUT, mOut);
_button.addEventListener(MouseEvent.MOUSE_OVER, mOver);
}
private function mOut(e:Event):void{
_button.out();
}
private function mOver(e:Event):void{
_button.over();
}
//演算処理部分(そのうち外部クラスにする予定
public function onClick(e:MouseEvent):void{
//サイコロ処理部分
_now = Math.ceil(Math.random()*6)-1;
_Sai[_now] += 1;
_Sum += 1;
_now += 1;
//演出窓表示部分
bmp1(_now);
//テキスト表示部分
_XY.unshift(["Nr : " + _now + " Total = [" + _Sai[0],
_Sai[1],_Sai[2],_Sai[3],_Sai[4],_Sai[5] +
"] [count = " + _Sum + "]\n"]);
_fld.text = "," + String(_XY);
_fld2.text = "Number Is ..." + String(_now+1);
}
}
}
import flash.display.Sprite;
class MyButton extends Sprite {
private var _over:Sprite;
public function MyButton () {
graphics.beginFill(0x995555);
graphics.drawRoundRect(0, 0, 156, 49, 45);
graphics.endFill();
// マウス・オーバー時に表示させるSpriteのインスタンスを生成
_over = new Sprite();
_over.graphics.beginFill(0xff0000);
_over.graphics.drawRoundRect(0, 0, 156, 49, 45);
_over.graphics.endFill();
_over.visible = false;
addChild(_over);
// マウス・カーソルを手のカーソルに変える
buttonMode = true;
}
public function over():void {
_over.visible = true;
}
public function out():void {
_over.visible = false;
}
}