(Brush)/Layer von x nach y bewegen und dabei gleichzeitig verkleinern (über Designer Codefenster)PRINZIP:
Layer/Objekt um x% verkleinern -> Layer/Objekt um x verschieben -> Layer/Objekt erneut um x% von der momentanen Größe verkleinern -> schieben -> usw .....
HINWEISE:
1. Das Objekt auf den sich der Code bezieht muß VOR ! dem Code stehen. D.h. der Code muß im Codefenster eines Objektes eingetippt werden, was nach dem "zu bewegendem Objekt/Brush" steht. => eigentlich logisch, weil ja eins nachm anderen abgearbeitet wird...
Da ich im konkreten Falle mehrere Brushes/Layer bewegen wollte habe ich ein Objekt ganz unten eingefügt (unsichtb. Linie) welches für alle "Bewegungsobjekte" den Code hat.
2. ScaleLayer() war nen bisserl schwierig, da ich prozentual verkleinern wollte, ScaleLayer(2,50%,50%) geht leider nicht, da "%" als Operator in Hollywood geschützt ist, also muß ich mit Esc-Code+Asciizeichen arbeiten s.u.
3. Der Code ist sicherlich nen bisschen umständlich, und man könnte es mit einer schönen Funkton mit Variablen Übergabe besser regeln, aber es zeigt wo es lang geht:
CODE:
Code:
VerklFakt = 100 /* Var initialisieren */
/* --------- 1. Layer ------------- */
/* 1.Layer Position Startposition */
ax = 400
ay = 130
/* 1. Layer Endposition auf Startposition setzen */
bx = ax
by = ay
/* Layer auf 50 Proz verkleinern in zehner Schritten */
For VerklFakt = 100 to 50 Step -10
VerklFakt$ = ToString(i) /* Verkl. Prozentzahl in String wandeln */
a$ = AddStr(VerklFakt,"\037") /* 037 Ascii Code Prozentzeichen an String h?ngen*/
ScaleLayer(8,a$,a$) /* Layer verkleinern */
bx = bx - 66 /* nächste Position des verkleinerten Layers berechnen, abhängig von Pos. im vorangegangenen Schleifendurchlauf */
by = by + 21
MoveLayer(8, ax, ay, bx, by, {Speed = #FASTSPEED}) /* Layer entsprechend ein Stück bewegen */
ax = bx /* Startposition auf neue Endposition setzen für den nächsten Durchläufe... */
ay = by
Next
gruß gerograph