Autor Zpráva
Blow
Profil
AHoj snažím se vytvořit jednoduché kreslení něco na způsob http://www.amaltas.org/svgapp/

Zatím dělám je jednoduché kreslení rovných čar.
Javascriptem odchytávám MouseDown a Up nad SVG objektem do kterého pak vytvářím čáry
V HTML5 je to opravdu jednoduché :) používám FF 3.6 s povoleným HTML5 parserem abych mohl používat inline SVG.

Problém je ten že když už mám na plátně(svg) nějaký objekt například čtverec a chci z prostřed čtverce nakrestli čáru.
tak při mousedown uprostřed toho čtvrece se ten čtverec jako by chytne, kurzor se změní z myši na zakázáno(kolečko s diagonální čárou) - prohlížeč si zřejmě myslí že chci s tím obrázkem hnout a zakáže mi to.

Každopádně můj skript který kreslý čáry v tomto případě nekreslí nic
Nevíte někdo jak tenhle problém vyřešit

Doufám že jsem to vysvětlil správně :)

<!DOCTYPE html>
<html>
    <head><title>SVG Simple painting</title></head>
    <body>
    <svg id="svg" width="640" height="480" style="margin-left: 100px;">
        <rect x="0" y="0" width="100" height="100" fill="yellow" stroke="green"/>
    </svg>
    <script type="text/javascript">
        <!--
        document.getElementById("svg").style.position="relative";
        document.getElementById("svg").addEventListener("mousedown", mouseDown, false);
        document.getElementById("svg").addEventListener("mouseup", mouseUp, false);
        down=false;
        xxx=0;
        yyy=0;  
        function mouseDown(e){
            down=true;
            if (!e) {        e = window.event;     }
            var posX= e.layerX;
            var posY= e.layerY;
            xxx=posX;
            yyy=posY;
        }
        function mouseUp(e){
            if (!e) {        e = window.event;     }
            if(down){
                if (!e) {        e = window.event;     }
                var posX= e.layerX;
                var posY= e.layerY;            
                var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
                line.setAttribute('x1', xxx);
                line.setAttribute('y1', yyy);
                line.setAttribute('x2', posX);
                line.setAttribute('y2', posY);
                line.setAttribute('stroke','blue');
                line.setAttribute('stroke-width','2');
                document.getElementById("svg").appendChild(line);
                down=false;
            }
        }
        -->
    </script>
</body>
</html>
Blow
Profil
kdyby měl nekdo podobnej problem tak řešení je tady http://www.redips.net/firefox/disable-image-dragging/

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0