CS3 Learning Interactions
From Wikicliki
Modifying Drag and Drop Learning INteraction (as2)
to make sure the items cannot be dropped on each other:
function onDDinit(){ var router = _parent.SessionArray[_parent.session]; var len = router.drag_objects.length; for (var i=0; i < len; i++){ _parent[router.drag_objects[i]].onPress = function() { if(router.scoreFlag != true){ router.setComponentState(router.Assets.ResetButton,true); if(!_parent.topDepth) _parent.topDepth = 100; if (!this.dragStart){ this.startDepth = this.getDepth(); this.startX = this._x; this.startY = this._y; this.dragStart = true; } if (this.finished != true){ this.swapDepths(_parent.topDepth); _parent.topDepth++; this.startDrag(); } } } _parent[router.drag_objects[i]].onRelease = function() { if(router.scoreFlag != true){ this.stopDrag(); var len = router.target_objects.length; var target = eval(this._droptarget)._name; if( target != undefined ){ for(var i=0; i < len; i++){ if (target == router.target_objects[i]){ this.dropValue = router.target_object_key[i]; this.dropZone = true; break; } if (_parent[target] == _parent[router.drag_objects[i]]){ if(_parent[target].dropValue != undefined){ this.dropValue = _parent[target].dropValue; this.dropZone = true; break; } } } } //my addition var temp_str = [target]; temp_var = String(temp_str); temp_letter = temp_var.slice(0,1); trace("temp_letter = "+temp_letter); if (this.dropZone == true && temp_letter == "T") { router.setComponentState(router.Assets.ControlButton, true); router.setFeedback(1); this._x = _parent[target]._x; this._y = _parent[target]._y; this.finished = true; } else{ if(router.snapToStart == true){ this._x = this.startX; this._y = this.startY; } } } } } }