svnno****@sourc*****
svnno****@sourc*****
2009年 11月 27日 (金) 23:09:13 JST
Revision: 1440 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1440 Author: dhrname Date: 2009-11-27 23:09:13 +0900 (Fri, 27 Nov 2009) Log Message: ----------- beginElementメソッドの実装 Modified Paths: -------------- branches/05x/055/sie.js Modified: branches/05x/055/sie.js =================================================================== --- branches/05x/055/sie.js 2009-11-26 15:00:28 UTC (rev 1439) +++ branches/05x/055/sie.js 2009-11-27 14:09:13 UTC (rev 1440) @@ -2218,25 +2218,39 @@ }; STSetElement.prototype.set = function (w,h){ this.to = this.tar.getAttribute("to"); - var timing = [this.begin, this.dur, this.end], offset = []; - for (var i=0;i<3;++i) { - var ti = timing[i]; - if (ti) { - var n = parseFloat(ti.match(/[\-\d\.]+(h|min|s|ms)/)); - offset[i] = n * this._unit[RegExp.$1]; - if ( /(mouse|activ)/.test(ti) ) { //イベントがある場合 + var offset; + try { + var n = parseFloat(this.begin.match(/[\-\d\.]+(h|min|s|ms)/)); + offset = (n !== void 0) ? n * this._unit[RegExp.$1] : 0; + if ( /(mouse|activ)/.test(this.begin) ) { //イベントがある場合 + var tar; + if ( /\.\D/.test(this.begin) ) { + tar = document.getElementById( this.begin.substring(0, this.begin.indexOf(".")) ); + } else { + tar = this.tarrget.tar; + } + var tea = this.beginElementAt; + tar.addEvent( "on" + this.begin.match(/(mouse|activ)[a-z]+/i), (function(){tea(offset)}) ); + } else { + this.beginElementAt(offset); + } + if (!this.dur) { + var n = parseFloat(this.end.match(/[\-\d\.]+(h|min|s|ms)/)); + offset = (n !== void 0) ? n * this._unit[RegExp.$1] : 0; + if ( /(mouse|activ)/.test(this.end) ) { //イベントがある場合 var tar; - if ( /\.\D/.test(ti) { - tar = document.getElementById(ti.substring(0, ti.indexOf(".")); + if ( /\.\D/.test(this.end) ) { + tar = document.getElementById( this.end.substring(0, this.end.indexOf(".")) ); } else { tar = this.tarrget.tar; } - tar.addEvent( ti.match(/(mouse|activ)[a-z]+/i), (function(){}) ); + var tea = this.endElementAt; + tar.addEvent( "on" + this.end.match(/(mouse|activ)[a-z]+/i), (function(){tea(offset)}) ); + } else { + this.endElementAt(offset); } - } else { - offset[i] = 0; } - } + } catch(e) {stlog.add(e, 2239);} }; STSetElement.prototype._unit = { "h" : 1000, @@ -2278,6 +2292,7 @@ } target.set(this.w, this.h); this.base = base; + return; }; STSetElement.prototype.endElement = function (){ if (this.fill) { @@ -2287,6 +2302,7 @@ } this.to = this.base; this.beginElement(); + return; }; STSetElement.prototype.beginElementAt = function (offset){ this._begin = offset * 0.8 * 0.024; //フレーム数に変換(軽量化のために、1s = 800msで計算)