2011-06-23 49 views
0

我有以下的设置加载:AS2 TweenLite的:吐温到帧

import com.greensock.*; 
import com.greensock.easing.*; 
import com.greensock.plugins.*; 
TweenPlugin.activate([FramePlugin]); 
OverwriteManager.init(OverwriteManager.AUTO); 

和正在使用以下代码来吐温一个MC到框架20

TweenLite.to(circle, 1, {frame:20, ease:Elastic.easeOut}); 

问题是没有任何反应,圆是一个包含我的MC和跟踪罚款的变量。的

trace(circle); = _level0.circle 

输出任何人都可以看到这是为什么不工作? MC包含一个形状。

编辑:

好了,所以我一直在使用相同的MC一个新的FLA测试,它是不是MC是它与我的代码阻止它的一些其他部分做的问题。

这是我的整个代码...任何人都可以看到任何会阻止补间框架工作?如果我删除for (MovieClip in txts) { txts[MovieClip]._alpha = 0; }并将补间放在它上面,它可以工作,但只要它再次翻转,它就不会。

整个代码:

import com.greensock.*; 
import com.greensock.easing.*; 
import com.greensock.plugins.*; 
TweenPlugin.activate([ColorTransformPlugin, FramePlugin]); 
OverwriteManager.init(OverwriteManager.AUTO); 
var angle:Number = 0; 
var originX:Number = Stage.width/2; 
var originY:Number = Stage.height/2; 
var radiusX:Number = 320.5; 
var radiusY:Number = 247.5; 
var steps:Number = 360; 
var speed:Number = 0.4/steps; 
var circle:MovieClip = this.circle; 
var circleTxt:MovieClip = this.circle.titleTxt; 
var squareHeight:Number = 340.2; 
var buttons:Array = new Array(this.faith, this.social, this.ability, this.age, this.orientation, this.ethnicity, this.sex); 
var txts:Array = new Array("faithTxt", "socialTxt", "abilityTxt", "ageTxt", "orientationTxt", "ethnicityTxt", "sexTxt"); 
var tweens:Array = new Array(); 
for (MovieClip in txts) { 
    txts[MovieClip]._alpha = 0; 
} 
for (i=0; i<buttons.length; i++) { 
    buttons[i].onRollOver = function() { 
     var current:MovieClip = this; 
     circle.onEnterFrame = function() { 
      if (this._currentframe == 20) { 
       delete this.onEnterFrame; 
       delete circleTxt.onEnterFrame; 
       current.txt._alpha = 100; 
      } 
     }; 
     noScale(circleTxt); 
     txtName = current._name+"Txt"; 
     current.txt = this._parent.attachMovie(txtName, txtName, this._parent.getNextHighestDepth()); 
     current.txt._alpha = 0; 
     circle.txtHeight = circle.active.txt._height/2+40; 
     var oppX:Number = Stage.width-this._x; 
     var oppY:Number = Stage.height-this._y; 
     if (oppX-227.8<=20) { 
      var difference:Number = Math.abs(20-(oppX-227.8)); 
      oppX += difference; 
     } else if (oppX+227.8>=Stage.width-20) { 
      var difference:Number = Math.abs(780-(oppX+227.8)); 
      oppX -= difference; 
     } 
     if (oppY-172.1<=20) { 
      var difference:Number = Math.abs(20-(oppY-172.1)); 
      oppY += difference; 
     } else if (oppY+172.1>=580) { 
      var difference:Number = Math.abs(580-(oppY+172.1)); 
      oppY -= difference; 
     } 
     circle.active.txt._x = oppX; 
     circle.active.txt._y = oppY; 
     TweenLite.to(circle,1,{frame:20}); 
     TweenLite.to(circle,0.5,{_height:circle.txtHeight}); 
     TweenLite.to(circle,1,{_x:oppX, _y:oppY, ease:Quint.easeInOut}); 
     TweenLite.to(circleTxt,1,{_alpha:0}); 
     TweenLite.to(this,0.5,{colorTransform:{tint:0x99ff00, tintAmount:0.5}}); 
     for (MovieClip in buttons) { 
      delete buttons[MovieClip].onEnterFrame; 
      if (buttons[MovieClip] != this) { 
       TweenLite.to(buttons[MovieClip],0.5,{colorTransform:{tint:0xffffff, tintAmount:0.9}}); 
       TweenLite.to(buttons[MovieClip]._line,0.5,{colorTransform:{tint:0xffffff, tintAmount:0.9}}); 
      } 
     } 
    }; 
    buttons[i].onRollOut = function() { 
     removeMovieClip(this.txt); 
     circle.onEnterFrame = function() { 
      if (this._currentframe == 1) { 
       delete this.onEnterFrame; 
       delete circleTxt.onEnterFrame; 
      } 
     }; 
     noScale(circleTxt); 
     TweenLite.to(circle,0.2,{_height:173}); 
     TweenLite.to(circle,0.5,{_x:Stage.width/2, _y:Stage.height/2}); 
     TweenLite.to(circleTxt,1,{_alpha:100}); 
     for (MovieClip in buttons) { 
      buttons[MovieClip].onEnterFrame = function() { 
       moveButtons(this); 
       controlButtons(this); 
      }; 
      TweenLite.to(buttons[MovieClip],0.5,{colorTransform:{tint:null, tintAmount:0}}); 
      TweenLite.to(buttons[MovieClip]._line,0.5,{colorTransform:{tint:null, tintAmount:0}}); 
     } 
    }; 
    buttons[i].onEnterFrame = function() { 
     moveButtons(this); 
     controlButtons(this); 
    }; 
    buttons[i]._order = (360/buttons.length)*1000+(i+1); 
    buttons[i]._linedepth = buttons[i].getDepth()-1000; 
} 
function noScale(mc) { 
    mc.onEnterFrame = function() { 
     this._yscale = 10000/this._parent._yscale; 
    }; 
} 
function moveButtons(e) { 
    var lineName:String = new String(e._name+"line"); 
    var lineMC:MovieClip = createEmptyMovieClip(lineName, e._linedepth); 
    with (lineMC) { 
     beginFill(); 
     lineStyle(2,0x000000,100); 
     moveTo(e._x,e._y); 
     lineTo(Stage.width/2,Stage.height/2); 
     endFill(); 
    } 
    e.rotation = Math.atan2(e._y-Stage.height/2, e._x-Stage.width/2); 
    e._line.dist = Math.sqrt(Math.abs(e._x-Stage.width/2)^2+Math.abs(e._y-Stage.height/2)^2); 
    e._line = lineMC; 
    e._anglePhase = (angle+e._order)/Math.PI*2.8; 
    e._x = originX+Math.sin(e._anglePhase)*radiusX; 
    e._y = originY+Math.cos(e._anglePhase)*radiusY; 

} 
function controlButtons(e) { 
    angle += speed; 
    if (angle>=360) { 
     angle -= 360; 
    } 
} 

回答

0

嘿解决的,由于某种原因,它不会在你的代码喜欢for (MovieClip in Array){}任何地方,所以如果我取代,对于for (a in Array){}它似乎工作。奇。