svnno****@sourc*****
svnno****@sourc*****
2011年 6月 8日 (水) 21:09:18 JST
Revision: 2748 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2748 Author: dhrname Date: 2011-06-08 21:09:18 +0900 (Wed, 08 Jun 2011) Log Message: ----------- 0.79モジュールを結合 (unite modules to sie.js) Modified Paths: -------------- branches/07x/sie.js Modified: branches/07x/sie.js =================================================================== --- branches/07x/sie.js 2011-06-08 12:05:10 UTC (rev 2747) +++ branches/07x/sie.js 2011-06-08 12:09:18 UTC (rev 2748) @@ -7311,7 +7311,7 @@ var ntc = this.ownerDocument.documentElement.getCurrentTime(); this._end = offset + ntc; }; -SVGAnimationElement.prototype._eventRegExp = /(mouse|activ|clic)[a-z]+/; +SVGAnimationElement.prototype._eventRegExp = /(mouse|activ|clic|begi|en)[a-z]+/; SVGAnimationElement.prototype._timeRegExp = /[\-\d\.]+(h|min|s|ms)?/; SVGAnimationElement.prototype._unit = { "h" : 2880000, @@ -7319,7 +7319,8 @@ "s" : 800, "ms" : 0.8 }; -/*どれだけズレの時間があるかを計測するメソッド +/*_getOffsetメソッド + * どれだけズレの時間があるかを計測するメソッド *tに数値が使われていないときは0を返す *これはSMILアニメーションモジュールの以下の記述にあるように、値のデフォルトが0であることに起因する *http://www.w3.org/TR/2001/REC-smil20-20010807/smil-timing.html#Timing-Ex:0DurDiscreteMedia @@ -7338,10 +7339,13 @@ n = t = null; return offset; }; +/*_eventSyncメソッド + *イベントがある場合とない場合とで、別々の処理に分けるメソッド + */ SVGAnimationElement.prototype._eventSync = function(/*string*/ t, /*function*/ f, /*string*/ methodName) { var offset = this._getOffset(t); this._begin = NAIBU.Time.Max; - if ( /(mouse|activ|click)/.test(t) ) { //イベントがある場合 + if ( /(mouse|activ|click|begin|end)/.test(t) ) { //イベントがある場合 var tar; if ( /([^;]+)\.\D/.test(t) ) { tar = this.ownerDocument.getElementById(RegExp.$1); @@ -7477,7 +7481,7 @@ */ var vi = ttr.cloneNode(false); if (!tar._values[0]) { //to属性か、by属性が設定されている場合 - var ttrs = ttr.ownerDocument.defaultView.getCoumputedStyle(ttr, ""); + var ttrs = ttr.ownerDocument.defaultView.getComputedStyle(ttr, ""); tar._values[0] = ttr.getAttributeNS(null, attrName) || ttrs.getPropertyValue(attrName); if (!tar._values[1] && tar._values[2]) { //by属性のみが設定されている場合 var v2 = parseFloat(tar._values[0]) + parseFloat(tar._values[2]), tanni = tar._values[0].match(/\D+/) || [""]; @@ -7636,9 +7640,14 @@ this.addEventListener("beginEvent", function(evt) { var tar = evt.target; if (tar.targetElement) { - var attrName = tar.getAttributeNS(null, "attributeName"), newAttr = tar.targetElement.attributes.getNamedItemNS(null, attrName); - var tta = tar.targetElement[attrName]; - if (!!tta) { + var attrName = tar.getAttributeNS(null, "attributeName"), + newAttr = tar.targetElement.attributes.getNamedItemNS(null, attrName), + tta = tar.targetElement[attrName]; + if (!!CSS2Properties[attrName] || attrName.indexOf("-") > -1) { //スタイルシートのプロパティならば + var style = tar.ownerDocument.getOverrideStyle(tar.targetElement, ""); + style.setProperty(attrName, tar.getAttributeNS(null, "to"), null); + style = null; + } else if (!!tta) { var base = tta.baseVal; if (base instanceof SVGLength) { tta.baseVal = tar.ownerDocument.documentElement.createSVGLength(); @@ -7660,16 +7669,13 @@ */ tta.animVal = tta.baseVal; tta.baseVal = base; - } else { - var style = tar.ownerDocument.getOverrideStyle(tar.targetElement, ""); - style.setProperty(attrName, tar.getAttributeNS(null, "to"), null); - style = null; } } evt = tar = attrName = null; }, false); this.addEventListener("endEvent", function(evt) { - var tar = evt.target, fill = tar.getAttributeNS(null, "fill"); + var tar = evt.target, + fill = tar.getAttributeNS(null, "fill"); if (!fill || (fill === "remove")) { var attrName = tar.getAttributeNS(null, "attributeName"), style = tar.ownerDocument.defaultView.getComputedStyle(tar.targetElement, ""); tar.targetElement.style.setProperty(attrName, style.getPropertyValue(attrName), null); @@ -7695,7 +7701,8 @@ if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; } - var tar = evt.target, name = evt.attrName; + var tar = evt.target, + name = evt.attrName; if (name === "path") { var d = tar.ownerDocument.createElementNS("http://www.w3.org/2000/svg", "path"); d.setAttributeNS(null, "d", evt.newValue); @@ -7715,7 +7722,7 @@ trans.animVal.appendItem(tar.ownerDocument.documentElement.createSVGTransform()); tar._frame = function() { var _tar = tar, tpn = _tar._path; - if (!!tpn) { + if (!!tpn) { //path属性が指定されていた場合、tpnは属性値となる var tgsd = _tar.getSimpleDuration(); if (tgsd === 0) { tgsd = null; @@ -7732,6 +7739,7 @@ _tar.targetElement.dispatchEvent(evtt); trans.baseVal = base; evtt = base = trans = st = tgsd = p = null; + } else { } } evt = trans = null;