{lang: 'de'}
Flashhilfe.de - Flash Community

Fuse Funktionen bzw. Befehle nacheinander starten??? Hilfe :( [Flash 10]

 


AntwortenRegistrieren Seite1  

Chris-O#1
Benutzerbild von Chris-O
Beiträge: 16
Wohnort: Aachen
Registriert: Dec 2009

19.05.2011, 20:11

Hallo zusammen,

ich habe eine Frage zur Fuse-Engine. Ich arbeite schon lange damit, aber habe jetzt ein Problem, dass ich nicht verstehe und zwar habe ich eine Liste an movieclips (project1, project2, project3, project4) die ich alle bewegen möchte. Das Ganze soll sich gekoppelt bewegen.
Das angeklickte Projekt soll auf eine vordefinierte Position fahren und alle anderen sollen sich damit zusammenhängend mitbewegen. Wenn die vordefinierte Position erreicht ist sollen sich die unteren Projekte (bis auf das angeklickte) zusammenhängend wieder nach unten bewegen und so einen Bereich für den Inhalt freimachen. Mein Problem besteht jetzt darin, dass die Bewegung nach oben funktioniert, aber sobald ich die funkton "close" automatisch starten möchte, passieren seltsame Dinge. Wenn ich die Funktion close durch das clicken auf einen button starte funktioniert alles. Ich habe fuse so verstanden, dass die functionen bzw. befehle immer nacheinander innerhalb einer fuse gestartet werden, aber irgendwie funktioniert das nicht :(

Hier mein Quellcode: (Die Funktion close wurde kurz auskommentiert)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//Setup and register with Zego Engine
import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup( Shortcuts, PennerEasing, Fuse );
//-----------------------------------------------------------

//Setup Variables

var projects_counter:Number = 0;
//trace("initial projects_counter = "+projects_counter);

var max:Number = 6;

//-----------------------------------------------------------

function move() //starts the movement of all projects, y:"movement target in absolute coords")
{
  for ( var s = 1; s < max; s++ )
        {
           var f:Fuse = new Fuse ();
           f.push ([
                   {target: _root["project"+(projects_counter+1-s)], y: 100-(s*35), time: 1+(1/((1/s)+1)), ease:"easeOutQuint"}, //move all elements with smaller index than the clicked one
                 {target: _root["project"+(projects_counter+s)], y: 100+((s-1)*35), time: 1+(1/((1/s)+1)), ease:"easeOutQuint"} //move all elements with higher index and including the clicked one
            ]);
     /*    f.push(
                 {func:open, scope:this} //starting "open"
            );*/

        f.start();
        //trace("(move) s = "+s);
      }
}

function open() //opens the menu for the content, y:"opening value (relative distance)"
{
  for ( var n = 1; n < max; n++ )
        {
           var f2:Fuse = new Fuse ();
           f2.push (
                   {target: _root["project"+(projects_counter + n+1)], y:"200", delay: 0.2, time: 2+(1/((1/n)+1)), ease:"easeOutBack"}
               );
         f2.start();
        //trace("(open) n = "+n);
      }
}

function close() //closes the menu
{
  for ( var r = 1; r < max; r++ )
        {
           var f3:Fuse = new Fuse ();
           f3.push (
                   {target: _root["project"+(projects_counter + r+1)], y:"-200", delay: 0.2, time: 2+(1/((1/r)+1)), ease:"easeInBack"}
               );
 
        f3.start();
        //trace("(close) r = "+r);
      }
}



_root.project1.onPress = function()
{
     projects_counter = 0;
     move();
}

_root.project2.onPress = function()
{
     open();
}

_root.project3.onPress = function()
{
     projects_counter = 2;
     move();
}

_root.project4.onPress = function()
{
     projects_counter = 3;
     move();
}


stop();




Wie kann ich die fuse-Funktionen nun nacheinander starten, also so dass die Funktion "close" erst gestartet wird, wenn die Funktion "move" fertig ist?? Hoffentlich kann mir jemand helfen, ich bin langsam am verzweifeln. :(

Meine fla habe ich wieder beigefügt.

Viele Grüße,
Christian

Angehängte Dateien:
Adobe Flash Quelldatei main menu test (open, close)2.fla95.00 KB
Geändert von Chris-O am 19.05.11 um 20:33 Uhr
Chris-O#2
Benutzerbild von Chris-O
Beiträge: 16
Wohnort: Aachen
Registriert: Dec 2009

Themenautor/in

31.05.2011, 19:21

Ich habe das Problem selbst endlich gelöst. Es ist zwar ein Workaround, aber für alle, die ähnliche Probleme haben könnt ihr folgendes versuchen:

Nach der
ActionScript:
1f.push
Klammer habe ich einfach ein delay eingefügt mit dem Wert der maximalen Dauer der time: 1+(1/((1/s)+1)) und danach die gewünschte Funktion gestartet.

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   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de