SO object living
♥0 |
Line 76 |
Modified 2011-06-01 19:16:15 |
MIT License
archived:2017-03-20 04:38:24
ActionScript3 source code
/**
* Copyright pleclech ( http://wonderfl.net/user/pleclech )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/e9W4
*/
package {
import flash.events.Event;
import flash.utils.setTimeout;
import com.bit101.components.TextArea
public class FlashTest extends TextArea {
public function FlashTest() {
width=400
height=400
setTimeout(doTest, 500)
}
public function doTest():void {
addEventListener(Event.ENTER_FRAME, onEnterFrame)
var mc:MartysMC = new MartysMC(trace)
var dataObject:Object =
{
x: 10,
y: 34,
alpha: 0.6
};
mc.update(dataObject);
traceRegistered()
mc.update({
x: 10,
y: 34,
alpha: 0.6
});
traceRegistered()
}
public function trace(...args):void {
text=text+args.join(", ")+"\n"
}
private var _isEmptyChecked:Boolean=false
public function traceRegistered():void{
var cnt:int=0
for each (var id:int in Watch.dict) {
cnt ++
trace(new Date()+" : "+" live object "+id)
}
if (cnt==0 && !_isEmptyChecked) {
trace(new Date() + " : " + " no object living")
_isEmptyChecked = true
} else {
_isEmptyChecked = (cnt==0)
}
}
public function onEnterFrame(e:Event):void{
traceRegistered()
}
}
}
import flash.display.MovieClip;
import flash.utils.Dictionary;
class Watch {
public static const dict:Dictionary=new Dictionary(true)
public static var id:int=0
public static function register(object:Object):int {
++id
dict[object]=id
return id
}
}
class MartysMC extends MovieClip {
private var _out:Function
public function MartysMC(out:Function){
_out=out
}
/**
* Updates this
* @param obj An object containing key/value pairs to represent new property values
*/
public function update(obj:Object):void
{
var i:String;
for(i in obj)
{
this[i] = obj[i];
}
// just add object to check liveness
_out(new Date()+ " : " + " registering " + Watch.register(obj))
}
}