button code added to code from first post...
Code:stop(); var picSpace = 10; var minDist = 8; var picArray = new Array(); var picTotal = 0; var holder = this.createEmptyMovieClip("holder", 0); holder._y = 250; var btnsX = 0; var btnsY = 0; function addButton(num) { // movie clip in library with export linage of "btnMC", has dynamic text field instance 'tag' var btn = attachMovie("btnMC", num, this.getNextHighestDepth(), {_x:btnsX, _y:btnsY}); btn.tag.text = num+1; btnsX += btn._width+2; btn.onPress = doBtnPress; } function doBtnPress() { var valX = (0-picArray[Number(this._name)][1].x1); var dist = valX-holder._x; dist = Math.abs(dist); var d = (dist>60) ? (dist>180) ? 20 : 40 : 80; var tc = 0; var begX = holder._x; var endX = valX-holder._x holder.onEnterFrame = function() { var t = ++tc; this._x = endX*((t=t/d---1)*t*t+1)+begX; if (tc == d) { delete this.onEnterFrame; } }; } function doLoadInit(mc) { var xOffset = 0; for (i=0; i<picTotal; i++) { holder[i]._x = xOffset; picArray[i][1] = {x1:holder[i]._x, x2:holder[i]._x+holder[i]._width}; xOffset += holder[i]._width+picSpace; } mc.onPress = doPress; } function loadXML(loaded) { if (loaded) { var xmlNode = this.firstChild; picTotal = xmlNode.childNodes.length; trace(picTotal); for (i=0; i<picTotal; i++) { var picInfo = [xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue]; var p = holder.createEmptyMovieClip(i, i); my_mcl.loadClip(picInfo[0],p); picArray.push(picInfo); addButton(i); } } else { content = "file not loaded!"; } delete xmlNode; } xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; xmlData.load("dragthrow.xml"); var my_mcl = new MovieClipLoader(); var myListener = new Object(); myListener.onLoadInit = doLoadInit; my_mcl.addListener(myListener); // function doPress() { var idex = Number(this._name); var anchorX = holder._xmouse; var pressX = _root._xmouse; holder.onEnterFrame = function() { this._x = _root._xmouse-anchorX; }; holder.onMouseUp = function() { var dist = _root._xmouse-pressX; var dir = (dist>0) ? 0 : 1; dist = Math.abs(dist); if (dist>minDist) { var endX = ((dir == 0) ? Stage.width-picArray[idex][1].x2 : 0-picArray[idex][1].x1)-this._x; if (dir == 0 && endX<0 && idex>0) { endX = (Stage.width-picArray[idex-1][1].x2)-this._x; } if (dir == 1 && endX>0 && idex<picTotal-1) { endX = (0-picArray[idex+1][1].x1)-this._x; } var begX = this._x; var d = (dist>60) ? (dist>180) ? 20 : 40 : 80; var tc = 0; this.onEnterFrame = function() { var t = ++tc; this._x = endX*((t=t/d---1)*t*t+1)+begX; if (tc == d) { delete this.onEnterFrame; } }; } else { trace("selected: "+idex); delete this.onEnterFrame; } delete this.onMouseUp; }; }




Reply With Quote