예제: 기본 HTML 드래그인 비헤이비어 재정의Adobe AIR 1.0 이상 이 예제에서는 드롭된 항목에서 사용할 수 있는 각각의 데이터 형식을 보여 주는 표를 표시하는 드롭 대상을 구현합니다. 기본 비헤이비어를 사용하여 응용 프로그램 내에서 텍스트, 링크 및 이미지를 드래그할 수 있습니다. 이 예제에서는 드롭 대상으로 기능하는 div 요소의 기본 드래그인 비헤이비어를 재정의합니다. 편집 불가능한 내용에서 드래그인 동작을 허용하도록 하기 위한 주요 단계는 dragenter 및 dragover 이벤트에 대해 전달된 이벤트 객체의 preventDefault() 메서드를 호출하는 것입니다. drop 이벤트에 대한 응답으로 핸들러는 전송된 데이터를 HTML 줄 요소로 변환하고 이 줄을 표시할 표에 삽입합니다. <html> <head> <title>Drag-and-drop</title> <script language="javascript" type="text/javascript" src="AIRAliases.js"></script> <script language="javascript"> function init(){ var target = document.getElementById('target'); target.addEventListener("dragenter", dragEnterOverHandler); target.addEventListener("dragover", dragEnterOverHandler); target.addEventListener("drop", dropHandler); var source = document.getElementById('source'); source.addEventListener("dragstart", dragStartHandler); source.addEventListener("dragend", dragEndHandler); emptyRow = document.getElementById("emptyTargetRow"); } function dragStartHandler(event){ event.dataTransfer.effectAllowed = "copy"; } function dragEndHandler(event){ air.trace(event.type + ": " + event.dataTransfer.dropEffect); } function dragEnterOverHandler(event){ event.preventDefault(); } var emptyRow; function dropHandler(event){ for(var prop in event){ air.trace(prop + " = " + event[prop]); } var row = document.createElement('tr'); row.innerHTML = "<td>" + event.dataTransfer.getData("text/plain") + "</td>" + "<td>" + event.dataTransfer.getData("text/html") + "</td>" + "<td>" + event.dataTransfer.getData("text/uri-list") + "</td>" + "<td>" + event.dataTransfer.getData("application/x-vnd.adobe.air.file-list") + "</td>"; var imageCell = document.createElement('td'); if((event.dataTransfer.types.toString()).search("image/x-vnd.adobe.air.bitmap") > -1){ imageCell.appendChild(event.dataTransfer.getData("image/x-vnd.adobe.air.bitmap")); } row.appendChild(imageCell); var parent = emptyRow.parentNode; parent.insertBefore(row, emptyRow); } </script> </head> <body onLoad="init()" style="padding:5px"> <div> <h1>Source</h1> <p>Items to drag:</p> <ul id="source"> <li>Plain text.</li> <li>HTML <b>formatted</b> text.</li> <li>A <a href="http://www.adobe.com">URL.</a></li> <li><img src="icons/AIRApp_16.png" alt="An image"/></li> <li style="-webkit-user-drag:none;"> Uses "-webkit-user-drag:none" style. </li> <li style="-webkit-user-select:none;"> Uses "-webkit-user-select:none" style. </li> </ul> </div> <div id="target" style="border-style:dashed;"> <h1 >Target</h1> <p>Drag items from the source list (or elsewhere).</p> <table id="displayTable" border="1"> <tr><th>Plain text</th><th>Html text</th><th>URL</th><th>File list</th><th>Bitmap Data</th></tr> <tr id="emptyTargetRow"><td> </td><td> </td><td> </td><td> </td><td> </td></tr> </table> </div> </div> </body> </html> |
|