Поскольку вы выполняете целочисленное деление.
Как говорит @Noldorin, если оба оператора являются целыми числами, то используется целочисленное деление.
Результат 0.33333333 не может быть представлен как целое число, поэтому к результату присваивается только целочисленная часть (0).
Если любой из операторов является double
/ float
, тогда будет выполнена арифметика с плавающей запятой. Но у вас будет такая же проблема, если вы это сделаете:
int n = 1.0 / 3.0;
Решение:
в svg:
<script>document.method = function() {}</script>
в HTML (использующий прототип для добавления слушателей события):
<script>$("img").observe("load", function() {$("img").contentDocument.method()});
необходимо слушать событие загрузки на изображении. После того как изображение загружается, можно использовать element.contentDocument
для доступа к переменной документа на svg документе. Любые методы, добавленные, к который, будут доступны.
Несколько лет назад меня попросили создать основанную на Ajax игру с 2 плеерами с помощью SVG. Это не может быть точно решение, которое Вы ищете, но это может помочь Вам прислушаться к событиям в своем SVG. Вот контроллер SVG:
к вашему сведению, SVG перетаскивался (это был Stratego)
/****************** Track and handle SVG object movement *************/
var svgDoc;
var svgRoot;
var mover=''; //keeps track of what I'm dragging
///start function////
//do this onload
function start(evt){
//set up the svg document elements
svgDoc=evt.target.ownerDocument;
svgRoot=svgDoc.documentElement;
//add the mousemove event to the whole thing
svgRoot.addEventListener('mousemove',go,false);
//do this when the mouse is released
svgRoot.addEventListener('mouseup',releaseMouse,false);
}
// set the id of the target to drag
function setMove(id){ mover=id; }
// clear the id of the dragging object
function releaseMouse(){
if(allowMoves == true){ sendMove(mover); }
mover='';
}
// this is launched every mousemove on the doc
// if we are dragging something, move it
function go(evt){
if(mover != '' && allowMoves != false) {
//init it
var me=document.getElementById(mover);
//actually change the location
moveX = evt.clientX-135; //css positioning minus 1/2 the width of the piece
moveY = evt.clientY-65;
me.setAttributeNS(null, 'x', evt.clientX-135);
me.setAttributeNS(null, 'y', evt.clientY-65);
}
}
function moveThis(pieceID, x, y) {
$(pieceID).setAttributeNS(null, 'x', x);
$(pieceID).setAttributeNS(null, 'y', y);
}
, Мое приложение было чистым SVG + JavaScript, но это - суть его.
Я сослался бы на доктора David Dailey как на самый потрясающий SVG / информация о JS, которую Вы найдете http://srufaculty.sru.edu/david.dailey/svg/
Я исследовал svg JavaScripts. См. блог: Масштабирование Графика SVG с JavaScripts