내가하려는 일을하는 swf 파일을 발견했습니다. 그래서 나는 그것을 적재하고 그것을 디 컴파일하여 어떻게 올바르게 할 수 있는지 배울 수 있었다. 그런 다음 제가 작업하고있는 것에 적용하십시오. 많은 항목이 있다고 가정하고 개인은 올바른 항목으로 끌어다 놓는 것입니다. 그것이 풀어 놓일 때 정확한 경우에, 체재하면 incorect 그것은 시작으로 돌아갑니다. What it looks like여러 항목을 하나의 대상에 끌어서 놓기
원본 파일이 제대로 작동하지 않아 몇 가지 변경을했습니다. (onClipEvent)와 같은 원래 코드가있는 곳을 볼 수 있습니다. 대부분의 문제가 해결 된 것 같지만 드래그 한 항목을 올바른 위치에 놓을 수는 없습니다. 또한 액션 스크립트를 스프라이트에 추가했습니다. 왼쪽에서 오른쪽으로 1에서 5까지 번호가 매겨진 각 색상의 삼각형입니다 (이것이 정확했기를 바랍니다). 도움을 주셔서 감사합니다. 좌절 한 과학 선생.
// Action script…
// [onClipEvent of sprite 2 in]
//onClipEvent (load)
this.addEventListener(Event.ENTER_FRAME, this.loading);
function loading(e:Event)
{
this.numItems = 2;
}
// [onClipEvent of sprite 2 in]
//onClipEvent (load)
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(event:Event){
this.numItems = 3;
}
// [onClipEvent of sprite 2 in]
//onClipEvent (load)
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(event:Event){
this.numItems = 3;
}
// [onClipEvent of sprite 8 in]
//onClipEvent (load)
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(event:Event){
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
}
// [onClipEvent of sprite 8 in frame 1]
//on (press)
this.addEventListener(MouseEvent.MOUSE_DOWN, pressed);
function pressed(event:Event){
if (this.noDrag != true)
{
startDrag (this, false);
} // end if
}
// [onClipEvent of sprite 8 in frame 1]
//on (release)
this.addEventListener(MouseEvent.MOUSE_UP, relea);
function relea(event:Event){
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
}
// [onClipEvent of sprite 2 in frame 1]
//onClipEvent (load)
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(event:Event){
this.numItems = 2;
}
// [onClipEvent of sprite 2 in frame 1]
//onClipEvent (load)
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(event:Event){
this.numItems = 3;
}
// [Action in Frame 1]
answername = Array();
answerdest = Array();
answername[0] = "gravel";
answerdest[0] = "1";
answername[1] = "water";
answerdest[1] = "2";
dbCount = 0;
dbutton.duplicateMovieClip("dbutton" + dbCount,dbCount * 100);
dbutton.visible = false;
dbutton0.answer = answerdest[dbCount];
dbutton0.theText.text = answername[dbCount];
"끌린 항목을 올바른 위치에 놓을 수 없습니다." 이는 문제를 이해하는 데 도움이되지 않습니다. 어떤 일이 발생했는지 정확히 알 수 있습니다. 오류 메시지가 있습니까? 디버거로 실행 해 보셨습니까? 또한 원하는 목표가 매우 단순한 것처럼 들립니다. 왜 이것을 디 컴파일합니까? 당신이 기술하고있는 것을 스크립트로 만드는 것은 처음부터 쉽습니다. 나는 다른 사람의 코드를 리버스 엔지니어링하는 대신 처음부터 시작할 것입니다. 그러나 무엇이든지 당신에게 어울립니다. –
마우스를 놓을 때 끌어온 항목을 대상 위에 떨어 뜨리지 않습니다. 대신 그것은 마우스로 유지됩니다. 두 번째로 처음부터 시작하고 싶지만 한 대상에 세 항목을 설정하는 방법과 다른 대상에 또 다른 세 항목을 설정하는 방법의 예제를 찾을 수 없습니다. 이것은 제가 발견 할 수있는 가장 가까운 예입니다. 나는 액션 스크립트 코드 작성에 비교적 새로운 편이다. – user7259892