mc nach externem bild-laden tweenen?

B

ByeBye 78464

hallo flasher :)

ich hab, wie ich dachte ein schon häufig aufgetretenes und gelöstes, problem mit einen movieclip den ich tweenen will...

dabei lade ich ein bild in diesen mc und will den dann tweenen (ein- und ausfaden)...

doch macht er das eben nicht - er zeigt den tween nicht an, stattdessen setztt er das bild einfach auf einen geringen alpha wert.

also wieso spielt flash den tween nicht ab?
wenn ich das reinladende bild nicht zentrieren würde, spielte er das faden ab!
aber warum geht das nicht auch so?

hier das script :
auf dem ersten frame:
Code:
_root.alex.loadMovie("pics/g01.jpg"); 
nächtes:
if (_root.alex.getBytesLoaded() == _root.alex.getBytesTotal()) {
	_root.alex._y = (600-_root.alex._height)/2;
	_root.alex._x = (800-_root.alex._width)/2;
	_root.gotoAndPlay("alexgel");
} else {
	_root.gotoAndPlay("loadalex");
}

also ich dacht eigentlich das das as so stimmen sollte, aber wenn jemand einen fehler findet...

schonmal danke für hilfe

flashversion: mx 2004
 
Hi,

1. Deine (zugegeben: kreative) Rechtschreibung, Grammatik und Zeichensetzung erschwert das Lesen und Verstehen Deiner Frage erheblich...

2. ich arbeite zwar mit MX, aber:
- was macht z.B. _root.gotoAndPlay("alexgel");? ist das eine Szenenangabe? Wenn ja, fehlt als 2. Parameter die Bildnummer.

- Deine if-Abfrage - wird die in einer Schleife abgespielt? (ansonsten würde die Abfrage nur einmal ausgeführt und die Bedingung immer false sein). Wenn ja, fehlt eine Abbruchbedingung, da nach dem Laden die Bedingung immer true ist.

Bedenke außerdem, dass Du einem JPG keinen Alphawert zuweisen kannst, sondern lediglich dem umgebenden MC.

Gruß
 
Datic hat gesagt.:
1. Deine (zugegeben: kreative) Rechtschreibung, Grammatik und Zeichensetzung erschwert das Lesen und Verstehen Deiner Frage erheblich...
1. was ist daran so schlimm?
grammtatikalische fehler sollten nicht allzu viele sein...und wenn du noch welche findest darfst du sie behalten ;)
ne mal ehrlich: wusste nicht das es sooo anstrengend ist zu lesen...

Datic hat gesagt.:
2. ich arbeite zwar mit MX, aber:
- was macht z.B. _root.gotoAndPlay("alexgel");? ist das eine Szenenangabe? Wenn ja, fehlt als 2. Parameter die Bildnummer.
quatschein nein um gottes willen - ich arbeite doch nicht mit szenen!
nein das ist eine ganz normale bildbezeichnung... steht in dem fall für ein frame was abgespielt wird wenn das bild geladen ist...

Datic hat gesagt.:
- Deine if-Abfrage - wird die in einer Schleife abgespielt? (ansonsten würde die Abfrage nur einmal ausgeführt und die Bedingung immer false sein). Wenn ja, fehlt eine Abbruchbedingung, da nach dem Laden die Bedingung immer true ist.

Bedenke außerdem, dass Du einem JPG keinen Alphawert zuweisen kannst, sondern lediglich dem umgebenden MC.
klar ist es eine if schleife - ich lasse solange zwischen zwei frames abspielen, bis das bild geladen ist...

Code:
if (_root.alex.getBytesLoaded() == _root.alex.getBytesTotal()) {
	_root.alex._y = (600-_root.alex._height)/2;
	_root.alex._x = (800-_root.alex._width)/2;
	_root.gotoAndPlay("alexgel");
hier ist doch die abbruchbedingung!
sprich wenn das bild geladen ist, wird es zentriert und er soll zum frame "alexgel" springen...
} else {
	_root.gotoAndPlay("loadalex");
}
und das ist die anweisung was er machen soll wenn das bild noch nicht geladen wurde...
ist doch soweit richtig oder nicht?

ist mir klar das ich kein bild faden kann...
hab doch beschrieben das ich ein mc hab und IN diesen das bild lade und danach tweenen möchte

na ok, hoffe du verstehst es damit besser: http://www.machdichdaraus.de/flashtuts/loadbild.rar

wäre für alle lösungen sehr dankbar

mfg
machi
 
Hi,

1. OK, so schlimm ist es auch wieder nicht - ich wollte lediglich auf die Beachtung unserer Netiquette hinweisen. Groß- und Kleinschreibung sowie ein wenig Mühe beim Verfassen von Beiträgen sind hier gerne gesehen.

2. :) Sorry -> eindeutig mein Fehler! Das liegt daran, dass ich nicht mit Bildbezeichern arbeite (und die Flash-Dokumentation die Verwendung von Zeichenketten in Ausdrücken wie "GotoAndPlay" nicht erwähnt).

3. Leider kann ich Deine Datei nicht laden, da ich wie gesagt Flash MX verwende (v. 6). Ich würde spontan darauf tippen, dass die Abfrage fehlschlägt, weil der loadMovie-Befehl mit dem Frame andauernd aufs neue ausgeführt wird (wenn das Bild während des Ladens andauernd neu aufgereufen wird) - oder, da ja (wenn das Bild noch nicht geladen wurde), zu einem Frame mit der Bezeichnung "loadelex" gesprungen wird, die Abfrage dort nicht mehr ausgeführt wird... ich kann es nicht sagen, da ich leider keine Einblick in Deine Datei habe.

Ich habe in MX mal eine (sehr simple) Konstruktion basierend auf Deiner Syntax erstellt, die bei mir problemlos funktioniert.

Gruß
 

Anhänge

  • loadandfade.zip
    78,2 KB · Aufrufe: 28
1. Nein - du hast vollkommen Recht, ich sollte die Nettiquette achten und ehren :)
Aber ehrlich gesagt schreib ich im Netz eigentlich nur noch klein...
nunja zum thema:

2. Ist eigentlich sehr praktisch mit Bildbezeichnern zu arbeiten - gut ich mache das auch nicht sehr oft *gg* aber dadurch hat man feste Framebezeichnungen die man immer ansteuern kann, selbst wenn man die Frames verwschiebt (also wenn man beispielsweise eine gotoAndPlay anweisung mit Frame 23 belegt und danach vorher noch eine Animation reinlegt, verschiebt sich alles und die Anweisung ist nicht mehr aktuell...)

3. deine Variante find ich sehr gut - sehr viel einfacher als meine Variante und kleiner von der Dateigröße denk ich mal auch...

Ich werd das gleich mal bei mir testen - aber ich denk das wird so funktionieren

Vielen lieben Dank!


lg
machi
ps: Das was bei dir gotoAndPlay(10); ist, ist bei mir das gotoAndPlay("loadalex");....
 
Jetzt mal eine andere Frage - das Faden per AS klappt nur mit dem stop(); ?

Das ganze ist eine Art Bildergalerie in der alle möglichen Bilder geladen, zentriert und dann eingeblendet, kurz angezeigt und dann wieder ausgeblendet werden sollen...
 
Hi,

schon klar, das mit den Bildbezeichnern - bei mir kommt es daher, dass ich fast nie mit Frameanimationen und goto-Befehlen arbeite... mehrere Frames haben bei mir höchstens Buttons - und dann auch nicht sehr viele... ;)

Die letzte Frage mit dem "stop" habe ich mal wieder nicht richtig verstanden - wenn der Alphawert mit einem Bewegungstweening verändert werden soll, hast Du ja in jedem Schlüsselbild eine neue Instanz Deines Containerobjektes, die natürlich identisch benannt werden müssen... generell würde ich davon abraten, Objekte, die dynamisch verändert werden, zu tweenen. Ich würde den Film generell erst einmal anhalten und das Laden von einer onEnterFrame-Methode erledigen lassen. Für das Ein- und ausblenden würde ich Funktionen schreiben, die die entsprechenden Werte (_alpha?) auch in on EnterFrame (oder von mir aus setInterval) -Methoden ändern. Leider habe ich (ich sags noch einmal) keinen Einblick in Deine Datei, weiß also daher nicht, wie der Clip bei Dir eingeblendet wird - mein Beispiel habe ich anhand Deiner Codeausschnitte zusammengebastelt, wobei ich (sträflicherweise) völlig verschiedene Ansätze mit einander verbunden habe :)

Vielleicht kannst Du Deine Datei ja mal als Flash-6 speichern, dann kann ich es mir mal ansehen.

Gruß
 
Danke euch Beiden!
OK, Ich habe das ganze jetzt nocheinmal hochgeladen:
http://www.machdichdaraus.de/flashtuts/bildprob.rar

Ich bin leider mit den AS von Flash nicht ganz so gut - also mein Problem ich kann nicht alles mit AS umsetzen...

Deswegen sind meine Flashs immer ein Verband von Tweening und AS...

Also das Problem ist - Mithilfe deines Scripts kann ich schon ausfaden, aber einfaden klappt nicht so ganz...
Aber ich will das der Film dann ja noch weiterläuft und die anderen Bilder genauso darstellt (also auch kurzes einfaden, 10frames anzeigen, kurzes ausfaden) und nicht zu vergessen: abhängig von der Bildgröße das jeweilige Bild immer zentriert reinladen lassen...

Sollte ja eigentlich nicht so schwer sein, bloß bekomm ich eben die Animation nicht hin :(

Hoffe ihr könnt mir da weiterhelfen!?

Aber dennoch vielen Dank das ihr so schnell und gut geantwortet habt!
 
Hi,

soweit ich das sehen kann, bekommst Du in der Tat ein Problem damit, dass die Position durch die Verwendung mehrerer Schlüsselbilder nicht anständig zugeordnet werden kann:

Das Objekt "alex" wird in Frame 110 erschaffen. Nach dem Laden wird seine Position neu definiert. In Frame 118 befindet sich aber eine neue Instanz dieses Objektes, wo die Position wieder überschrieben wird. Du könntest entweder die Position von Anfang an so festlegen, dass sie der linken oberen Kante des Bildes entspricht, oder z.B. eine solche Funktion schreiben:
PHP:
function fade_in_out() {
    fadestep=2; // ggf. anpassen
    this.onEnterFrame=function() {
        alex._alpha+=fadestep;
        if (alex._alpha>=100-fadestep) {
            fadestep=-Math.abs(fadestep);
        }
        if (alex._alpha<=fadestep && fadestep<0) {
            fadestep=0;
            delete this.onEnterFrame;
        }
    }
}
Die kann auf jedes geladene Bild angewendet werden und das Objekt "alex" muss nur einmal (z.B. in Frame 1) definiert werden (Die anderen Bilder brauchen dann auch keinen eigenen Container mehr, sondern können alle in "Alex" geladen werden).

Gruß
 
Zuletzt bearbeitet:
Hmm...
Das is aber blöd...
Wusst ich gar nicht das es da Probleme gibt, wenn man von einem Objekt mehrere Schlüsselbilder macht

gut zu wissen!
Aber so richtig klappt das irgendwie immer noch nicht - gut Ich muss leider gestehen das Ich da nicht wirklich durchblicke :/

ich wollte die Bilder reinladen - die haben aber unterschiedliche Größe, also klappt das nicht mit nur einen mc, oder?

Und irgendwie müsste das Faden schneller ablaufen - wenn ich den fadestep-Wert änder bringt das nix - die Geschwindigkeit des Fadens wird damit nicht beeinflusst!?

Und:
Wie bastel ich aus deinem Script ein einblenden?
Bekomms selber leider nich so hin wie ich wollte :(
 
Zurück