Flashhilfe.de - Flash Community

Flv Film Geschwindigkeit var abhängig machen [Flash 10]

 


AntwortenRegistrieren Seite1  

redregar#1
Benutzerbild von redregar
Beiträge: 4
Registriert: Jan 2010

22.01.2010, 19:19

Also ich hab folgendes Problem mein Hauptziel ist es die Geschwindigkeit eines Films abhängig zu machen von einen Tasten Druck(je öfter man die taste drückt desto schneller soll es abspielen). Leider schaff ich es nicht mal das sich die Geschwindigkeit so beim mc verändert(importierter flv). HIer mein bisheriger Code :

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var min:Number = 50;
var max:Number = 230;
var maxSpeed:Number = 50;
var geschwindigkeit:Number = 10;
var g:Number = 10;
var intervalId:Number;
_root.onEnterFrame = function(){

if(Key.isDown(49))

{        trace("1");
  g+=5;
  geschwindigkeit = ( 1 - (g - min ) / ( max - min )) * maxSpeed; // hier wird die
  clearInterval(intervalId);
  intervalId = setInterval(speed, geschwindigkeit );
trace(geschwindigkeit);

if(Key.isDown(50))

{        trace("2");
  g-=5;
  geschwindigkeit = ( 1 - ( g- min ) / ( max - min )) * maxSpeed; // hier wird die  // hier wird die geschwindigkeit prozentual zur position des reglers berechnet
  clearInterval(intervalId);
  intervalId = setInterval(speed, geschwindigkeit );
trace(geschwindigkeit);
}
}


speed = function(){
    tanz_mc.nextFrame();
    if(tanz_mc._currentframe == tanz_mc._totalframes){
        tanz_mc.gotoAndStop(1);
    };
    updateAfterEvent();
}
intervalId = setInterval(speed, geschwindigkeit );
setInterval(speed, geschwindigkeit);

dieser ist angelehnt an den Forumbeitrag (MC Geschwindigkeit mit Schieberegler [Flash 8] ). Wäre für jede Hilfe sehr dankbar
Schlagwörter: AS2, Control, movie, Movieclip, Speed
Geändert von redregar am 22.01.10 um 21:17 Uhr
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

24.01.2010, 21:36

Hallo,

also erstmal die _root.onenterFrameMethode um den Tastendruck abzufangen hat nichts mehr in Flash-Datein zu suchen - dafür gibt es den Keylistener.
ActionScript:
1
2
3
4
5
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
  // hier die if (Key.getCode() == 49) -Funktion einfügen
};
Key.addListener(keyListener);

hat den gleichen effekt - spart nur ressourcen ;)

zu deinem probelm:
Wenn ich es richtig verstanden habe, ist dein Video in die Zeitleiste eingebettet.. Die zeitleiste wird dabei mit der Geschwindigkeit wiedergegeben, die du unter "einstellungen" angegeben hast (Standard ist 12bps).
Diese Einstellung kann nicht geändert werden.
was du aber machen kannst: die Geschwindigkeit auf die maximale setzte und dann verlangsamt von bild zu Bild springen.
Also mit deiner Interval-Funktion und dann "gotoAndStop(BILDNUMMER)" . Dann würde er deinen Film verlangsamt abspielen - aber ob das ratsam ist, ist wiederrum eine andere Frage..
Flash ist für so eine Situation nicht ausgelegt Videos verlangsamt oder beschleinig wieder zugeben
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
redregar#3
Benutzerbild von redregar
Beiträge: 4
Registriert: Jan 2010

Themenautor/in

25.01.2010, 12:36

Erstmal danke für die Antwort. An liebsten würd ich ja auch glauben das das Flash nicht dafür ausgelegt ist da ich ja selber schon seit über 3 Wochen daran rumprobier. ABer es gibt ein kommerzielles Bespiel was funktioniert. http://www.flashloaded.com/flashcomponents/speedcontroller/ . Wie man sich aber denken kann werden die ihren Code nicht zur Verfügung stellen. Es zeigt aber das es irgendwie gehen muss...(und das wurmt mich)...
lg red
MichaHerrmann#4
Benutzerbild von MichaHerrmann
Beiträge: 21
Registriert: Nov 2008

25.01.2010, 12:51

Ich vermute, dass es für die Anzeige der Einzelbilder eine Funktion gibt, zB.

showFrame = function();

und dann wird die mir setInterval() aufgerufen.

Die Geschwindigkeit kann dann durch den zweiten Parameter von setInterval() eingestellt werden:

speed = regler._x;
freq = 110 - speed;
setInterval(show,freq);

Micha
redregar#5
Benutzerbild von redregar
Beiträge: 4
Registriert: Jan 2010

Themenautor/in

25.01.2010, 13:33

@vindel ist der Listener nicht nur für AS3?

@MichaHermann
ja damit hab ich auch schn rumprobiert hier ein Code wo das Video zwar schneller wird aber nicht wieder langsamer:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var fps:Number = 25;
var speed:Number = 100;
var intervalID: Number = setInterval (this, "advanceFrame", speed/fps);
stop ();

function advanceFrame () {
clearInterval (intervalID);
gotoAndStop (_currentframe +1);
play ();
}


_root.onEnterFrame = function(){

if(Key.isDown(49))

{        trace("1");
          this.play();

}   
if(Key.isDown(50))

{        trace("2"); 
this.stop();

if(Key.isDown(51))

{        trace("3"); 
trace(speed/fps);
speed=speed+2;
trace(advanceFrame);
intervalID = setInterval (this, "advanceFrame", speed/fps);

if(Key.isDown(52))

{        trace("4");
trace(speed/fps);
trace(advanceFrame);
speed=speed-2;
intervalID = setInterval (this, "advanceFrame", speed/fps);

}


3 und 4  sind zur Geschwindigkeitsregelung
redregar#6
Benutzerbild von redregar
Beiträge: 4
Registriert: Jan 2010

Themenautor/in

26.01.2010, 20:49

So hat sich erledigt hier ich hab jetzt die Schnauze voll von Flash hab das ganze jetzt in Processing umgesetzt(auf Javabasis www.processing.org) hat mich keine halbe Stunde gekostet, Wenn jemand intrtesse am Code hat kann er mich anschreiben. Flash kann mir erstmnal gestohlen bleiben !. MFG red

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de