<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />MouseBox는 어렵습니다. 나는 그림을 움직이게하는 드래그 앤 드롭 솔루션을 구현하려하고있다.
아래 예제 코드를 Scripting Index >> Mouse Box >> SetDropTrack에서 가져 와서 문자 대신 상자에 이미지를 포함하도록 다시 구현했습니다. 내가 떨어 뜨린 후에 이미지가 새 위치에 채워지는 것을 제외하고는. 어떤 도움을 주시면 감사하겠습니다.
기본 이름은 여기에있다. ( 1 ) ;
// Datatable with : LocalPath 컴퓨터의 이미지 파일 경로를 포함하는 열
dtFull = 현재 데이터 테이블 () ;
경로 1 = dtFull : LocalPath [ 20 ] ;
경로 2 = dtFull : LocalPath [ 21 ] ;
경로 3 = dtFull : LocalPath [ 22 개월 ] ;
경로 4 = dtFull : LocalPath [ 23 ] ;
경로 5 = dtFull : LocalPath [ 20 ] ;
경로 6 = dtFull : LocalPath [ 21 ] ;
경로 7 = dtFull : LocalPath [ 22 개월 ] ;
경로 8 = dtFull : LocalPath [ 23 ] ;
img = NewImage ( 경로 1 ) ;
img2 = NewImage ( 경로 2 ) ;
img3 = NewImage ( 경로 3 ) ;
img4 = NewImage ( 경로 4 ) ;
img5 = NewImage ( 경로 1 ) ;
img6 = NewImage ( 경로 2 ) ;
img7 = NewImage ( 경로 3 ) ;
img8 = NewImage ( 경로 4 ) ;
// 수정 된 스크립팅 색인 아래 >> SetDropTrack 예제
nextToBlank = 기능 ( { 엑스 , 와이 } , / * 도우미 함수 * /
만약 ( / * 자식은 테두리, 손자는 텍스트 * /
( 엑스 > 1 & 비었다 ((( 퍼즐 [ 엑스 - 1 ] [ 와이 ] << 어린이 ) << 어린이 ) << 이미지를 얻다. )) | ( 엑스 < 삼 & 비었다 ((( 퍼즐 [ 엑스 + 1 ] [ 와이 ] << 어린이 ) << 어린이 ) << 이미지를 얻다. ))
| ( 와이 > 1 & 비었다 ((( 퍼즐 [ 엑스 ] [ 와이 - 1 ] << 어린이 ) << 어린이 ) << 이미지를 얻다. )) | ( 와이 < 삼 & 비었다 ((( 퍼즐 [ 엑스 ] [ 와이 + 1 ] << 어린이 ) << 어린이 ) << 이미지를 얻다. ))
,
1 ,
0
)
) ; / * 드래그를 허용하려면 빈 셀 옆에있는 경우 드래그 시작 * /
dragBegin = 기능 ( { 이 , clickPt } ,
{ 엑스 , 와이 } = 이 << getUserData ;
인쇄 ( "dragBegin" ) ;
만약 ( nextToBlank ( 엑스 , 와이 ) ,
영상 = (( 이 << 어린이 ) << 어린이 ) << getImage / * 메시지가 텍스트 상자 내용입니다 * /
, / * else * /
0 / * 드래그를 억제 * /
) ;
) ; / * 소스 셀에서 문자를 제거하는 함수, 드롭이 성공한 경우에만 * /
dragEnd = 기능 ( { 이 , clickPt , 방법 } , / * 복사 / 이동 / 무시 방법 * /
목적지 = 이 << getDestBox ;
만약 ( 비었다 ( destBox ) ,
보여 주다 ( "알 수없는 목적지" ) ;
0 / * 목적지가 어디인지 알지 못한다. 강제 무시 * /
;
,
시험 (
{ 엑스 , 와이 } = 목적지 << GetUserData ,
엑스 = - 1 ;
와이 = - 1 ;
) ; / * destbox에 userdata에 목록이 없을 수도 있습니다 * /
만약 (
시험 (
퍼즐 [ 엑스 ] [ 와이 ] ! = 목적지 ,
1 / * throw는 다음과 같습니다! = * /
)
, / * x, y는 유효한 인덱스가 아닐 수 있습니다 * /
보여 주다 ( "이 퍼즐에 떨어지지 않았다" ) ;
0 / *이 수수께끼 인스턴스가 아니고, 무시하세요 * /
;
, / * else * /
만약 ( 방법 == "무시하다" ,
보여 주다 ( "드롭 완료되지 않았습니다" ) ;
0 / * 드롭이 완료되지 않았습니다. * /
;
, / * else * /
(( 이 << 어린이 ) << 어린이 ) << setImage ( "" )
)
) ;
) ;
0 / * 리턴 코드는 무시된다. * /
;
) ; / * 드롭이 허용되는지를 결정하는 함수. 리턴 코드 (0,1)가 중요합니다. * /
dropTrack = 기능 ( { 이 , clickPt } ,
sourcebox = 이 << getSourceBox ;
만약 ( 비었다 ( sourcebox ) ,
보여 주다 ( "불분명 한 출처" ) ;
0 / * 알 수없는 소스 박스로부터의 드롭 없음 * /
;
, / * else * /
시험 (
{ 엑스 , 와이 } = sourcebox << getUserData ,
엑스 = - 1 ;
와이 = - 1 ;
) ; / * sourcebox는 userdata에리스트를 가질 수 없다 * /
만약 (
시험 (
퍼즐 [ 엑스 ] [ 와이 ] ! = sourcebox ,
1 / * throw는 다음과 같습니다! = * /
)
, / * x, y는 유효한 인덱스가 아닐 수 있습니다 * /
보여 주다 ( "이 수수께끼가 아니라" ) ;
0 / *이 수수께끼 인스턴스에서 가져온 것이 아니며, 무시합니다 * /
;
, / * else * /
만약 ( ! 비었다 ((( 이 << 어린이 ) << 어린이 ) << getImage ) ,
0 / * 점유 된 셀에 드롭 없음 * /
, / * else * /
1 / * 빈 셀에 드롭 허용 * /
)
) ;
) ;
) ; / * 드롭을 구현하는 함수 * /
dropCommit = 기능 ( { 이 , clickPt , 영상 } ,
(( 이 << 어린이 ) << 어린이 ) << setImage ( 영상 ) ;
1 ; / * 무시 된 * /
) ; / * 끌기를 끌 수있는 셀의 커서 변경자 * /
선로 = 기능 ( { 이 , clickPt } ,
{ 엑스 , 와이 } = 이 << getUserData ;
만약 ( nextToBlank ( 엑스 , 와이 ) ,
이 << setCursor ( "손" ) ,
이 << setCursor ( "화살" )
) ;
1 ; / * 무시 된 * /
) ; / * displaybox 트리를 구성하는 도우미 함수 * /
mb = 기능 ( { 편지 , 엑스 , 와이 } ,
MouseBox (
국경 상자 ( 왼쪽 ( 9 ) , 권리 ( 9 ) , 상단 ( 삼 ) , 바닥 ( 삼 ) , 양쪽 ( 15 명 ) ,
그림 상자 ( 편지 )
) ,
<< setUserData ( 평가 목록 ( { 엑스 , 와이 } ) ) , / * 내 위치를 기억해. 나는 움직이지 않지만 내 콘텐츠는 바뀝니다. * /
<< setDragEnable ( 1 ) ,
<< setDragBegin ( dragBegin ) , / * 아래 정의 된 * / dragFunctions * /
<< setDragEnd ( dragEnd ) ,
<< setDropEnable ( 1 ) ,
<< setDropTrack ( dropTrack ) ,
<< setDropCommit ( dropCommit ) ,
<< setTrackEnable ( 1 ) ,
<< setTrack ( 선로 )
)
) ;
퍼즐 = 평가 목록 (
{ 평가 목록 ( { mb ( img , 1 , 1 ) , mb ( img2 , 1 , 2 ) , mb ( "" , 1 , 삼 }} ) ,
평가 목록 ( { mb ( img3 , 2 , 1 ) , mb ( img4 , 2 , 2 ) , mb ( img5 , 2 , 삼 }} ) ,
평가 목록 ( { mb ( img6 , 삼 , 1 ) , mb ( img7 , 삼 , 2 ) , mb ( img8 , 삼 , 삼 }} }}
) ;
새창 ( "퍼즐" ,
국경 상자 ( 왼쪽 ( 5 ) , 권리 ( 5 ) , 상단 ( 5 ) , 바닥 ( 5 ) , 양쪽 ( 15 명 ) ,
라인업 박스 ( N Col ( 삼 ) , 간격 ( 삼 , 삼 ) ,
퍼즐 [ 1 ] [ 1 ] ,
퍼즐 [ 1 ] [ 2 ] ,
퍼즐 [ 1 ] [ 삼 ] ,
퍼즐 [ 2 ] [ 1 ] ,
퍼즐 [ 2 ] [ 2 ] ,
퍼즐 [ 2 ] [ 삼 ] ,
퍼즐 [ 삼 ] [ 1 ] ,
퍼즐 [ 삼 ] [ 2 ] ,
퍼즐 [ 삼 ] [ 삼 ] ,
)
)
) ;