0

特定のポイント ( ) に入力ボックスを追加しようとしていますonclick。これどうやってするの。理解を深めるために、ここでフィドルを参照してください

そして、これは私のコードです:

<script type="text/paperscript" canvas="canvas">
    var m=0;

    function onMouseDrag(event) {
    var path = new PointText({
                        point: event.point,
                        content: 'The contents of the point text',
                        fillColor: 'black',
                        fontSize: 25
                    });
    path.removeOnDrag();
    }

     function onMouseUp(event) {
        m++;
        var point = event.point;
        createInput(point);
    }

    function createInput(point){
            console.log(point); 
        }
    </script>
4

3 に答える 3

0

ここに実用的なソリューションがあります:http://jsfiddle.net/DBfRT/2/

アイデアは、ユーザーのキーボード入力値ですべてのフレームの PointText.content を更新することです。

var m=0;
var input = '';
var inputPrepend = 'User input: ';
var inputs = [];

function onKeyUp(event) {
    // add user key inputs into the input variable
    input += event.key;
}

 function onMouseUp(event) {
    m++;
    var point = event.point;
    var path = new PointText({
                    point: point,
                    content: inputPrepend + input,
                    fillColor: 'black',
                    fontSize: 25
                });
    inputs.push(path);
}


function onFrame(e) {
    for(var i = 0;i < inputs.length;i++) {
        // loop through every input and update it's content 
        inputs[i].content = inputPrepend + input;
    }
}
于 2013-06-07T19:55:59.517 に答える
0

PointText.contentは HTML をサポートしていません。したがって、paperJS を使用してキャンバスに html 入力要素を追加することはできません。

于 2013-06-07T20:08:21.480 に答える
0

これが答えです。

<input type="hidden" value="" id="x-text">
<input type="hidden" value="" id="y-text">
<input type="hidden" value="" id="content-text">

$("#canvas").click(function(e){
                        if(set==5){
                        var offset = $(this).offset();
                        $("#position").text((e.clientX - offset.left) + ", " + (e.clientY - offset.top));
                        $("#position").empty();
                        var input = $("<input type='text' value='' class='addtext' id='addText'>");
                        var save = $("<input type='button' class='save' value='save' id='save'>");
                        var discard = $("<input type='button' class='discard' value='discard' id='disc'>");
                        $("#position").append(input);
                        $("#position").append(save);
                        $("#position").append(discard);
                        $("#position").css('position', 'absolute');
                        $("#position").css('left', e.clientX - offset.left);
                        $("#position").css('top', e.clientY);
                        var xcor = $("#x-text");
                        var ycor = $("#y-text");
                        var ctext = $("#content-text");
                        var atext = $("#addText");
                        discard.click(function(){
                        $(this).parent().empty();
                        });
                        save.click(function(){
                            ctext.val(atext.val());
                            xcor.val(e.clientX - offset.left);
                            ycor.val(e.clientY);
                            $(this).parent().empty();

                        });
                    }
                });

ここに paperJS 関数がありonMouseMove()ます

function onMouseMove(event){
                if(set == 5){
                document.getElementById('save').onclick = function (){
                    m++;
                    var xcor = document.getElementById('x-text').value;
                    var ycor = document.getElementById('y-text').value;
                    var cont = document.getElementById('content-text').value;
                    var text = new PointText({
                        point: [xcor, ycor - 150],
                        content: cont,
                        fillColor: 'black',
                        fontSize: 25
                        });
                    var txt = new Group();
                    txt.addChild(text);
                    createElem('Notes', m, txt);
                }

            }
        }
于 2013-06-12T21:18:19.303 に答える