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

Tween springt am Ande bei dynamischer Zeitangabe [Flash 9]

 


AntwortenRegistrieren Seite1  

SNUFFSEED#1
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

08.08.2011, 12:39

Hallo,

habe hier ein mir völlig unbegreifliches Problem. Will eine Seite mit pseudo 3d Effekt erstellen was eigentlich auch ganz gut funktioniert hat bis ich die Zeitangaben in meinen Tween dynamisch angegeben habe. Hier mal ein kleiner Ausschnitt aus dem 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
function resize_lines(){
           for( var a:Number = 1; a < nav_points_array.length; a++ ){
              var new_animation_speed = animation_speed;
              var actual_mc = getChildByName('lines_' + nav_points_array[a]);
              var scale_value = 1;
              if( actual_nav_point_number > a ){
                 scale_value = 1 + ( ( actual_nav_point_number - a ) * (focus_strength) ) ;
              }else if( actual_nav_point_number < a ){
                 scale_value = 1 - ( ( a - actual_nav_point_number ) / (focus_strength) ) ;
              }
              new_animation_speed = animation_speed + scale_value;
              
              if( scale_value < 0 ){
                 scale_value = 0;
              }
              
              if( a == 1 ){
                 var focus_tweenX_Home:Tween = new Tween(lines_Home, 'scaleX', Strong.easeOut, lines_Home.scaleX, scale_value, new_animation_speed, true);
                 var focus_tweenY_Home:Tween = new Tween(lines_Home, 'scaleY', Strong.easeOut, lines_Home.scaleY, scale_value, new_animation_speed, true);
                 focus_tweenY_Home.addEventListener( TweenEvent.MOTION_CHANGE, get_blur_Home );
              }
              
              if( a == 2 ){
                 var focus_tweenX_About:Tween = new Tween(lines_About, 'scaleX', Strong.easeOut, lines_About.scaleX, scale_value, new_animation_speed, true);
                 var focus_tweenY_About:Tween = new Tween(lines_About, 'scaleY', Strong.easeOut, lines_About.scaleY, scale_value, new_animation_speed, true);
                 focus_tweenX_About.addEventListener( TweenEvent.MOTION_CHANGE, get_blur_About );
              }



Ich steuere mehrere MC's mit einer forSchleife an. Nicht wundern weil ich die MC's einzeln anspreche. Habe es nicht anders hinbekommen das die Tweens mit einer Zusatzfunktion unscharf gamcht werden. So, jetzt funktioniert alles bis auf die Tatsache das am Ende der Tweens die Grösse aufeinmal auf den vorherige Wert springt.

Kann auch gerne das ganze Script zeigen wenn es besser zur Veranschaulichung ist. Die Zahlen sind die scalex Angaben des HomeMCs. Dort sieht man sehr schön wie der Tween springt.
Versuche das Problem seit 2 Tagen in den Griff zu bekommen.

Danke für jede Hilfe.
Geändert von SNUFFSEED am 08.08.11 um 13:38 Uhr
SNUFFSEED#2
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

08.08.2011, 12:50

Habe gerade bemerkt das es nur dann auftritt wenn man bevor der Tween abgelaufen ist einen neuen Menuepunkt auswählt.
SNUFFSEED#3
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

08.08.2011, 13:09

Ich fasse es, habs hingekriegt. Endlich. Habe es nur mit nem Stop versehen und es hat gefunzt. Nach 2 Tagen Versuchen. Habe es jetzt so gemacht:
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
      
      function resize_lines(){
           for( var a:Number = 1; a < nav_points_array.length; a++ ){
              var new_animation_speed = animation_speed;
              var actual_mc = getChildByName('lines_' + nav_points_array[a]);
              var scale_value = 1;
              if( actual_nav_point_number > a ){
                 scale_value = 1 + ( ( actual_nav_point_number - a ) * (focus_strength) ) ;
              }else if( actual_nav_point_number < a ){
                 scale_value = 1 - ( ( a - actual_nav_point_number ) / (focus_strength) ) ;
              }
              //new_animation_speed = animation_speed + scale_value;
            
              if( scale_value < 0 ){
                 scale_value = 0;
              }
              
              if( actual_mc.tween_x ){
                 actual_mc.tween_x.stop();
                 actual_mc.tween_y.stop();
              }
              actual_mc.tween_x = new Tween(actual_mc, 'scaleX', Strong.easeOut, actual_mc.scaleX, scale_value, new_animation_speed, true);
              actual_mc.tween_y = new Tween(actual_mc, 'scaleY', Strong.easeOut, actual_mc.scaleY, scale_value, new_animation_speed, true);
              actual_mc.tween_y.addEventListener( TweenEvent.MOTION_CHANGE, get_blur );
                 
              function get_blur(e:Event):void{
                 make_this_blur(actual_mc);
                 trace( actual_mc.name );
              }
                 
           }
           
           function make_this_blur(mc_to_blur){
              mc_to_blur.visible= 1;
              if( ( mc_to_blur.scaleX < 0.05 ) || ( mc_to_blur.scaleX > 4 ) ){
                 mc_to_blur.visible= 0;
              }
              if( mc_to_blur.scaleX < 0.9 ){
                 var array_filter:Array=new Array();
                 var quality:int=4;
                 var blur_strength = Math.abs(mc_to_blur.scaleX - 1) * 50;
                 var filter:BlurFilter=new BlurFilter(blur_strength,blur_strength,2);
                 array_filter.push(filter);
                 mc_to_blur.filters=array_filter;
              }else{
                 mc_to_blur.filters=[];
              }
           }


Allerdings spricht jetzt nicht mehr mit dem Blur Effekt den ricvhtigen MC an. Nur immer den letzten durch die For Schleife. Wie kann ich das hinkriegen. Mit e.target geht es nicht da ja target sich auf den Tween bezieht. Ideen???
SNUFFSEED#4
Benutzerbild von SNUFFSEED
Beiträge: 15
Registriert: Apr 2011

Themenautor/in

08.08.2011, 13:38

Habe auch das geschafft. Habe der Blur Function einfach ne for Schleife reingeballert und so alle MC's angesprochen.

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