From: dhrname Date: Wed, 9 Nov 2016 13:23:42 +0000 (+0900) Subject: Remove the . object X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=5e50d691d801c64121bce98648b0c187519c2c16;p=sie%2Fsie.git Remove the . object --- diff --git a/org/w3c/dom/smil.js b/org/w3c/dom/smil.js index ac0e592..63aa055 100644 --- a/org/w3c/dom/smil.js +++ b/org/w3c/dom/smil.js @@ -2038,124 +2038,6 @@ base("$calcMode").up("$attribute").mix( { } } ); -/*$svgEventオブジェクトは、SVGEvent発火を監視するためのオブジェクト*/ -base("$frame").up("$svgEvent").mix( { - /*イベントのスケジュール記録*/ - first: null, - - /*タイムラインの最後のキャッシュ*/ - lastTimeLine: null, - - /*setTimeTable メソッドはスケジュールの記録をつけるためのメソッド*/ - setTimeTable: function () { - var timelines = this.timelines; - for (var i=0, obj = null;i= 1)*/ - count: n, - next: a.next - }; - a = a.next; - } - } - /*一度、スケジュールを作っておいたタイムラインは次回から処理しないようにする*/ - timeline.target = null; - } - timelines = obj = first = begin = target = simpleDur = activeTime = void 0; - }, - - $frame: base("$frame"), - - setFrame: function (num) { - var timelines = this.timelines, - lastTimeLine = timelines[timelines.length-1], - s = this.$frame.setFrame(num); - /*キャッシュのlastTimeLineプロパティを使って、再びスケジュールの計算をさせないようにする*/ - if (this.lastTimeLine !== lastTimeLine) { - this.lastTimeLine = lastTimeLine; - this.setTimeTable(); - } - /*スケジュールに記録しておいたものを実行して、イベントを発火 - * また、発火した場合は記録から取り除いて、次回から再び発火しないようにする*/ - var obj = this.first, - cobj = obj, - floor = Math.floor; - while(obj) { - var frame = obj.frame, - target = obj.target, - detail = 0; - if (frame <= num) { - /*IE11ではSVGEventsやDOMEventsを使うと問題が起きるため、MouseEventsで代用する*/ - if (obj.eventType === "repeat") { - /*detailは何回リピートしたか*/ - detail = obj.count; - } - /*ポインタの連結を変更することで、リストからobj を除去 - * 一度除去したものはイベントを発生させない*/ - cobj.next = obj.next; - if (this.first === obj) { - cobj = obj.next; - this.first = cobj; - } else { - cobj = obj; - } - var evt = target.ownerDocument.createEvent("MouseEvents"); - evt.initMouseEvent(obj.eventType+"Event" ,true, true, window, detail, 0, 0, 0, 0, false, false, false, false, 0, target); - target.dispatchEvent(evt); - } else { - /*next プロパティを書き換えるためのobj オブジェクトのキャッシュ*/ - cobj = obj; - } - obj = obj.next; - } - obj = num = first = frame = target = cobj = detail = void 0; - return s; - } -} ); - function getDocument() { var svg = document.getElementsByTagName("object"), @@ -2220,14 +2102,13 @@ if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Anim }; (function(frame) { var $frame = base("$frame"), - $f = $frame.$svgEvent, _cancel = cancel; /*cancelのエイリアス*/ _cancel.handle = requestAnimationFrame(step); function step() { if (!$frame.isPaused) { frame++; try { - $f.setFrame(frame); + $frame.setFrame(frame); } catch(e) { } _cancel.handle = requestAnimationFrame(step); @@ -2237,7 +2118,7 @@ if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Anim return cancel; } else { setInterval( (function(frame) { - var $f = base("$frame").$svgEvent; + var $f = base("$frame"); return function () { frame++; $f.setFrame(frame); diff --git a/tool/Spec/spec/SvgDomSpec.js b/tool/Spec/spec/SvgDomSpec.js index 10a8d27..b67e62d 100644 --- a/tool/Spec/spec/SvgDomSpec.js +++ b/tool/Spec/spec/SvgDomSpec.js @@ -2695,234 +2695,6 @@ describe("SMIL Animation Spec", function() { f(23, "#106.0C", "fi"); } ); } ); - describe("$frame.$svgEvent object", function() { - var frame = base("$frame").$svgEvent, - p, ele; - base("$frame").pauseAnimation(); - beforeEach( function() { - base("$frame").pauseAnimation(); - frame = frame.up().mix( {isResolved: true} ); - frame.first = null; - /*firstプロパティとtimelinesプロパティは$frameオブジェクトのフレーム進行に - * 影響を受けるため、新たに初期化しておく*/ - base("$frame").timelines = frame.timelines = []; - frame.lastTimeLine = null; - p = document.createElementNS("http://www.w3.org/2000/svg", "g"); - ele = document.createElementNS("http://www.w3.org/2000/svg", "animate"); - p.appendChild(ele); - } ); - /*境界条件を調べておく (limit value analysis)*/ - it("should be this for the value (limit value analysis)", function() { - base("$frame").pauseAnimation(); - frame.lastTimeLine = null; - expect(frame.lastTimeLine).toBeNull(); - expect(frame.first).toBeNull(); - frame.setTimeTable(); - expect(frame.first).toBeNull(); - frame.addLine( base("$frame").$begin.up().mix({ - isResolved: true, - timelines: [], - begin: 0, - activeTime: 0, - target: ele - }) ); - frame.setTimeTable(); - expect(frame.first).toEqual( - { frame: 0, - eventType: "begin", - target: ele, - - next: { frame: 0, - eventType: "end", - target: ele, - next: null - } - } - ); - } ); - /*同値分割をして、有効同値クラスを調べておく (Equivalence partitioning, the following is the valid partion)*/ - it("should be this for the value (the valid partion )", function() { - base("$frame").pauseAnimation(); - frame.addLine( base("$frame").$begin.up().mix({ - isResolved: true, - timelines: [], - begin: 0, - activeTime: 0, - target: ele - }) ); - frame.setTimeTable(); - frame.setTimeTable(); - expect(frame.first).toEqual( - { frame: 0, - eventType: "begin", - target: ele, - - next: { frame: 0, - eventType: "end", - target: ele, - next: null - } - } - ); - frame.setTimeTable(); - frame.setTimeTable(); - expect(frame.first).toEqual( - { frame: 0, - eventType: "begin", - target: ele, - - next: { frame: 0, - eventType: "end", - target: ele, - next: null - } - } - ); - - var isFiredBeginEvent = false; - ele.addEventListener("beginEvent", function(evt) { - isFiredBeginEvent = true; - expect(evt.target).toBe(ele); - } ); - ele.addEventListener("endEvent", function(evt) { - expect(evt.target).toBe(ele); - expect(isFiredBeginEvent).toBeTruthy(); - } ); - frame.setFrame(0); - expect(frame.first).toBeNull(); - frame.setFrame(0); - expect(frame.first).toBeNull(); - - frame.timelines = []; - frame.addLine( base("$frame").$begin.up().mix({ - isResolved: true, - timelines: [], - begin: 0, - activeTime: 10, - target: ele - }) ); - frame.setTimeTable(); - var a = { frame: 0, - eventType: "begin", - target: ele, - - next: { frame: 10, - eventType: "end", - target: ele, - next: null - } - }; - expect(frame.first).toEqual(a); - - frame.addLine( base("$frame").$begin.up().mix({ - isResolved: true, - timelines: [], - begin: 1, - simpleDuration: 9, - activeTime: 11, - target: ele - }) ); - frame.setTimeTable(); - a.next.next = { frame: 1, - eventType: "begin", - target: ele, - - next: { - frame: 10, - eventType: "repeat", - count: 1, - target: ele, - - next: { frame: 12, - eventType: "end", - target: ele, - next: null - } - } - }; - expect(frame.first).toEqual(a); - frame.setFrame(11); - expect(frame.first).toEqual( {frame: 12, - eventType: "end", - target: ele, - next: null - } ); - - frame.timelines = []; - frame.first = null; - frame.addLine( base("$frame").$begin.up().mix({ - isResolved: true, - timelines: [], - begin: 1, - simpleDuration: 4, - activeTime: 10, - target: ele - }) ); - frame.setTimeTable(); - a = { frame: 1, - eventType: "begin", - target: ele, - - next: { - frame: 5, - eventType: "repeat", - count: 1, - target: ele, - - next: { - frame: 9, - eventType: "repeat", - count: 2, - target: ele, - - next: { frame: 11, - eventType: "end", - target: ele, - next: null - } - } - } - }; - expect(frame.first).toEqual(a); - frame.setFrame(0); - expect(frame.first).toEqual(a); - frame.setFrame(1); - a = a.next; - expect(frame.first).toEqual(a); - frame.setFrame(5); - expect(frame.first).toEqual(a.next); - - ele.addEventListener("repeatEvent", function(evt) { - expect(evt.target).toBe(ele); - } ); - frame.timelines = []; - frame.first = null; - frame.addLine( base("$frame").$begin.up().mix({ - isResolved: true, - timelines: [], - begin: 1, - simpleDuration: 4, - activeTime: 15, - target: ele - }) ); - frame.setFrame(9); - expect(frame.first).toEqual({ - frame: 13, - eventType: "repeat", - count: 3, - target: ele, - - next: { frame: 16, - eventType: "end", - target: ele, - next: null - } - } ); - } ); - afterEach( function() { - base("$frame").startAnimation(); - } ); - } ); describe("A $animateTransformElement object", function() { describe("An init method", function() { var $animate, ele, frame, p;