<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />マウスボックスは難しいです。 私はドラッグアンドドロップソリューションを実装して写真を移動させようとしています。
以下では、Scripting Index >> Mouse Box >> SetDropTrackのサンプルコードを使用し、文字の代わりに画像をボックスに含めるように再実装しました。 ただし、ドロップした後に新しい場所に画像が取り込まれることはありません。 任意の助けがいただければ幸いです。
ここにデフォルトの名前 ( 1 ) ;
// LocalData:コンピューター上の画像ファイルへのパスを含む列
dtFull = 現在のデータテーブル () ;
path1 = dtFull : LocalPath [ 20 ] ;
path2 = dtFull : LocalPath [ 21 ] ;
パス3 = dtFull : LocalPath [ 22 ] ;
path4 = dtFull : LocalPath [ 23 ] ;
パス5 = dtFull : LocalPath [ 20 ] ;
パス6 = dtFull : LocalPath [ 21 ] ;
path7 = dtFull : LocalPath [ 22 ] ;
パス8 = dtFull : LocalPath [ 23 ] ;
img = 新しいイメージ ( path1 ) ;
img2 = 新しいイメージ ( path2 ) ;
img3 = 新しいイメージ ( パス3 ) ;
img4 = 新しいイメージ ( path4 ) ;
img5 = 新しいイメージ ( path1 ) ;
img6 = 新しいイメージ ( path2 ) ;
img7 = 新しいイメージ ( パス3 ) ;
img8 = 新しいイメージ ( path4 ) ;
//下記の修正スクリプトインデックス>> SetDropTrackの例
nextToBlank = 関数 ( { バツ 、よ } 、 / *ヘルパー関数* /
もし ( / *子供は国境、孫はテキスト* /
( バツ > 1 & isempty (((( パズル [ バツ - 1 ] [ よ ] << 子 ) << 子 ) << getimage )) | ( バツ < 3 & isempty (((( パズル [ バツ + 1 ] [ よ ] << 子 ) << 子 ) << getimage ))
| ( よ > 1 & isempty (((( パズル [ バツ ] [ よ - 1 ] << 子 ) << 子 ) << getimage )) | ( よ < 3 & isempty (((( パズル [ バツ ] [ よ + 1 ] << 子 ) << 子 ) << getimage ))
、
1 、
0
)
) ; / *空のセルの隣にある場合にのみドラッグ開始を許可する* /
dragBegin = 関数 ( { この 、 clickPt } 、
{ バツ 、よ } = この << getUserData ;
印刷する ( "ドラッグ開始" ) ;
もし ( nextToBlank ( バツ 、よ ) 、
画像 = ((( この << 子 ) << 子 ) << getImage / *メッセージはテキストボックスの内容です* /
、 / *その他* /
0 / *ドラッグを抑制します* /
) ;
) ; / *ソースセルから文字を削除する機能。ただし、ドロップが成功した場合のみ
dragEnd = 関数 ( { この 、 clickPt 、どうやって } 、 / *コピー/移動/無視する方法* /
宛先ボックス = この << getDestBox ;
もし ( 空です ( destBox ) 、
見せる ( 「目的地が不明」 ) ;
0 / * destがどこにあったのかわからない、無視を強制する* /
;
、
やってみる (
{ バツ 、よ } = 宛先ボックス << GetUserData 、
バツ = - 1 ;
よ = - 1 ;
) ; / * destboxはuserdataにリストを持っていないかもしれません* /
もし (
やってみる (
パズル [ バツ ] [ よ ] != 宛先ボックス 、
1 / * throwは!= * /と同じです
)
、 / * x、yは有効なインデックスではない可能性があります* /
見せる ( 「このパズルに落ちない」 ) ;
0 / *このパズルの実例ではない、無視を強制する* /
;
、 / *その他* /
もし ( どうやって == 「無視する」 、
見せる ( 「ドロップが完了していません」 ) ;
0 / *ドロップは完了しませんでした* /
;
、 / *その他* /
((( この << 子 ) << 子 ) << setImage ( 「」 )
)
) ;
) ;
0 / *リターンコードは無視されます* /
;
) ; / *ドロップを許可するかどうかを決定する機能。 戻りコード(0、1)は重要です。* /
dropTrack = 関数 ( { この 、 clickPt } 、
ソースボックス = この << getSourceBox ;
もし ( 空です ( ソースボックス ) 、
見せる ( 「未知の出所」 ) ;
0 / *未知のソースボックスからのドロップなし* /
;
、 / *その他* /
やってみる (
{ バツ 、よ } = ソースボックス << getUserData 、
バツ = - 1 ;
よ = - 1 ;
) ; / *ソースボックスはuserdataにリストを持っていないかもしれません* /
もし (
やってみる (
パズル [ バツ ] [ よ ] != ソースボックス 、
1 / * throwは!= * /と同じです
)
、 / * x、yは有効なインデックスではない可能性があります* /
見せる ( 「このパズルからではない」 ) ;
0 / *このパズルインスタンスから供給されていない、無視する* /
;
、 / *その他* /
もし ( ! isempty (((( この << 子 ) << 子 ) << getImage ) 、
0 / *占有セルにドロップなし* /
、 / *その他* /
1 / *空白セルへのドロップを許可する* /
)
) ;
) ;
) ; / *ドロップを実装する機能* /
dropCommit = 関数 ( { この 、 clickPt 、画像 } 、
((( この << 子 ) << 子 ) << setImage ( 画像 ) ;
1 ; / *無視* /
) ; / *ドラッグを提供できるセルのためのカーソルチェンジャー* /
トラック = 関数 ( { この 、 clickPt } 、
{ バツ 、よ } = この << getUserData ;
もし ( nextToBlank ( バツ 、よ ) 、
この << setCursor ( "ハンド" ) 、
この << setCursor ( 「アロー」 )
) ;
1 ; / *無視* /
) ; / *ディスプレイボックスツリーを構築するためのヘルパー関数* /
MB = 関数 ( { 文字 、バツ 、よ } 、
マウスボックス (
ボーダーボックス ( 左 ( 9 ) 、右 ( 9 ) 、上 ( 3 ) 、底 ( 3 ) 、脇 ( 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 、 3 )} ) 、
評価リスト ( { MB ( img3 、 2 、 1 ) 、 MB ( img4 、 2 、 2 ) 、 MB ( img5 、 2 、 3 )} ) 、
評価リスト ( { MB ( img6 、 3 、 1 ) 、 MB ( img7 、 3 、 2 ) 、 MB ( img8 、 3 、 3 )} )}
) ;
新しい窓 ( "パズル" 、
ボーダーボックス ( 左 ( 5 ) 、右 ( 5 ) 、上 ( 5 ) 、底 ( 5 ) 、脇 ( 15年 ) 、
ラインナップボックス ( Nコル ( 3 ) 、スペーシング ( 3 、 3 ) 、
パズル [ 1 ] [ 1 ] 、
パズル [ 1 ] [ 2 ] 、
パズル [ 1 ] [ 3 ] 、
パズル [ 2 ] [ 1 ] 、
パズル [ 2 ] [ 2 ] 、
パズル [ 2 ] [ 3 ] 、
パズル [ 3 ] [ 1 ] 、
パズル [ 3 ] [ 2 ] 、
パズル [ 3 ] [ 3 ] 、
)
)
) ;