快速业务通道

追踪效果实现方法1

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-13
his);


propList=new Object();
for (var i in defaultPropList){
propList[i]=defaultPropList[i];
}


mlist=new Array();
totalWeight=0;

}



/**
* overWritten
* create a impulser.
* @return impulser implemented ’xp.events.Broadcaster’ interface.
* 生成一个触发器,定时调用callChase函数,默认生成的impulser每帧调用1次callChase,子类可以覆盖此函数。
*/
function createImpulser():Object{
return xp.system.Broadcaster.createAutoBroadcaster("callChase",2);
}




/**
* add a property to chase

* @param n String property name
* 添加一个被追踪的属性
*/
function addProp(n:String){
propList[n]=1;
}

/**
* delete a property to chase

* @param n String property name
* 删除一个被追踪的属性
*/
function delProp(n:String){
delete propList[n];
}






/**
* add another target to chase,optionally specifying a weight value for calculating chasing result.

* @param m MovieClip instance to chase.
* @param w weight.
* 添加一个被追踪的目标。
*/

function addTarget(m:MovieClip,w:Number){
if (!m) return;
if (w==undefined || isNaN(w)) w=1;

//push instance to queue,& remember its position.
m.__chaser__id__=mlist.push({w:w,ins:m})-1;
totalWeight+=w;
}



/**
* delete a target.
* @param p could be MC reference or id.
* @return Boolean
* 删除一个被追踪的目标
*/

function delTarget(p):Boolean{

var id:Number=undefined;


if (!isNaN(p)) id=Number(p);
else id=p["__chaser__id__"];

if (id==undefined) return false;

mlist.split(id);
for (var i : Number = id; i < mlist.length; i++) {
mlist[i]["__chaser__id__"]=i;
}

return true;

}






/**
* invoked by impulser

* broadcast ’onChase’ event
* 由impulser定时触发,计算追踪数值并调用用户定义的onChase函数。
*/
function callChase(){

var eo=calculateChase();

//subclass implement onChase by get/set function !!
this.onChase(eo);
}



/**
* abstract function

* overWritten by user defined function.
* 由用户覆盖此函数。
* @param eo 属性集合,包含所有propList中列出的属性。
*/
function onChase(eo){
}


/**
* overWritten
*
* 计算追踪的数据,子类应该覆盖此函数以实现更多的追踪效果(例如colorTransfrom,或瞄准目标的角度和距离等)

* 计算追踪目标的加权平均值,保存到eo对象中并返回此对象。
* @return Object containing infomation of targets.this object will be used as ’eo’ parameter for ’onChase’ function.
*
*/
function calculateChase():Object{

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号