我正在进行拖放活动,其中多个项目将放置在同一目标上。我在主时间线上有动作代码,然后是附加到精灵的代码。
问题:
当我释放对象时,如果它是正确的,它应该捕捉到该部分的顶部。如果不正确,则应返回其原始方向以便再次拾取。不幸的是它停留在我放置它的位置,并且当它不正确时不会移回原始位置。我已经修复了这个flash文件的其他问题,如果代码应该在主时间线或精灵中,但是在释放对象后这似乎没有效果。在脚本末尾附近有_root.rlamp1.gotoAndPlay(1)
如果答案不正确,这是一个蜂鸣器。这是正常的。
我不知道这些是否是相关项目,但如果给出了正确的位置,我希望下一个项目从原始位置开始,但它从我的鼠标而不是原始位置开始。我对编码比较陌生,正在尝试为我的科学课做一个活动,以获得即时反馈,看看他们是否理解概念。
感谢您的帮助。
// [Action in Frame 1]
answername = Array();
answerdest = Array();
answername[0] = "gravel";
answerdest[0] = "1";
answername[1] = "nuts and bolts";
answerdest[1] = "1";
answername[2] = "oxygen";
answerdest[2] = "2";
answername[3] = "helium";
answerdest[3] = "2";
answername[4] = "gold";
answerdest[4] = "2";
dbCount = 0;
dbutton.duplicateMovieClip("dbutton" + dbCount,dbCount * 100);
dbutton.visible = false;
dbutton0.answer = answerdest[dbCount];
dbutton0.theText.text = answername[dbCount];
// This code is on the sprite and not on the main actionscript
onClipEvent (load)
{
this.defx = _x;
this.defy = _y;
if (this.theText.text.length > 20)
{
this.theText._height = 31;
this.theBox._height = 27;
}
else
{
this.theText._height = 19;
this.theBox._height = 19;
} // end else if
}
on (press)
{
if (this.noDrag !=true)
{
startDrag (this,false);
}
}
on (release)
{
if (this.noDrag != true)
{
stopDrag ();
if(this.hitTest(_root["dz" + this.answer]))
{
totalHeight = 0;
for (v = 0; v < _root.dbCount; v++)
{
if (_root["dbutton" + v].answer == this.answer)
{
totalHeight = totalHeight + _root["button" + v].theBox._height ;
} // end if
} // end of for
++_root.dbCount;
this .duplicateMovieClip("dbutton" + _root.dbCount, _root.dbCount * 100);
_root["dbutton" + _root.dbCount]._x = this.defX;
_root["dbutton" + _root.dbCount]._y = this.defY;
_root["dbutton" + _root.dbCount].answer = _root.answerdest[_root.dbCount + 1];
_root["dbutton" + _root.dbCount].theText.text = _root.answername[_root.dbCount +1];
if (_root["dbutton" + _root.dbCount].theText.text == "undefined")
{
_root["dbutton" + _root.dbCount].theText.text = "Finished!";
_root["dbutton" + _root.dbCount].noDrag = true;
} // end if
this.noDrag = true;
this._y = _root["dz" + this.answer]._y + totalHeight;
this._x = _root["dz" + this.answer]._x - _root["dz" + this.answer]._width / 2;
++_root["dz" + this.answer].numItems;
_root.glamp1.gotoAndPlay (1);
}
else
{
this.X = this.defX;
this._Y = this.defY;
_root.rlamp1.gotoAndPlay(1);
} // end if
} // end else if
}
答案 0 :(得分:0)
问题是精灵代码中有拼写错误的变量名称和属性。
替换这些行
this.X = this.defX;
this._Y = this.defY;
用这些行
this._x = this.defx;
this._y = this.defy;
并且您的代码应该可以使用。