2011-08-18 35 views
0

試圖做的ActionScript 3的簡單過渡顏色過渡,而我得到錯誤用簡單的翻轉顏色過渡,請幫助

ReferenceError: Error #1069: Property transform not found on 

fl.transitions.Tween並沒有默認值。 在dell_fla :: MainTimeline/tweenToFinal() 在flash.events::EventDispatcher/dispatchEventFunction() 在flash.events::EventDispatcher/dispatchEvent() 在事件|常量fl.transitions ::吐溫/ setPosition兩種() 在f1。過渡::吐溫/更新() 在事件|常量fl.transitions ::吐溫/設定時間() 在事件|常量fl.transitions ::吐溫/ nextFrame() 在事件|常量fl.transitions ::吐溫/的onEnterFrame()

我的腳本

import fl.transitions.Tween; 
    import fl.transitions.TweenEvent; 
    import fl.transitions.easing.Strong; 
    import fl.motion.Color; 
    import flash.events.Event; 
    import flash.geom.ColorTransform; 
    import flash.display.DisplayObject; 

    var startColor:uint=0xCCFF00; 
    var finalColor:uint=0x003399; 
    var colorInfo:ColorTransform; 
    // Colour transition for country mouseover 
    function initColorTransform(mc:MovieClip):void 
    { 
     colorInfo = mc.transform.colorTransform; 
     var myTween:Tween=new Tween(mc,'alpha',Strong.easeOut,0,1,1,true); 
     myTween.addEventListener(TweenEvent.MOTION_CHANGE,tweenToFinal); 
    } 
    function tweenToFinal(e:TweenEvent):void 
    { 
     colorInfo.color=Color.interpolateColor(startColor,finalColor,e.position); 
     e.target.transform.colorTransform=colorInfo; 
    } 

    function countryMouseOver(e:Event):void{ 
     trace('countryMouseOver '+e.target); 
     var countryMc = e.target; 
     var localPos:Point = new Point(countryMc.x,countryMc.y); 
     var globalPos:Point = countryMc.localToGlobal(localPos); 
     trace('local pos: '+localPos+ ' global pos:'+globalPos); 
     initColorTransform(countryMc); 
    } 

回答

1

看看TweenEvent docse.target不是你的影片剪輯,而是補間本身。使用Tween(e.target).obj獲取您的動畫片段。

function tweenToFinal(e:TweenEvent):void 
    { 
     colorInfo.color=Color.interpolateColor(startColor,finalColor,e.position); 
     MovieClip(Tween(e.target).obj).transform.colorTransform=colorInfo; 
    } 
+0

非常感謝!自從我使用Flash以來,它已經有一段時間了,AS3絕對是AS 1和2的一大跳躍! – htmlr