?? controller.as
字號:
?import mx.controls.*;
import flash.filters.DropShadowFilter;
import flash.filters.BlurFilter;
//
class Controller extends MovieClip {
private var a_mc:MovieClip;
private var b_mc:MovieClip;
private var target_mc:MovieClip; // 存放被控制的影片剪輯
private var shadowDegree:Number = 0;
private var mousePressed:Boolean = false;
private var inner:Boolean = false;
private var knockout:Boolean = false;
private var hideObject:Boolean = false;
//
public function Controller() {
buildUI();
}
//
public function setTarget(mc:MovieClip):Void {
target_mc = mc;
adjustShadow();
}
//
private function buildUI():Void {
var me:MovieClip = this;
var radian:Number; // 儲存弧度
var degree:Number; // 儲存角度
var diffDegree:Number; // 儲存角度差
var rotation:Number; // 記錄既有旋轉角度的變量
var initRotation:Number; // 存放旋轉鈕的初始旋轉角度
var initDegree:Number; // 存放鼠標的初始角度
var setInit:Boolean = false;
// 插入一個復選框
var knock_cb:CheckBox = me.createClassObject(CheckBox, "knock", 1);
knock_cb.label = "去底色";
// 設定復選框的坐標
knock_cb.move(this._x + 3,this._y+this._height+10);
// 復選框的事件處理程序
knock_cb.addEventListener("click",toggleKnockOut);
function toggleKnockOut(event:Object):Void {
me.knockout = event.target.selected;
me.adjustShadow();
}
a_mc.onPress = function() {
// 用戶按下鼠標了…
mousePressed = true;
};
a_mc.onRelease = released;
a_mc.onReleaseOutside = released;
function released() {
mousePressed = false;
// 記錄是否已儲存初始角度值的變量
setInit = false;
}
a_mc.onMouseMove = function() {
// 只有按鈕在旋轉鈕影片內被按下時,旋鈕才有作用
if (mousePressed) {
radian = Math.atan2(this._ymouse, this._xmouse);
degree = radian*(180/Math.PI);
// 記錄初始角度。
// 底下的條件程序,僅在用戶按著鼠標并移動的期間內執行一次
if (!setInit) {
initRotation = this.b_mc._rotation;
initDegree = degree;
setInit = true;
}
// 計算移動的角度量
diffDegree = degree-initDegree;
// 旋轉角度 = 原有的角度 + 移動的角度量
rotation = initRotation+diffDegree;
// 讓角度在0~359之間變化,這個判斷條件可有可無
if (rotation<0) {
rotation += 360;
}
this.b_mc._rotation = rotation;
// 調整對象的陰影角度
me.shadowDegree = rotation;
// 呼叫這個影片剪輯實例的自訂函數
me.adjustShadow();
//
this.degree_txt.text = Math.floor(rotation);
}
};
}
// 設定陰影的角度
private function adjustShadow():Void {
var distance:Number = 20;
// 陰影的偏移距離默認為4.0
var color:Number = 0x000000;
// 陰影的色彩,格式為0xRRGGBB
var alpha:Number = .5;
// 陰影的透明度,有效值為0.0~1.0,例如,0.5是50%透明度
var blurX:Number = 16;
// 水平方向的模糊值,有效值為0~255.0,默認為4.0
var blurY:Number = 16;
// 垂直方向的模糊值。
var strength:Number = 1;
// 作用強度,有效值為0~255.0,為1.0
var quality:Number = 1;
// 套用此濾鏡的次數,有效值為0~15,一般采用1(低質量)~3(高質量)之間的數字,數字越低,處理器的負擔就越輕
var filter:DropShadowFilter = new DropShadowFilter(distance, shadowDegree, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject);
var filterArray:Array = new Array();
filterArray.push(filter);
//
if (target_mc != null) {
target_mc.filters = filterArray;
} else {
trace("沒有指定被控制的影片剪輯實例,\n"+"請使用setTarget()方法設定。\n");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -