Archive for May, 2005

闲谈我和车

  将近一年的工作,有大部分在作车的项目。有media,有teaser,有site,有screen saver,有presentation,再加上现在的触摸屏。也曾经在拍摄现场钻进一辆半解剖的车子里面拍照留念。但却一直好像混混谔谔没有什么特别的感觉。
直到前几天,有同事问我:你现在应该是车的专家了吧?我才好好思考了这个问题。当时我简单的回答说:我不看内容的。的确,对一个制作人员来说,关心的也许永远不会是车的发动机,排气量……
和大多数的男孩不一样,我最早去接触车不是出于任何很雄性的理由,而是因为我的女朋友。当时买了几期汽车杂志,囫囵吞枣得记下在马路上出现频率较高的车型,然后便饶有兴致的介绍给我的女友听。接着有些身边的朋友去考了驾照,开始在聚会的时候闲聊铁皮薄不薄、耗油大不大诸如此类的问题,我还是一贯的旁听者。仅此而已。
车子的代步作用和竞速方面的刺激感没有特别吸引我的地方。这样的我居然也出现在了F1赛场和上海国际车展之上。呵呵,不知要气坏多少没有这种福分的爱车人。

Color对象的几个扩展方法

 
Color.prototype.colorDodge = function(r, g, b) {
	var trans = new Object();
	trans.ra = 100/((258-r)/256);
	trans.ga = 100/((258-g)/256);
	trans.ba = 100/((258-b)/256);
	this.setTransform(trans);
};
Color.prototype.linearDodge = function(r, g, b) {
	var trans = new Object();
	trans.rb = r;
	trans.gb = g;
	trans.bb = b;
	this.setTransform(trans);
};
Color.prototype.linearBurn = function(r, g, b) {
	var trans = new Object();
	trans.rb = r-255;
	trans.gb = g-255;
	trans.bb = b-255;
	this.setTransform(trans);
};
Color.prototype.screen = function(r, g, b) {
	var trans = new Object();
	trans.rb = r;
	trans.ra = 100*(255-r)/255;
	trans.gb = g;
	trans.ga = 100*(255-g)/255;
	trans.bb = b;
	trans.ba = 100*(255-b)/255;
	this.setTransform(trans);
};
Color.prototype.invertRGB = function() {
	this.setRGB(0xffffff-this.getRGB());
};
Color.prototype.setBrightness = function(bright) {
	var percent = 100-Math.abs(bright);
	var offset = 0;
	if (bright>0) {
		offset = 256*(bright/100);
	}
	var trans = new Object();
	trans.ra = trans.ga=trans.ba=percent;
	trans.rb = trans.gb=trans.bb=offset;
	this.setTransform(trans);
};

v2 component architecture tutorial

Transition及其派生类

Transition 需要的参数:
direction // 0 or 1:产生或消失
duration // 秒
easing // 一个缓动函数

其他的一些继承类需要的附加参数
Blinds // 拉窗帘的效果
dimension // 过渡的方向 0 or 1:横竖
numStrips // 栅格的个数
Fade
不需要
Fly
startPoint // 飞入的位置:1~9九宫格
Iris // 按指定的形状出现或消失
startPoint // 奇数偶数
shape // "SQUARE" or "CIRCLE"
Photo // 设置了亮度和alpha值的变化
PixelDissolve
xSections // 横向分块,默认为10
ySections // 竖向分块,默认为10
Rotation
degrees // 旋转的度数
ccw // 旋转的方向,与direction值取反后的值为MC旋转的方向
Squeeze // 压缩
dimension // 0 or 1,横竖
Wipe
startPoint // 1~9九宫格
Zoom
不需要

TransitionManager和Transition类

TransitionManager.start()静态方法

  • 在目标mc上建了一个TrainsitionManager实例。
  • 使该mc监听TrainsitionManager实例的allTransitionsInDone、allTransitionsOutDone事件。
  • 返回一个Transition实例,并使mc上的TrainsitionManager实例设置为Transition实例的manager属性;TrainsitionManager实例监听Transition实例的transitionInDone、transitionOutDone、transitionProgress事件。

综上所述:执行

var trns:mx.transitions.Transition = mx.transitions.TransitionManager.start(mc, transParams);

之后就生成以下事件处理函数:

trns.manager.transitionProgress
trns.manager.transitionInDone
trns.manager.transitionOutDone
mc.allTransitionsInDone
mc.allTransitionsOutDone

复制和粘贴快捷键

 
KeyListener = new Object();
KeyListener.onKeyDown = function() {
	if (Key.isDown(Key.CONTROL) and Key.isDown(67)) {
		if (Selection.getFocus() != null) {
			copy = Selection.getFocus();
		}
	} else if (Key.isDown(Key.CONTROL) and Key.isDown(86)) {
		if (Selection.getFocus() != null) {
			_root[Selection.getFocus()] = eval(copy);
		}
	}
};
Key.addListener(KeyListener);
 

流行的文字出现和消失效果

 
TextField.prototype.constructTextbyLetter = function(txt, speed, size) {
	if (!size) {
		size = 1;
	}
	if (!speed) {
		speed = 10;
	}
	var i = 0;
	var txt = txt;
	clearInterval(_root[this._name+'Int']);
	_root[this._name+'Int'] = setInterval(function (_txt) {
		// from start
		//_txt.text = txt.substr(0, (i+=size))
		// from start with acceleration
		_txt.text = txt.substr(0, _txt.length+(i += size));
		// from end
		//_txt.text = txt.substr(txt.length-(i+=size))
		// from end with acceleration
		//var first_letter = txt.length-(_txt.length+(i+=size))
		//_txt.text = txt.substr((first_letter < 0 ? 0 : first_letter))
		//
		updateAfterEvent();
		if (_txt.length>=txt.length) {
			clearInterval(_root[_txt._name+'Int']);
		}
	}, speed, this);
};
TextField.prototype.deConstructTextbyLetter = function(speed, size) {
	if (!size) {
		size = 1;
	}
	if (!speed) {
		speed = 10;
	}
	var i = 0;
	var len = this.length;
	clearInterval(_root[this._name+'Int']);
	_root[this._name+'Int'] = setInterval(function (_txt) {
		// from end
		//_txt.text = _txt.text.substr(0, len-(i+=size))
		// from end with acceleration
		//_txt.text = _txt.text.substr(0, _txt.length-(i+=size))
		// from start
		//_txt.text = _txt.text.substr(size)
		// from start with acceleration
		_txt.text = _txt.text.substr((i += size));
		updateAfterEvent();
		if (!_txt.length) {
			clearInterval(_root[_txt._name+'Int']);
		}
	}, speed, this);
};

Usage:

 
//Create a textfield in the main timeline, name it to test, make it dynamic.
//put this code to your _root.
test.constructTextbyLetter("Another sample text .", 100, 3);
// or
test.constructTextbyLetter("Another sample text .", 100);
//Deconstruct:
test.constructTextbyLetter(100);

FWA 2004年度推荐站点

vodafone future vision
Hi-Tech的感觉是我的最爱。

http://kevincao.com/wp-content/uploads/200505/18_011108_vodafone.jpg

Page 2 of 3«123»
Close
E-mail It
Socialized through Gregarious 42