- 注册时间
- 2014-8-11
- 最后登录
- 2014-10-17
- 阅读权限
- 20
- 积分
- 104
- 精华
- 0
- 帖子
- 33
|
Star.prototype.onframe =function(event){
var self = event.target;
var bitmapdata;
var bitmap;
var addY,addX;
if(self.lbitmap){
addY = 8;
self.lbitmap.y += addY;
if(self.lbitmap.y >= self.lbitmapHeight){
addY += self.lbitmapHeight - self.lbitmap.y;
self.lbitmap.y = self.lbitmapHeight;
self.removeChild(self.lbitmap);
Main.gameBody.removeChild(self);
}else{
self.lbitmap.bitmapData.setProperties(0,self.lbitmap.y,self.lbitmap.getWidth(),(self.lbitmapHeight - self.lbitmap.y));
}
var arr = [];
for(i=0;i<self.lbitmap.getWidth();i += 8){
addX = 8;
if(i+addX > self.lbitmap.getWidth()){
addX = self.lbitmap.getWidth() - i;
}
bitmapdata = new LBitmapData(Main.starImgs[self.index],i,self.lbitmap.y-addY,addX,addY);
bitmap = new LBitmap(bitmapdata);
bitmap.x = i;
bitmap.y = self.lbitmap.y-addY;
self.addChild(bitmap);
arr.push(bitmap);
}
if(self.lbitmap.y >= self.lbitmapHeight)self.lbitmap=null;
self.windList.push(arr);
}
self.windrun();
}
Star.prototype.windrun = function (){
var self = this;
var i,j,flag,ml=1;
for(i=0;i<self.windList.length;i++){
if(self.windList[i].length == 0){
self.windList.splice(i,1);
i--;
continue;
}
for(j=0;j<self.windList[i].length;j++){
if(self.windList[i][j].i == null)self.windList[i][j].i=1;
flag = Math.random();
if(flag < 0.3){
self.windList[i][j].x += ml*self.windList[i][j].i;
}else if(flag < 0.6){
self.windList[i][j].x -= ml*self.windList[i][j].i;
}else{
self.windList[i][j].y -= ml*self.windList[i][j].i;
}
self.windList[i][j].alpha -= 0.05;
self.windList[i][j].i += 2;
if(self.windList[i][j].alpha <= 0 || self.windList[i][j].x > LGlobal.width || self.windList[i][j].y > LGlobal.height){
self.removeChild(self.windList[i][j]);
self.windList[i].splice(j,1);
j--;
}
}
}
}
1.这个就是那个引用你那个粒子效果教程例子,然后就会导致其他图片会闪烁。
2.其次,还有个疑问。我新加一个图层用于显示粒子效果,把一个完整的图事先全部切割完毕。结果是在手机端访问时,有的机型比如Iphone下可以,小米只有UC和谷歌浏览器可以,然后其他浏览器会直接更新画面卡死。
function LEffect (x,y,index){
base(this,LSprite,[]);
this.init(x,y,index);
}
LEffect.prototype.init = function (x,y,index){
var self = this ;
self.x = x;
self.y = y;
self.index = index;
self.dustList = new Array();
}
LEffect.prototype.resolve = function (){
var self = this;
var seeX = 56;
var seeY = 56;
var index = 1;
var bitmap ;
for(var x=0;x<168;x +=56){
for(var y=0;y<168;y +=56){
bitmap = new LBitmap(new LBitmapData(Main.starImgs[5],x,y,seeX,seeY));
bitmap.x = x;
bitmap.y = y;
bitmap.si = 1;
self.addChild(bitmap);
self.dustList.push(bitmap);
}
}
}
LEffect.prototype.onframe = function (event){
var self = event.target;
var list = self.dustList;
if(list.length>0){
for(var i=0,len=self.dustList.length;i<len;i++){
//if(list[i].si == null) list[i].si=1;
if(list[i]){
flag = Math.random();
if(flag < 0.25){
self.dustList[i].x += self.dustList[i].si;
}else if(flag < 0.5){
self.dustList[i].x -= self.dustList[i].si;
}else if(flag<0.75){
self.dustList[i].y += self.dustList[i].si;
} else{
self.dustList[i].y -= self.dustList[i].si;
}
self.dustList[i].alpha -= 0.05;
self.dustList[i].si += 3;
if(self.dustList[i].alpha <= 0 || self.dustList[i].x > LGlobal.width || list[i].y > LGlobal.height){
// console.log(self.dustList[i].name);
self.removeChild(list[i]);
self.dustList.splice(i,1);
i--;
}
}
}
}else{
self.removeEventListener(LEvent.ENTER_FRAME,self.onframe);
Main.gameBody.removeChild(self);
}
} |
|