2010-01-20 2 views
1

La mise à l'échelle des films dans After Effects est facile, mais comment le ferais-je dans Flash? Des équations ou des scripts ActionScript seraient appréciés.Films de mise à l'échelle du temps en Flash

Exemple

60 secondes de mon film. Je veux jouer le film entier en 30 secondes. Je veux jouer le film entier en 120 secondes. Comment redimensionner mon film à l'aide d'ActionScript 3.0. Mes films auront probablement tous la même longueur et la même fréquence d'images, si cela fait une différence.

Exemple

Preloaders ont des éléments effectués par le pourcentage et l'échelle. Je veux faire ceci aux clips, mais avoir un total défini.

ex.

progressbar_mc.scaleX = chargé/total;

//Grapefruits example revised 
//No errors at runtime, nothing happens? 
//instance of "dude" 
var _time_scale:Number = .25; 
var _frames_elapsed:int = 0; 
var dude:MovieClip; 

function handleEnterFrame(e:Event):void { 
_frames_elapsed++; 
dude.gotoAndStop(Math.round(dude.totalFrames 1 _frames_elapsed 2 _time_scale)); 
} 

Répondre

2

Il est assez simple, ce morceau de code va jouer un MovieClip à la vitesse du trimestre:

package { 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.events.Event; 

    public class Main extends Sprite { 

     private var _time_scale:Number = .25; 
     private var _frames_elapsed:int = 0; 
     private var _clip:MovieClip; 

     public function Main():void { 
      _clip = new SomeClip; 
      addEventListener(Event.ENTER_FRAME, handleEnterFrame); 
     } 

     private function handleEnterFrame(e:Event):void { 
      _frames_elapsed++; 
      // we multiply the "real" time with our timescale to get the scaled time 
      // we also need to make sure we give an integer as a parameter, so we use Math.round() to round the value off 
      _clip.gotoAndStop(Math.round(_clip.totalFrames * _frames_elapsed * _time_scale)); 
     } 

    } 

} 

Cette méthode a une mise en garde importante, il n'y aura pas interpoler entre cadres. Cela signifie que 10 images d'animation étendues sur 10s seront effectivement 1fps. Il passera également les trames si accéléré, mais c'est moins un problème que je suppose.

+0

Dieu m'aide, j'aime un bon hack FLVPlayback. +1 – iandisme

+0

C'est ce que je cherchais. Merci. –

0

Je ne pense pas que ce que vous décrivez est possible dans AS3 sans un hack comme grapefrukt vous a donné. Il y a un third-party app qui fera cela pour les vidéos Flash que vous regardez, mais vous paierez pour le privilège.

+0

Quand j'attache le script et l'exécute, j'obtiens une erreur ??? 1151: Un conflit existe avec la définition _clip dans l'espace de noms interne. –

+0

pas d'erreur maintenant, mais ne fait rien? Voir mise à jour en question. –

Questions connexes