[Sie-announce] SIEコード [2318] 0. 68 ブランチを統合

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2011年 1月 21日 (金) 21:18:21 JST


Revision: 2318
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2318
Author:   dhrname
Date:     2011-01-21 21:18:20 +0900 (Fri, 21 Jan 2011)

Log Message:
-----------
0.68 ブランチを統合

Modified Paths:
--------------
    trunk/sie.js

Property Changed:
----------------
    trunk/sie.js

Modified: trunk/sie.js
===================================================================
--- trunk/sie.js	2011-01-21 10:40:17 UTC (rev 2317)
+++ trunk/sie.js	2011-01-21 12:18:20 UTC (rev 2318)
@@ -1,4 +1,4 @@
-/*SIE-SVG without Plugin under LGPL2.1 & GPL2.0 & Mozilla Public Lisence
+/*SIE-SVG without Plugin under LGPL2.1 & GPL2.0 & Mozilla Public Lisence
  *公式ページは http://sie.sourceforge.jp/
  *利用方法は <script defer="defer" type="text/javascript" src="sie.js"></script>
  *http://sie.sourceforge.jp/
@@ -1247,26 +1247,28 @@
 
 function MutationEvent(){
   Event.call(this);
-/*Node*/  this.relatedNode;
-/*string*/  this.prevValue;
-/*string*/  this.newValue;
-/*string*/  this.attrName;
-/*unsigned short*/  this.attrChange;
   return this;
 };
 MutationEvent.prototype = new Event();
 MutationEvent.constructor = Event;
-/*void*/  MutationEvent.prototype.initMutationEvent = function(/*string*/ typeArg, /*boolean*/ canBubbleArg,
+(function() {
+/*void*/  this.initMutationEvent = function(/*string*/ typeArg, /*boolean*/ canBubbleArg,
     /*boolean*/ cancelableArg, /*Node*/ relatedNodeArg, /*string*/ prevValueArg, /*string*/ newValueArg,
     /*string*/ attrNameArg, /*unsigned short*/ attrChangeArg) {
-  this.initEvent(typeArg, canBubbleArg, cancelableArg);
-  this.relatedNode = relatedNodeArg;
-  this.prevValue = prevValueArg;
-  this.newValue = newValueArg;
-  this.attrName = attrNameArg;
-  this.attrChange = attrChangeArg;
-  typeArg = canBubbleArg = cancelableArg = relatedNodeArg = prevValueArg = newValueArg = attrNameArg = attrChangeArg = null;
-};
+    this.initEvent(typeArg, canBubbleArg, cancelableArg);
+    this.relatedNode = relatedNodeArg;
+    this.prevValue = prevValueArg;
+    this.newValue = newValueArg;
+    this.attrName = attrNameArg;
+    this.attrChange = attrChangeArg;
+    typeArg = canBubbleArg = cancelableArg = relatedNodeArg = prevValueArg = newValueArg = attrNameArg = attrChangeArg = null;
+  };
+  /*Node*/  this.relatedNode = null;
+  /*string*/  this.prevValue = null;
+  /*string*/  this.newValue = null;
+  /*string*/  this.attrName = null;
+  /*unsigned short*/  this.attrChange = 2;
+}).apply(MutationEvent.prototype);
     // attrChangeType
 /*unsigned short*/  MutationEvent.MODIFICATION  = 1;
 /*unsigned short*/  MutationEvent.ADDITION      = 2;
@@ -1288,7 +1290,11 @@
   /*ここから*/
   var evt = this.ownerDocument.createEvent("MutationEvents");
   if (!s) { //ノードがなければ
-    evt.initMutationEvent("DOMAttrModified", true, false, newAttr, null, newAttr.nodeValue, newAttr.nodeName, MutationEvent.ADDITION);
+    /*initMutationEventメソッドは軽量化のため省略する*/
+    evt.initEvent("DOMAttrModified", true, false);
+    evt.relatedNode = newAttr;
+    evt.newValue = newAttr.nodeValue;
+    evt.attrName = newAttr.nodeName;
   } else {
     evt.initMutationEvent("DOMAttrModified", true, false, newAttr, s.nodeValue, newAttr.nodeValue, newAttr.nodeName, MutationEvent.MODIFICATION);
   }
@@ -2871,11 +2877,6 @@
  *valueInSpecifiedUnitsプロパティはpxに統一する前の数値。valueプロパティはpxに統一した後の数値
  */
 function SVGLength() {
-  /*readonly attribute unsigned short*/ this.unitType = SVGLength.SVG_LENGTHTYPE_UNKNOWN;
-  /*attribute float*/          this.value = 0;                  //利用単位における値
-  /*attribute float*/          this.valueInSpecifiedUnits = SVGLength.SVG_LENGTHTYPE_UNKNOWN;  //unitTypeにおける値
-  /*attribute DOMString*/      this.valueAsString;
-  this._percent = 0.01; //単位に%が使われていた場合、このプロパティの数値を1%として使う
   return this;
 };
     // Length Unit Types
@@ -2892,6 +2893,11 @@
   /*const unsigned short*/ SVGLength.SVG_LENGTHTYPE_PC         = 10;
 
 SVGLength.prototype = {
+  /*readonly attribute unsigned short*/ unitType : SVGLength.SVG_LENGTHTYPE_UNKNOWN,
+  /*attribute float*/          value : 0,                  //利用単位における値
+  /*attribute float*/          valueInSpecifiedUnits : SVGLength.SVG_LENGTHTYPE_UNKNOWN,  //unitTypeにおける値
+  /*attribute DOMString*/      valueAsString : "0",
+  _percent : 0.01, //単位に%が使われていた場合、このプロパティの数値を1%として使う
 /*newValueSpedifiedUnitsメソッド
  *新しくunitTypeにおける値を設定する
  *例:2pxならば、x.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX, 2);となる
@@ -2899,6 +2905,8 @@
   newValueSpecifiedUnits : function (/*unsigned short*/ unitType, /*float*/ valueInSpecifiedUnits) {
     var n = 1, _s = ""; //nは各単位から利用単位への変換数値。_sは単位の文字列を表す
     if (unitType === SVGLength.SVG_LENGTHTYPE_NUMBER) {
+    } else if (unitType === SVGLength.SVG_LENGTHTYPE_PX) {
+      _s = "px";
     } else if (unitType === SVGLength.SVG_LENGTHTYPE_PERCENTAGE) {
       n = this._percent;
       _s = "%"
@@ -2922,11 +2930,13 @@
     } else if (unitType === SVGLength.SVG_LENGTHTYPE_PC) {
       n = 15;
       _s = "pc";
+    } else {
+      throw new DOMException(DOMException.NOT_SUPPORTED_ERR);
     }
     this.unitType = unitType;
     this.value = valueInSpecifiedUnits * n;
     this.valueInSpecifiedUnits = valueInSpecifiedUnits;
-    this.valuAsString = valueInSpecifiedUnits + _s;
+    this.valueAsString = valueInSpecifiedUnits + _s;
     n = _s = null;
   },
 /*convertToSpecifiedUnitsメソッド
@@ -3336,7 +3346,7 @@
             if (tar.localName === "image") {
               tar._tar.src = uri;
             }
-            xmlhttp.open("GET", uri, true);
+            xmlhttp.open("GET", uri, false);
             xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
             xmlhttp.onreadystatechange = function() {
               if (xmlhttp.readyState === 4  &&  xmlhttp.status === 200) {
@@ -3352,6 +3362,10 @@
                   if (tar.localName !== "script" && tar.localName !== "style") {
                     var doc = new ActiveXObject("MSXML2.DomDocument");
                     str = xmlhttp.responseText.replace(/!DOCTYPE/,"!--").replace(/(dtd">|\]>)/,"-->");
+                    NAIBU.doc.async = false;
+                    NAIBU.doc.validateOnParse = false;
+                    NAIBU.doc.resolveExternals = false;
+                    NAIBU.doc.preserveWhiteSpace = false;
                     doc.loadXML(str);
                     var ele = doc.documentElement;
                     tar._instance = tar.ownerDocument.importNode(ele, true);
@@ -3928,10 +3942,6 @@
        *スクロール時にバグが起きるので、0に戻してやる必要がある。
        */
       screen.updateInterval = 999;
-      window.onscroll = function () {
-        screen.updateInterval = 0;
-        screen.updateInterval = 99;
-      }
       var objei = this._tar;
       if (/&[^;]+;/.test(str)) {
         /*以下の処理は、実体参照を使ったとき
@@ -4133,7 +4143,7 @@
    */
   /*SVGMatrix*/ multiply : function(/*SVGMatrix*/ secondMatrix ) {
     var s = new SVGMatrix(), m = secondMatrix;
-    if (isNaN(m.a) || isNaN(m.b) || isNaN(m.c) || isNaN(m.d) || isNaN(m.e) || isNaN(m.f)) {
+    if (!isFinite(m.a) || !isFinite(m.b) || !isFinite(m.c) || !isFinite(m.d) || !isFinite(m.e) || !isFinite(m.f)) {
       throw (new Error("引数の値がNumber型ではありません"));
     }
     s.a = this.a * m.a + this.c * m.b;
@@ -4591,7 +4601,7 @@
     } else {
       el.appendChild(fillElement);
     }
-    fc = fillOpacity = null;
+    fillElement = fc = num = fillOpacity = null;
   } else if (fill.uri) {
     /*以下では、Gradation関連の要素に、イベントを渡すことで、
      *この要素の、グラデーション描画を行う
@@ -4672,7 +4682,7 @@
     } else {
       el.appendChild(strokeElement);
     }
-    tsd = null;
+    strokeElement = tsd = null;
   } else {
     el.stroked = "false";
   }
@@ -5041,13 +5051,10 @@
              *[0  0  1 ]   [1]
              */
 
-            dat[dat.length] = _parseInt(ma*ti.x1 + mc*ti.y1 + me, 10);
-            dat[dat.length] = _parseInt(mb*ti.x1 + md*ti.y1 + mf, 10);
-            dat[dat.length] = _parseInt(ma*ti.x2 + mc*ti.y2 + me, 10);
-            dat[dat.length] = _parseInt(mb*ti.x2 + md*ti.y2 + mf, 10);
+            dat[dat.length] = _parseInt(ma*ti.x1 + mc*ti.y1 + me, 10)+ " " +_parseInt(mb*ti.x1 + md*ti.y1 + mf, 10);
+            dat[dat.length] = _parseInt(ma*ti.x2 + mc*ti.y2 + me, 10)+ " " +_parseInt(mb*ti.x2 + md*ti.y2 + mf, 10);
           }
-          dat[dat.length] = _parseInt(ma*ti.x + mc*ti.y + me, 10);
-          dat[dat.length] = _parseInt(mb*ti.x + md*ti.y + mf, 10);
+          dat[dat.length] = _parseInt(ma*ti.x + mc*ti.y + me, 10)+ " " +_parseInt(mb*ti.x + md*ti.y + mf, 10);
         }
       }
       var vi = tar.ownerDocument.documentElement;
@@ -7152,7 +7159,10 @@
   Max : 7000,
   start : function() {
   if (NAIBU.Clip.length > 0) {
-    screen.updateInterval = 42; //24fpsとして描画処理
+    window.onscroll = function () {
+      screen.updateInterval = 0;
+      screen.updateInterval = 42; //24fpsとして描画処理
+    }
     NAIBU.stop = setInterval( (function() {
 /*      try{*/
         var ntc = NAIBU.Time.currentFrame++;
@@ -7191,6 +7201,11 @@
         }),
          1
       );
+    } else {
+      window.onscroll = function () {
+        screen.updateInterval = 0;
+               window.onscroll = NAIBU.emptyFunction;
+      }
     }
  }
 };
@@ -7276,7 +7291,7 @@
     var attrName = tar.getAttributeNS(null, "attributeName"), newAttr = tar.targetElement.attributes.getNamedItemNS(null, attrName);
     var ttr = tar.targetElement, tta = ttr[attrName];
     tar._frame = function() {
-      var d = tar.getSimpleDuration() * 0.8, n = tar._valueList.length - 1, tg = tar.getCurrentTime();
+      var d = tar.getSimpleDuration() * 0.8, n = tar._valueList.length - 2, tg = tar.getCurrentTime();
       if ((n !== -1) && (d !== 0) && (tg <= d)) {
         var ii = Math.floor((tg*n) / d);
       } else {
@@ -7527,7 +7542,7 @@
     }
     tar._frame = function() {
       var _tar = tar;
-      var d = _tar.getSimpleDuration() * 0.8, n = _tar._valueList.length - 1, tg = _tar.getCurrentTime();
+      var d = _tar.getSimpleDuration() * 0.8, n = _tar._valueList.length - 2, tg = _tar.getCurrentTime();
       if ((n !== -1) && (d !== 0) && (tg <= d)) {
         var ii = Math.floor((tg*n) / d);
       } else {
@@ -7681,6 +7696,7 @@
     if (evt.eventPhase === Event.BUBBLING_PHASE) {
       return; //強制終了させる
     }
+    evt.target.ownerDocument.documentElement._svgload_limited--
     evt.target.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:show", "embed");
   }, false);
   this.addEventListener("SVGLoad", function(evt){
@@ -8145,4 +8161,4 @@
 };
 NAIBU.addEvent("unload", unsvgtovml);
 //IEならばtrue
-NAIBU.isMSIE = /*@cc_on!@*/false;
\ No newline at end of file
+NAIBU.isMSIE = /*@cc_on!@*/false;


Property changes on: trunk/sie.js
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/04x/040/sie.js:812-829
/branches/04x/041/sie.js:891-923
/branches/04x/042/sie.js:927-967
/branches/04x/043/sie.js:969-1013
/branches/04x/044/sie.js:1015-1067
/branches/04x/045/sie.js:1069-1078
/branches/04x/046/sie.js:1080-1129
/branches/04x/047/sie.js:1131-1164
/branches/04x/048/sie.js:1166-1180
/branches/04x/sie.js:830-1181
/branches/05x/050/sie.js:1183-1201
/branches/05x/051/sie.js:1207-1323
/branches/05x/052/sie.js:1325-1352
/branches/05x/053/sie.js:1354-1400
/branches/05x/054/sie.js:1403-1422
/branches/05x/055/sie.js:1424-1454
/branches/05x/056/sie.js:1456-1491
/branches/05x/057/sie.js:1496-1523
/branches/05x/058/sie.js:1526-1590
/branches/05x/sie.js:1183-1594
/branches/06x/060/sie.js:1603-1850
/branches/06x/sie.js:1599-2242,2247-2253
   + /branches/04x/040/sie.js:812-829
/branches/04x/041/sie.js:891-923
/branches/04x/042/sie.js:927-967
/branches/04x/043/sie.js:969-1013
/branches/04x/044/sie.js:1015-1067
/branches/04x/045/sie.js:1069-1078
/branches/04x/046/sie.js:1080-1129
/branches/04x/047/sie.js:1131-1164
/branches/04x/048/sie.js:1166-1180
/branches/04x/sie.js:830-1181
/branches/05x/050/sie.js:1183-1201
/branches/05x/051/sie.js:1207-1323
/branches/05x/052/sie.js:1325-1352
/branches/05x/053/sie.js:1354-1400
/branches/05x/054/sie.js:1403-1422
/branches/05x/055/sie.js:1424-1454
/branches/05x/056/sie.js:1456-1491
/branches/05x/057/sie.js:1496-1523
/branches/05x/058/sie.js:1526-1590
/branches/05x/sie.js:1183-1594
/branches/06x/060/sie.js:1603-1850
/branches/06x/sie.js:1599-2317




Sie-announce メーリングリストの案内
Zurück zum Archiv-Index