void MouseEvent::setTarget(_NR<ASObject> t) { target = t; //If t is NULL, it means MouseEvent is being reset if(!t) { localX = 0; localY = 0; stageX = 0; stageY = 0; relatedObject = NullRef; } //If t is non null, it should be an InteractiveObject else if(t->getClass()->isSubClass(Class<InteractiveObject>::getClass())) { InteractiveObject* tar = static_cast<InteractiveObject*>(t.getPtr()); tar->localToGlobal(localX, localY, stageX, stageY); } }
/* * (creates and) sets the property 'prototype' to o * 'prototype' is usually DYNAMIC_TRAIT, but on Class_base * it is a DECLARED_TRAIT, which is gettable only */ void ASObject::setprop_prototype(_NR<ASObject>& o) { ASObject* obj = o.getPtr(); obj->incRef(); multiname prototypeName; prototypeName.name_type=multiname::NAME_STRING; prototypeName.name_s="prototype"; prototypeName.ns.push_back(nsNameAndKind("",NAMESPACE)); bool has_getter = false; variable* ret=findSettable(prototypeName,false, &has_getter); if(!ret && has_getter) throw Class<ReferenceError>::getInstanceS("Error #1074: Illegal write to read-only property prototype"); if(!ret) ret = Variables.findObjVar(prototypeName,DYNAMIC_TRAIT,DECLARED_TRAIT|DYNAMIC_TRAIT); if(ret->setter) { this->incRef(); _MR( ret->setter->call(this,&obj,1) ); } else ret->setVar(obj); }