2012-04-01 156 views
0

我試圖將文本從1縮放到5,這是一種縮放類型的外觀。我使用下面的代碼:拍攝快照,縮放並重復拍攝

<s:Scale target="myLabel" autoCenterTransform="true" 
     duration="2000" 
     scaleYFrom="1" scaleYTo="5" scaleXFrom="1" scaleXTo="5" 
     > 

該文本縮放非常可怕。所以我的目標是以大字體對文本標籤進行快照,將其添加到顯示列表中,將縮放比例設置爲5,然後將縮放比例設置爲1。之後,我必須再次設置文本並執行它一遍又一遍。

這是一個Flex應用程序,這就是我的問題來了。我不知道如何拍攝快照,然後將其添加到(組?),然後如何刪除它並重新開始?任何這方面的任何意見,將不勝感激。

回答

2

這裏是一個非常簡單的做法,動畫fontsize的風格,而不是動畫縮放屬性:

取決於你在做什麼,這可能無法正常使用B/C它樹立了一個新的風格如此頻繁。另外,如果您慢慢播放此動畫,它看起來就像是個別字符「擺動」(它們移動或抖動一點點)。

我會發布一些關於拍攝快照和縮放,明年......

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       minWidth="955" minHeight="600"> 
    <fx:Declarations> 
     <s:Animate id="scaler" target="{scaledText}" > 
      <s:MotionPath property="fontSize"> 
       <s:Keyframe time="0" value="12"/> 
       <s:Keyframe time="1500" value="48"/> 
      </s:MotionPath> 
     </s:Animate> 
    </fx:Declarations> 

    <fx:Script> 
     <![CDATA[ 

      protected function onLabelClick():void 
      { 
       scaler.play(); 
      } 

     ]]> 
    </fx:Script> 

    <s:Label id="scaledText" text="this is some text" click="onLabelClick()" /> 
</s:Application> 

這裏是採用文字的快照的方法。這與您的原始解決方案具有相同的問題,縮放文本非常鋸齒。但是這確實展示瞭如何拍攝一些東西並在另一個Flex對象中使用快照:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       minWidth="955" minHeight="600"> 
    <fx:Declarations> 
     <s:Scale id="scaler" target="{drawingTarget}" scaleXFrom="1" scaleXTo="5" scaleYFrom="1" scaleYTo="5"/> 
    </fx:Declarations> 

    <fx:Script> 
     <![CDATA[ 
      import spark.core.SpriteVisualElement; 

      protected function onLabelClick():void 
      { 
       var data:BitmapData = new BitmapData(200,200,true, 0xFFFFFF); 
       data.draw(scaledText); 

       var g:Graphics = drawingTarget.graphics; 
       g.beginBitmapFill(data); 
       g.drawRect(0,0, 200,200); 
       g.endFill(); 
      } 

      protected function onBitmapClick(event:MouseEvent):void 
      { 
       scaler.play(); 
      } 

     ]]> 
    </fx:Script> 

    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 

    <s:Label id="scaledText" text="this is some text" click="onLabelClick()" /> 
    <s:SpriteVisualElement id="drawingTarget" width="200" height="200" click="onBitmapClick(event)"/> 
</s:Application> 
+0

太好了。這正是我正在尋找的。 「...個人角色」搖擺「(他們移動或晃動一點點)」。是這個職位的原因。 – 2012-04-03 14:12:25