affectorhandler.java
来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 178 行
JAVA
178 行
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: AffectorHandler.java
package se.southend.drops.integeraffector;
import java.util.Vector;
import se.southend.drops.screen.ScreenEngine;
// Referenced classes of package se.southend.drops.integeraffector:
// Affector
public class AffectorHandler
{
public AffectorHandler()
{
affectors = new Vector();
affectDuringDelay = false;
removeFinished = true;
}
public static AffectorHandler getInstance()
{
if(instance == null)
instance = new AffectorHandler();
return instance;
}
public void affectDuringDelay(boolean affectDuringDelay)
{
this.affectDuringDelay = affectDuringDelay;
}
public void removeFinishedAffectors(boolean removeFinished)
{
this.removeFinished = removeFinished;
}
public Affector addAffector(Affector affector)
{
return addAffector(affector, null);
}
public Affector addAffector(Affector affector, Object id)
{
initAffector(affector, id);
affectors.addElement(affector);
return affector;
}
public void insertAffectorAt(int index, Affector affector)
{
insertAffectorAt(index, affector, null);
}
public void insertAffectorAt(int index, Affector affector, Object id)
{
initAffector(affector, id);
affectors.insertElementAt(affector, index);
}
public void removeAffector(Affector affector)
{
affectors.removeElement(affector);
}
private void updateAffector(Affector affector)
{
if(affector.isRemoved)
{
removeAffector(affector);
} else
{
if(affector.currentTime >= affector.startTime)
{
if(!affector.playedFinish)
affector.update(affector.currentTime);
if(!affector.hasStarted)
{
affector.hasStarted = true;
affector.start();
}
affector.process();
} else
if(affectDuringDelay)
affector.process();
if(affector.isFinished())
{
if(!affector.playedFinish)
{
affector.isRemoved = true;
affector.playedFinish = true;
affector.finish();
}
if(removeFinished)
removeAffector(affector);
}
}
}
public void stopAffectorsWithId(Object id)
{
removeAffectorsWithId(id, true);
}
public void empty()
{
affectors.removeAllElements();
}
public void removeAffectorsWithId(Object id)
{
removeAffectorsWithId(id, false);
}
public Affector findAffector(Object id)
{
for(int i = 0; i < affectors.size(); i++)
{
Affector affector = (Affector)affectors.elementAt(i);
if(affector.getId() != null && affector.getId() == id)
return affector;
}
return null;
}
public int getNbrAffectors()
{
return affectors.size();
}
public void process()
{
process(ScreenEngine.getInstance().getTime());
}
public void process(long time)
{
for(int i = 0; i < affectors.size(); i++)
{
Affector affector = (Affector)affectors.elementAt(i);
affector.currentTime = time;
updateAffector(affector);
}
}
private void initAffector(Affector affector, Object id)
{
affector.setId(id);
long time = ScreenEngine.getInstance().getTime();
affector.currentTime = time;
updateAffector(affector);
}
private synchronized void removeAffectorsWithId(Object id, boolean stop)
{
for(int i = 0; i < affectors.size(); i++)
{
if(((Affector)affectors.elementAt(i)).getId() != id)
continue;
Affector affector = (Affector)affectors.elementAt(i);
if(stop && !affector.playedFinish)
affector.finish();
affectors.removeElementAt(i--);
}
}
private static AffectorHandler instance;
public Vector affectors;
private boolean affectDuringDelay;
private boolean removeFinished;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?