Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-06-2004, 22:13   #1 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
_width dynamisch ändern - mit mehreren objekten und versch. werten ...

hallo,

mal angenommen, ich habe 3 gleichgroße felder (farbflächen mc's) nebeneinander liegen.
ich möchte per buttonpress nun, daß das erste feld breiter, die beiden anderen dafür schmaler werden.

bis jetzt habe ich folgendes AS:
(col ist der container (colour), in dem die 3 felder liegen, c1 steht für colour 1.)
ActionScript:
  1. step = 15;
  2. newSize = function (size) {
  3.     this.onEnterFrame = function() {
  4.         //vergrößern
  5.         if (col.c1._width<=size) {
  6.             col.c1._width += step;
  7.             if (col.c1._width>=size) {
  8.                 delete this.onEnterFrame;
  9.                 col.c1._width = size;
  10.             }
  11.         }
  12.         //verkleinern
  13.         if (col.c1._width>=size) {
  14.             col.c1._width -= step;
  15.             if (col.c1._width<=size) {
  16.                 delete this.onEnterFrame;
  17.                 col.c1._width = size;
  18.             }
  19.         }
  20.     };
  21. };
  22. bt1.onPress = function() {
  23.     newSize(500);
  24. };

so klappt das wunderbar für das erste feld.
aber für die beiden anderen felder muss ich doch nicht nochmal das ganze script schreiben, oder? ich kenne mich mit funktionen noch nicht so gut aus.

kann mir nebenbei auch noch jemand sagen, wie ich die animation nicht linear (durch addition und subtraktion der werte) sondern "smooth" anlegen kann?

thx 4 tips !!
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 23-06-2004, 22:35   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
PHP-Code:
 step 15;
step 15;
speed=0.3
MovieClip
.prototype.newSize = function (wer,siz
{
    
wer.onEnterFrame = function() 
    {

        
Math.round(this._width) != siz this._width += (-this._width+siz)*speed : (delete this.onEnterFramethis._width=siz);
    };
};
bt1.onPress = function() {
    
newSize(col.c1,500);
}; 

mach einfach ein prototype,
mit buttonklick übergibst du neben dem wert auch die entsprechende instanz.
grz
warrantmaster ist offline   Mit Zitat antworten
Alt 23-06-2004, 22:38   #3 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
ja wie geil!

so ein hübsches kleines script habe ich gesucht.
vielen dank, wunderbar *froyyy*
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 23-06-2004, 22:41   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von Mr.Twister
ja wie geil!

so ein hübsches kleines script habe ich gesucht.
vielen dank, wunderbar *froyyy*

*LOL*

N8
warrantmaster ist offline   Mit Zitat antworten
Alt 23-06-2004, 22:43   #5 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
oh, falls du das noch liest:

wenn ich nun zu der _width auch noch die _xpos ändern will, muss ich die zeile kopieren und auf _xpos ummünzen oder geht das auch direkt in der langen zeile?
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 23-06-2004, 22:49   #6 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
och, ich mach das mit der zweiten zeile, die ich halt auf die _x position umscripte, klappt gut.

auch n8
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 24-06-2004, 10:09   #7 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
naja, ich hab das jetzt zwar mit der zweiten zeile, die ich auf x umgemünzt hab, aber es klappt trotzdem leider noch nicht so besonders, denn wenn ich die funktion auf mehrere felder anwende, bleibt das erste feld stehen und verändert sich anschließend nur noch per mausklick. *wunder*

kann ich vielleicht doch noch die x-koordinate mit in die zeile integrieren?
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 24-06-2004, 19:30   #8 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
PHP-Code:
wer.onEnterFrame=function()
{
Math.round(this._width) != siz ? (this._width += (-this._width+siz)*speed,this._x +=(-this._x+xpos)*speed) : (delete this.onEnterFramethis._width=sizthis._x=xpos); 


du hast probs mit den zwei onenterframes

in die funktion übergibst du dann neben "wer" und "siz" halt auch noch "xpos"

grz
warrantmaster ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele