Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-05-2004, 12:45   #1 (permalink)
_
 
Benutzerbild von enya
 
Registriert seit: Mar 2004
Beiträge: 67
kleine frage (x/y probleme)

hallo,
ich habe nun endlich was eccentris-ähnliches aber nun stellt sich das nächste problem im wege:

Frage1: ich habe nun einen clip der seitlich eingeblendet wird (von unsichtbar zu sichtbar) , also von links nach rechts. ich habe durch verändern der koordinaten versucht die richtung zu wechseln, aber dann bleibt die aniamtion nach kurzem stehen und nix geht mehr.
ActionScript:
  1. MovieClip.prototype.addStripe = function(nr) {
  2.     stripe = this.attachMovie("bild", "bild"+nr, nr, {_x:20, _y:50, ID:nr});
  3.     maske = this.stripe.attachMovie("mask", "mask",1, {ziel:nr*20})
  4.     stripe.setMask(maske)
  5.    
  6.     maske.onEnterFrame = function() {
  7.         this.xpos += this.vx
  8.         this.vx = (this.vx + ( this.ziel - this.xpos)/40)/1.08
  9.         this._x = this.xpos 
  10.     }
  11.    
  12. }
  13.  
  14. bild_welle = function(i,max_stripes) {
  15.     if (i<=max_stripes) {
  16.         this.addStripe(i)
  17.     } else {
  18.         clearInterval(t)
  19.     }
  20. }
  21.  
  22. t = setInterval( function(){ _root.bild_welle(i,9);i++ }, 100 );

wie muss es lauten damit es statt von links nach rechts von unten nach oben eingeblendet wird?


Frage 2:
ich hätte dann also eine animation die von unten nach oben eingeblendet wird und möchte dass wenn die animation entladen wird der selbe effekt eintrifft nur halt von sichtbar zu unsichtbar.
Das sollte am ende also so sein, wenn jemand auf einen button (about) klickt dann startet der effekt, die animation wird unsichtbar von unten eingeblendet bis sie sichtbar ist und bleibt dann bei sichtbar stehen.
klickt der user jetzt auf einen anderen button (photos) dann wird die animation(about) ausgeblendet mit dem selben effekt wie sie eingeblendet wurde aber halt eben von sichtbar zu unsichtbar und im gleichen moment wird dann aber auch noch die animation (photos) mit selben effekt wieder eingeblendet.

Ich habe zwar schon einen ansatz wie ich das alles mache, würde aber sehr gerne eure ratschläge hören da ich ja nicht der erfahrenste flash-benutzer bin.

kann mir jemand mit konstruktiven tipps und ratschlägen weiterhelfen bitte?

im anhang aktueller stand (wurde nicht von mir gebastelt!)

danke

eure
Angehängte Dateien
Dateityp: zip forum.zip (6,5 KB, 11x aufgerufen)
__________________
enya
enya ist offline   Mit Zitat antworten
Alt 08-05-2004, 18:04   #2 (permalink)
_
 
Benutzerbild von enya
 
Registriert seit: Mar 2004
Beiträge: 67
zu frage 2:
der film soll sozusagen beim wechseln zu einer anderen sektion (photos) rückwärts abspielen...

any suggestions? hat keiner einen tipp oder einen guten ratschlag?

danke
__________________
enya
enya ist offline   Mit Zitat antworten
Alt 09-05-2004, 17:31   #3 (permalink)
_
 
Benutzerbild von enya
 
Registriert seit: Mar 2004
Beiträge: 67
kann mir niemand helfen
ich habe schon unzählige tutorials durchgemacht aber leider ohne erfolg
__________________
enya
enya ist offline   Mit Zitat antworten
Alt 11-05-2004, 12:40   #4 (permalink)
_
 
Benutzerbild von enya
 
Registriert seit: Mar 2004
Beiträge: 67
interessant dass bei allen anderen die fragen beantwortet werden nur meine nicht , das geschieht mir schon zum 4ten mal im ff.
__________________
enya
enya ist offline   Mit Zitat antworten
Alt 11-05-2004, 13:08   #5 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
na das würde mir an deiner stelle ja zu denken geben, spass beiseite, ist ein seltsames script was du da vorlegst, sieht aber gut aus!

ich hab es dir mal von oben nach unten leicht umgemodelt, du brauchst nen anderen maskenfilm, den hab ich maskY genannt, der ist im gegensatz zu deinem 200px breit und 20px hoch, gibst ihm den verknüpfungsnamen "maskY", nimmst folgendes script und schon sollte das funktionieren;

dein onEnterFrame hab ich begrenzt, damit er auch mal aufhört


function addStripe(nr) {
stripe = this.attachMovie("bild", "bild"+nr, nr, {_x:20, _y:50, ID:nr});
maske = this.stripe.attachMovie("maskY", "mask",1, {ziel:nr*20})
stripe.setMask(maske)
maske.onEnterFrame = function() {
this.ypos += this.vy
this.vy = (this.vy + (this.ziel - this.ypos)/40)/1.08
this._y = this.ypos;
if(Math.abs(this._y - this.ziel)<0.05)delete this.onEnterFrame;
}

}

bild_welle = function(i,max_stripes) {
if (i<=max_stripes) {
this.addStripe(i)
} else {
clearInterval(t)
}
}

t = setInterval( function(){ _root.bild_welle(i,9);i++ }, 100 );


na, das ist doch schon mal was, matsch fun!!!
mooseMash ist offline   Mit Zitat antworten
Alt 11-05-2004, 13:08   #6 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

es gibt nunmal keine Garantie dafür, dass hier Fragen beantwortet werden. Das ganze geschieht freiwillig, oder zahlst du irgendwelche Beiträge?!

Möglicherweise liegt es daran, dass es recht aufwendig ist, sich in deine Problematik einzudenken. Du hast ein Skript, dass du weder geschrieben hast noch verstehst und erwartest nun, dass sich andere damit beschäftigen. Dein eigener Ansatz wäre vielleicht auch interessant. Anhand dessen kann man dir evtl. konkreter erklären, wie du was erreichen kannst. Ich unterstelle dir mal, dass du hier auch was lernen willst und nicht nur dein Skript anpassen lassen möchtest...

Vielleicht versuchst du erstmal selbst, das Skript zu verstehen.
Du übergibst nr in aufsteigender Reihenfolge an das Prototype.

Die jeweilige Maske bekommt als Ziel diese nr * 20, das erste also 20, das letzte 180. Versuche, dass das erste auf 180 landet und das letzte auf 20. Dazu musst du nur die Reihenfolge umkehren, also i mit 9 starten und dekrementieren (i--). Deine if-Abfrage musst du dann nat. auch ändern.

Außerdem benötigt dein Masken-oEF noch den neuen Startwert für xpos, also 180. Den kannst du mit hier:
maske = this.stripe.attachMovie("mask", "mask",1, {xpos: 180, zielnr)*20})

mit übergeben.

Wenn du das verstehst, kommst du sicherlich auch selbst auf die Lösung, das Ganze von unten nach oben aufbauen zu lassen.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 11-05-2004, 13:34   #7 (permalink)
_
 
Benutzerbild von enya
 
Registriert seit: Mar 2004
Beiträge: 67
hallo ihr beiden,
erstmals danke für eure beiträge!

@mooseMash
ich habe nun genau deine anweisungen ausgeführt aber leider scheint das bild zwar auf bleibt aber dann ohne animation so stehen und rührt sich nicht. eine neue maske "maskY" habe ich erstellt (hab auch versucht statt ("maskY", "mask",1, {ziel:nr*20}) -> ("maskY", "maskY",1, {ziel:nr*20}) , nur das vorweg).

@ludabruda
hätte ich eine garantie dass meine fragen beantwortet werden, dann würde ich sehr gerne einen beitrag dafür bezahlen. aber du hast schon recht, mir gehts neben der lösung auch hauptäschlich ums lernen da ich bisher sehr wenig mit actionscript animiert/gesteuert habe. ich versuche momentan anhand von as-büchern und ausführlichen tutorials wo jede zeile kommentiert wird mein as-wissen etwas aufzubessern. den ersten teil deines vorschlags habe ich nicht wirklich verstanden (die jeweilige.... ändern)

vielen dank und liebe grüsse

enya
__________________
enya
enya ist offline   Mit Zitat antworten
Alt 11-05-2004, 13:44   #8 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

überleg doch mal, was da passiert: es wird neunmal das Bild attacht, jedesmal mit einer Maske, die ein anderes Ziel erhält. Alle Masken starten an der gleichen Position. Das jeweilige Ziel ist nr*20, nr beginnt bei 0.
Willst du es von rechts nach links umdrehen, müssen alle Masken bei 180 (also 9*20) starten, das Ziel muss dann erst beim letzten auf 0 stehen.

Verusuch das mal:

ActionScript:
  1. maske = this.stripe.attachMovie("mask", "mask",1, {xpos:180,ziel:180-nr*20})

Damit kannst du dein SetInterval auch so lassen, wie es ist.

Beim vertikalen Einblenden musst du den Masken-MC ändern und das onEnterFrame der Maske von _x auf _y ändern.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 11-05-2004, 15:00   #9 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
tja, da scheint der wurm drin, bei mir läuft es, damit du das vergleichen kannst schick ich dir mal die fla, horido
Angehängte Dateien
Dateityp: zip forum.zip (6,7 KB, 9x aufgerufen)
mooseMash ist offline   Mit Zitat antworten
Alt 11-05-2004, 18:31   #10 (permalink)
_
 
Benutzerbild von enya
 
Registriert seit: Mar 2004
Beiträge: 67
@ludabruda
das funktioniert jetzt auch (es flattert zwar etwas komisch links) aber ich hab schon mal den grundgedanken verstanden. für die vertikal aniamtion muss ich also die maske mal horizontal (also 200px breite, 20px höhe) erstellen, der geb ich den namen MaskY. wenn ich die onenterframe umändere wie du es beschreibst läuft die animation aber dann wieder von links nach rechts (mit maskY gehts dann net.. )....

@moosemash
das läuft ja spitze! nur halt von oben nach unten statt unten nach oben.
ich habe nochmals kontrolliert was bei meiner nicht funktionierenden version und deiner funktionierenden unterschiedlich ist. bei meiner heisst es
ActionScript:
  1. maske = this.stripe.attachMovie("maskY", "mask",1, {ziel:nr*20})
(wie du es auch im thread hast)

bei deiner heisst es
ActionScript:
  1. maske = this.stripe.attachMovie("maskY", "mask",1, {_y:180,ziel:180-nr*20})
__________________
enya
enya ist offline   Mit Zitat antworten
Alt 18-05-2004, 20:55   #11 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
kleine ergänzung zum thema
hier kommt eine leicht aber deutlich modifizierte version die es ermöglicht diesen effekt sowohl wagerecht als auch senkrecht von links nach rechts oder umgekehrt, von oben nach unten oder umgekehrt zu setzen
Angehängte Dateien
Dateityp: zip mask.zip (39,9 KB, 13x aufgerufen)
mooseMash 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 18:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele