Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-12-2006, 17:43   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 3
Anfängerproblem mit "with" in Flash 8

Hallo,
ich habe da aus alten Zeiten einen kleinen Film. In ihm steckt folgendes AS:

movieclip.prototype.intAct = function(max, ball_factor, posY) {
ball._visible = 0;
i = 1;
while (max>=i) {
duplicateMovieClip("ball", "ball"+i, i);
_root.mc["ball"+i]._y = posY+(i*ball_factor);
i++;
}
};
movieclip.prototype.Act = function(max, mc_factor, f1, f2) {
tempo = tempo+mc_factor;
j = 1;
while (max>=j) {
posY = (_root.mc["ball"+j]._y*f1)+tempo;
with (_root.mc["ball"+j]) {
_x = Math.tan(posY)*f2;
_xscale = j*2;
_yscale = j*2;
_alpha = j*2;
}
f2 = f2+2;
j++;
}
};

Wie ersetze ich das "with", so dass Flash 8 es interpretiert?
Danke für Eure Hilfe!
daphnis ist offline   Mit Zitat antworten
Alt 12-12-2006, 19:04   #2 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Ich habe jetzt nicht wirklich zu verstehen versucht, um was es in dem Ausschnitt geht, aber ich glaube, der Fehler liegt daran, dass im with-Block die Variablen aus dem Local Scope (und somit auch j) nicht mehr gelten.

Umgehen kannst du das Problem, indem du einfach den vollen Namen verwendest ([ AS ]-Tags um Code erhöhen die Lesbarkeit):
ActionScript:
  1. var temp :Movieclip = null;
  2. for ( var j :Number = 1; j <= max; ++j ) {
  3.    temp = _root.mc[ "ball"+j ];
  4.  
  5.    temp._x = Math.tan( ( temp._y * f1 ) + tempo ) * f2;
  6.    temp._xscale = 2*j;
  7.    temp._yscale = 2*j;
  8.    temp._alpha = 2*j;
  9.  
  10.    f2 += 2;
  11. }

Übrigens ist als Zählschleife eine for-Schleife besser geeignet als eine with-Schleife.
klickverbot ist offline   Mit Zitat antworten
Alt 13-12-2006, 07:17   #3 (permalink)
XUN
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 20
du meinst "while" statt "with"

Öm ... ich kenn mich ja nicht besonders gut aus darin, allerdings würde ich mal kurzerhand daruf tippen, das ein "." vor den Variablen in dem "with" abschnitt fehlt.

stat:
PHP-Code:
with (_root.mc["ball"+j]) {
    
_x Math.tan(posY)*f2;
    
_xscale j*2;
    
_yscale j*2;
    
_alpha j*2;

so:
PHP-Code:
with (_root.mc["ball"+j]) {
    .
_x Math.tan(posY)*f2;
    .
_xscale j*2;
    .
_yscale j*2;
    .
_alpha j*2;

Kann mich aber auch Irren


JimJim
XUN
XUN ist offline   Mit Zitat antworten
Alt 13-12-2006, 14:27   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 3
Flash-Problem

Also, ich danke schon mal für die ersten Hilfeversuche. Leider führten sie nicht wirklich zu einem Erfolg.
Mein Gedanke war, ein animiertes Logo, ähnlich dem Hintergrund vor SWR-Nachrichtensendungen, zu basteln. Dabei griff ich auf eine alte Flash-Geschichte zurück. diese läuft unter Flash 5, nicht aber unter den späteren Flashversionen. Folglich steckt der Wurm irgendwo im Script.
Als Hilfe hab ich mal die Datei angefügt. Es wäre toll, könnte mir jemand ein Licht aufleuchten lassen.
Vielen Dank schon mal im Voraus!
Angehängte Dateien
Dateityp: zip quader.zip (11,9 KB, 2x aufgerufen)
daphnis ist offline   Mit Zitat antworten
Alt 13-12-2006, 20:29   #5 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Ich weiß ehrlich gesagt nicht wirklich, wo da das Problem lag; ich habe die Funktion einfach neu geschrieben.

Die Symbole, die nicht verwendet wurden, habe ich aus der Bibliothek entfernt (du kannst sie ja bei Bedarf wieder zurückkopieren) und die Struktur bzw. Namensgebung innerhalb der Skript-relevanten Teile etwas aufgeräumt.
Den Code in den Prototype-Funktionsdefinitionen habe ich direkt in das (einzige) Skript in der Zeitleiste des BoxHolder-Clips verschoben – ich habe nicht gewusst, ob da eventuell ein Fehler versteckt sein könnte; außerdem finde ich, dass die ganze Prototype-Angelegenheit irgendwie die Übersicht zerstört.

Zuletzt bleibt mir noch zu sagen, dass ich immer noch nicht verstehe, wie du (oder wer auch immer) auf den Algorithmus gekommen bist...
Angehängte Dateien
Dateityp: zip logoquader animiert neu.zip (6,4 KB, 5x aufgerufen)
klickverbot ist offline   Mit Zitat antworten
Alt 14-12-2006, 06:31   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 3
Anfängerproblem

Der Süden der Republik dankt für Deine Hilfe. Es klappt (natürlich).
Wird vielleicht Zeit, dass ich mich wieder richtig die die Sache einarbeite ... .
daphnis ist offline   Mit Zitat antworten
Alt 14-12-2006, 20:34   #7 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Deine Grüße musst du aber noch weiter in den Süden schicken^^
klickverbot 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 08:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele