⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_tween2.as

📁 openblog是一个博客管理系统
💻 AS
📖 第 1 页 / 共 5 页
字号:
	// propDest_blur = blur, as on flash.filters.BlurFilter .blurX and .blurY parameters
	// quality = blur quality, as on flash.filters.BlurFilter .quality
	if (typeof(arguments[0]) == "object" && arguments[0] != undefined) {
		// It's an object
		_global.$addTween(this, ["__special_blur_x__","__special_blur_y__"], [arguments[0].blurX, arguments[0].blurY], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], {__special_blur_quality__:arguments[0].quality});
	} else {
		// Normal parameters
		_global.$addTween(this, ["__special_blur_x__","__special_blur_y__"], [arguments[0], arguments[0]], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], {__special_blur_quality__:arguments[1]});
	}
};
ASSetPropFlags(MovieClip.prototype, "blurTo", 1, 0);
ASSetPropFlags(TextField.prototype, "blurTo", 1, 0);

MovieClip.prototype.xyBlurTo = TextField.prototype.xyBlurTo = function (propDest_blurX, propDest_blurY, quality, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Blur with different horizontal/vertical values
	_global.$addTween(this, ["__special_blur_x__","__special_blur_y__"], [propDest_blurX, propDest_blurY], timeSeconds, animType, delay, callback, extra1, extra2, {__special_blur_quality__:quality});
};
ASSetPropFlags(MovieClip.prototype, "xyBlurTo", 1, 0);
ASSetPropFlags(TextField.prototype, "xyBlurTo", 1, 0);

MovieClip.prototype.xBlurTo = TextField.prototype.xBlurTo = function (propDest_blur, quality, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Horizontal blur
	_global.$addTween(this, "__special_blur_x__", propDest_blur, timeSeconds, animType, delay, callback, extra1, extra2, {__special_blur_quality__:quality});
};
ASSetPropFlags(MovieClip.prototype, "xBlurTo", 1, 0);
ASSetPropFlags(TextField.prototype, "xBlurTo", 1, 0);

MovieClip.prototype.yBlurTo = TextField.prototype.yBlurTo = function (propDest_blur, quality, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Vertical blur
	_global.$addTween(this, "__special_blur_y__", propDest_blur, timeSeconds, animType, delay, callback, extra1, extra2, {__special_blur_quality__:quality});
};
ASSetPropFlags(MovieClip.prototype, "yBlurTo", 1, 0);
ASSetPropFlags(TextField.prototype, "yBlurTo", 1, 0);


// Glow -------------------------

MovieClip.prototype.glowTo = TextField.prototype.glowTo = function () {
	// Applies a glow filter
	// 1 -> (propDest_color, propDest_alpha, propDest_blur, propDest_strength, quality, inner, knockout, timeSeconds, animType, delay, callback, extra1, extra2)
	// 2 -> (GlowFilter, timeSeconds, animType, delay, callback, extra1, extra2)
	if (typeof(arguments[0]) == "object" && arguments[0] != undefined) {
		// It's an object
		_global.$addTween(this, ["__special_glow_color__", "__special_glow_alpha__", "__special_glow_blurX__","__special_glow_blurY__", "__special_glow_strength__"], [arguments[0].color, arguments[0].alpha, arguments[0].blurX, arguments[0].blurY, arguments[0].strength], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], {__special_glow_quality__:arguments[0].quality, __special_glow_inner__:arguments[0].inner, __special_glow_knockout__:arguments[0].knockout});
	} else {
		// Normal parameters
		_global.$addTween(this, ["__special_glow_color__", "__special_glow_alpha__", "__special_glow_blurX__","__special_glow_blurY__", "__special_glow_strength__"], [arguments[0], arguments[1], arguments[2], arguments[2], arguments[3]], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], {__special_glow_quality__:arguments[4], __special_glow_inner__:arguments[5], __special_glow_knockout__:arguments[6]});
	}

};
ASSetPropFlags(MovieClip.prototype, "glowTo", 1, 0);
ASSetPropFlags(TextField.prototype, "glowTo", 1, 0);

MovieClip.prototype.xyGlowTo = TextField.prototype.xyGlowTo = function (propDest_color, propDest_alpha, propDest_blurX, propDest_blurY, propDest_strength, quality, inner, knockout, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Applies a glow filter with different horizontal/vertical values
	_global.$addTween(this, ["__special_glow_color__", "__special_glow_alpha__", "__special_glow_blurX__","__special_glow_blurY__", "__special_glow_strength__"], [propDest_color, propDest_alpha, propDest_blurX, propDest_blurY, propDest_strength], timeSeconds, animType, delay, callback, extra1, extra2, {__special_glow_quality__:quality, __special_glow_inner__:inner, __special_glow_knockout__:knockout});
};
ASSetPropFlags(MovieClip.prototype, "xyGlowTo", 1, 0);
ASSetPropFlags(TextField.prototype, "xyGlowTo", 1, 0);

MovieClip.prototype.xGlowTo = TextField.prototype.xGlowTo = function (propDest_color, propDest_alpha, propDest_blur, propDest_strength, quality, inner, knockout, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Applies a glow filter horizontally only
	_global.$addTween(this, ["__special_glow_color__", "__special_glow_alpha__", "__special_glow_blurX__", "__special_glow_strength__"], [propDest_color, propDest_alpha, propDest_blur, propDest_strength], timeSeconds, animType, delay, callback, extra1, extra2, {__special_glow_quality__:quality, __special_glow_inner__:inner, __special_glow_knockout__:knockout});
};
ASSetPropFlags(MovieClip.prototype, "xGlowTo", 1, 0);
ASSetPropFlags(TextField.prototype, "xGlowTo", 1, 0);

MovieClip.prototype.yGlowTo = TextField.prototype.yGlowTo = function (propDest_color, propDest_alpha, propDest_blur, propDest_strength, quality, inner, knockout, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Applies a glow filter vertically only
	_global.$addTween(this, ["__special_glow_color__", "__special_glow_alpha__", "__special_glow_blurY__", "__special_glow_strength__"], [propDest_color, propDest_alpha, propDest_blur, propDest_strength], timeSeconds, animType, delay, callback, extra1, extra2, {__special_glow_quality__:quality, __special_glow_inner__:inner, __special_glow_knockout__:knockout});
};
ASSetPropFlags(MovieClip.prototype, "yGlowTo", 1, 0);
ASSetPropFlags(TextField.prototype, "yGlowTo", 1, 0);


// Bevel ------------------------

MovieClip.prototype.bevelTo = TextField.prototype.bevelTo = function () {
	// Applies a bevel filter
	// 1 -> (propDest_distance, propDest_angle, propDest_highlightColor, propDest_highlightAlpha, propDest_shadowColor, propDest_shadowAlpha, propDest_blur, propDest_strength, quality, type, knockout, timeSeconds, animType, delay, callback, extra1, extra2) {
	// 2 -> (bevelFilter, timeSeconds, animType, delay, callback, extra1, extra2) {
	if (typeof(arguments[0]) == "object" && arguments[0] != undefined) {
		// It's an object
		_global.$addTween(this, ["__special_bevel_distance__", "__special_bevel_angle__", "__special_bevel_highlightColor__","__special_bevel_highlightAlpha__", "__special_bevel_shadowColor__", "__special_bevel_shadowAlpha__", "__special_bevel_blurX__", "__special_bevel_blurY__", "__special_bevel_strength__"], [arguments[0].distance, arguments[0].angle, arguments[0].highlightColor, arguments[0].highlightAlpha*100, arguments[0].shadowColor, arguments[0].shadowAlpha*100, arguments[0].blurX, arguments[0].blurY, arguments[0].strength], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], {__special_bevel_quality__:arguments[0].quality, __special_bevel_type__:arguments[0].type, __special_bevel_knockout__:arguments[0].knockout});
	} else {
		// Normal parameters
		_global.$addTween(this, ["__special_bevel_distance__", "__special_bevel_angle__", "__special_bevel_highlightColor__","__special_bevel_highlightAlpha__", "__special_bevel_shadowColor__", "__special_bevel_shadowAlpha__", "__special_bevel_blurX__", "__special_bevel_blurY__", "__special_bevel_strength__"], [arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[6], arguments[7]], arguments[11], arguments[12], arguments[13], arguments[14], arguments[15], arguments[16], {__special_bevel_quality__:arguments[8], __special_bevel_type__:arguments[9], __special_bevel_knockout__:arguments[10]});
	}
};
ASSetPropFlags(MovieClip.prototype, "bevelTo", 1, 0);
ASSetPropFlags(TextField.prototype, "bevelTo", 1, 0);

MovieClip.prototype.xyBevelTo = TextField.prototype.xyBevelTo = function (propDest_distance, propDest_angle, propDest_highlightColor, propDest_highlightAlpha, propDest_shadowColor, propDest_shadowAlpha, propDest_blurX, propDest_blurY, propDest_strength, quality, type, knockout, timeSeconds, animType, delay, callback, extra1, extra2) {
	// Applies a bevel filter with different horizontal/vertical values
	_global.$addTween(this, ["__special_bevel_distance__", "__special_bevel_angle__", "__special_bevel_highlightColor__","__special_bevel_highlightAlpha__", "__special_bevel_shadowColor__", "__special_bevel_shadowAlpha__", "__special_bevel_blurX__", "__special_bevel_blurY__", "__special_bevel_blurY__", "__special_bevel_strength__"], [propDest_distance, propDest_angle, propDest_highlightColor, propDest_highlightAlpha, propDest_shadowColor, propDest_shadowAlpha, propDest_blur, propDest_blur, propDest_strength], timeSeconds, animType, delay, callback, extra1, extra2, {__special_bevel_quality__:quality, __special_bevel_type__:type, __special_bevel_knockout__:knockout});
};
ASSetPropFlags(MovieClip.prototype, "xyBevelTo", 1, 0);
ASSetPropFlags(TextField.prototype, "xyBevelTo", 1, 0);

/*
===============================================================================
Calculation functions
-------------------------------------------------------------------------------
These functions are used by others methods and functions to find the correct
values for the tweenings. They're for internal use, but can be used for several
other features out of MC Tween itself.
-------------------------------------------------------------------------------
*/

_global.findPointOnCurve = function (p1x, p1y, cx, cy, p2x, p2y, t) {
	// Returns the points on a bezier curve for a given time (t is 0-1);
	// This is based on Robert Penner's Math.pointOnCurve() function
	// More information: http://actionscript-toolbox.com/samplemx_pathguide.php
	return {x:p1x + t*(2*(1-t)*(cx-p1x) + t*(p2x - p1x)),
			y:p1y + t*(2*(1-t)*(cy-p1y) + t*(p2y - p1y))};
};
ASSetPropFlags(_global, "findPointOnCurve", 1, 0);

_global.findTweenColor = function (objProp, tTime) {
	// Quick way to recalculate color on direct color tweenings
	var rrs = objProp._propStart >> 16; // r start
	var rrd = objProp._propDest >> 16; // r destiny
	var ggs = objProp._propStart >> 8 & 0xff; // g start
	var ggd = objProp._propDest >> 8 & 0xff; // g destiny
	var bbs = objProp._propStart & 0xff; // b start
	var bbd = objProp._propDest & 0xff; // b destiny

	var newR = Math.round(_global.findTweenValue (rrs, rrd, objProp._timeStart, tTime-(objProp._delay*1000), objProp._timeDest, objProp._animType, objProp._extra1, objProp._extra2));
	var newG = Math.round(_global.findTweenValue (ggs, ggd, objProp._timeStart, tTime-(objProp._delay*1000), objProp._timeDest, objProp._animType, objProp._extra1, objProp._extra2));
	var newB = Math.round(_global.findTweenValue (bbs, bbd, objProp._timeStart, tTime-(objProp._delay*1000), objProp._timeDest, objProp._animType, objProp._extra1, objProp._extra2));

	return (newR << 16) + (newG << 8) + newB;
};

_global.findTweenValue = function (_propStart, _propDest, _timeStart, _timeNow, _timeDest, _animType, _extra1, _extra2) {
	// Returns the current value of a property mid-value given the time.
	// Used by the tween methods to see where the movieclip should be on the current
	// tweening process. All equations on this function are Robert Penner's work.
	var t = _timeNow - _timeStart;  // current time (frames, seconds)
	var b = _propStart;             // beginning value
	var c = _propDest - _propStart; // change in value
	var d = _timeDest - _timeStart; // duration (frames, seconds)
	var a = _extra1;                // amplitude (optional - used only on *elastic easing)
	var p = _extra2;                // period (optional - used only on *elastic easing)
	var s = _extra1;                // overshoot ammount (optional - used only on *back easing)

	switch (_animType.toLowerCase()) {
	case "linear":
		// simple linear tweening - no easing
		return c*t/d + b;

	case "easeinquad":
		// quadratic (t^2) easing in - accelerating from zero velocity
		return c*(t/=d)*t + b;
	case "easeoutquad":
		// quadratic (t^2) easing out - decelerating to zero velocity
		return -c *(t/=d)*(t-2) + b;
	case "easeinoutquad":
		// quadratic (t^2) easing in/out - acceleration until halfway, then deceleration
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	case "easeoutinquad":
		// quadratic (t^2) easing out/in - deceleration until halfway, then acceleration
		if (t < d/2) return findTweenValue (0, c, 0, t*2, d, "easeOutQuad") * .5 + b;
		return findTweenValue(0, c, 0, t*2-d, d, "easeInQuad") * .5 + c*.5 + b;

	case "easeincubic":
		// cubic (t^3) easing in - accelerating from zero velocity
		return c*(t/=d)*t*t + b;
	case "easeoutcubic":
		// cubic (t^3) easing out - decelerating to zero velocity
		return c*((t=t/d-1)*t*t + 1) + b;
	case "easeinoutcubic":
		// cubic (t^3) easing in/out - acceleration until halfway, then deceleration
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	case "easeoutincubic":
		// cubic (t^3) easing out/in - deceleration until halfway, then acceleration
		if (t < d/2) return findTweenValue (0, c, 0, t*2, d, "easeOutCubic") * .5 + b;
		return findTweenValue(0, c, 0, t*2-d, d, "easeInCubic") * .5 + c*.5 + b;

	case "easeinquart":
		// quartic (t^4) easing in - accelerating from zero velocity
		return c*(t/=d)*t*t*t + b;
	case "easeoutquart":
		// quartic (t^4) easing out - decelerating to zero velocity
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	case "easeinoutquart":
		// quartic (t^4) easing in/out - acceleration until halfway, then deceleration
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	case "easeoutinquart":
		// quartic (t^4) easing out/in - deceleration until halfway, then acceleration
		if (t < d/2) return findTweenValue (0, c, 0, t*2, d, "easeOutQuart") * .5 + b;
		return findTweenValue(0, c, 0, t*2-d, d, "easeInQuart") * .5 + c*.5 + b;

	case "easeinquint":
		// quintic (t^5) easing in - accelerating from zero velocity
		return c*(t/=d)*t*t*t*t + b;
	case "easeoutquint":
		// quintic (t^5) easing out - decelerating to zero velocity
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	case "easeinoutquint":
		// quintic (t^5) easing in/out - acceleration until halfway, then deceleration
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	case "easeoutinquint":
		// quintic (t^5) easing out/in - deceleration until halfway, then acceleration
		if (t < d/2) return findTweenValue (0, c, 0, t*2, d, "easeOutQuint") * .5 + b;
		return findTweenValue(0, c, 0, t*2-d, d, "easeInQuint") * .5 + c*.5 + b;

	case "easeinsine":
		// sinusoidal (sin(t)) easing in - accelerating from zero velocity
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	case "easeoutsine":
		// sinusoidal (s

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -