Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-01-2009, 19:28   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
Problem mit loadMovie

Hallo zusammen,

ich bin langsam am verzweifeln. Ich möchte nacheinander Bilder via "loadMovie()" einlesen und jeweils zwei Bilder ineinanderfaden lassen. Dazu brauche ich zwei Container.
Das Problem ist, dass das zweite "loadMovie()"-Bild nicht angezeigt wird, es sei denn, (A) die Variable "ladok2" ist von vornherein "1" und wird während der "onEnterFrame"-Funktion nicht mehr verändert; (B) ich schreibe "_root.loadMovie(...)", aber dann werden die Skalierungen und Positionierungen übergangen.

Ich denke, es ist in irgendeiner Form ein Ebenenproblem. Nur habe ich alle möglichen "_root."- und andere Kombinationen ausprobiert, es hilft nicht. Das Ganze benimmt sich sehr merkwürdig, und ich komme einfach nicht dahinter.

Wegen der auftretenden Probleme ist das Skript noch nicht fertig, bitte nicht wundern. Jetzt erst mal bis hierhin:

PHP-Code:
createEmptyMovieClip("cont1"1);
createEmptyMovieClip("cont2"2);
2048;
1536;
scale 35;
scale/100 B;
scale/100 H;
cont1._xscale cont1._yscale cont2._x cont2._y scale;
cont1._x cont2._x = (Stage.width b) / 2;
cont1._y cont2._y = (Stage.height h) / 2;
ladok1 1;
ladok2 0;
ok1 1;
ok2 1;
onEnterFrame = function() {
    if (
ladok1) {
        
loadMovie("blubb 00" ".jpg"cont1);
        
cont1._alpha 0;
        
ladok1 0;
    }
    if (
ok1 && cont1._alpha 100cont1._alpha += 2;
    else {
        
ok1 0;
        
ladok2 1;
    }
    if (
ladok2) {
        
loadMovie("blubb 00" ".jpg"cont2);
        
cont2._alpha 0;
        
ladok2 0;
    }
    
// etc.

Im Voraus vielen Dank für Hilfe!!
FireShark ist offline   Mit Zitat antworten
Alt 27-01-2009, 21:29   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
das mit onEnterFrame ist sowieso (sorry) misst

benütze lieber loadClip (anstatt loadMovie) das hat events, wann etwas geladen wurde (siehe flash-hilfe)
damit du mit deinem alpha einsoften erst anfängst wenn das swf da ist.

und damit kannst du auch ordentlich steuern, das die bilder nacheinender geladen werden.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 27-01-2009, 21:36   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
Okay, ich gucke mir die "loadClip"-Funktion mal an. Danke für den Hinweis, sie scheint tatsächlich Vorteile zu haben.

Wie meintest Du das mit "onEnterFrame"? Soll ich gar nicht benutzen oder nur nicht in Verbindung mit "loadMovie"? Ich meine, wie mach ich das sonst?

Edit: Ich habe das oben beschriebene Problem jetzt mit Benutzung von "loadClip" immer noch.

Geändert von FireShark (27-01-2009 um 21:42 Uhr)
FireShark ist offline   Mit Zitat antworten
Alt 28-01-2009, 11:46   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von FireShark Beitrag anzeigen
Wie meintest Du das mit "onEnterFrame"? Soll ich gar nicht benutzen
doch natürlich, aber nicht so eine 'tolle' if .. else konstruktion. im mittelarter wurden leute für sowas verbrannt ;-)

Zitat:
Zitat von FireShark Beitrag anzeigen
Edit: Ich habe das oben beschriebene Problem jetzt mit Benutzung von "loadClip" immer noch.
nicht, wenn du es ordentlich programmiert hast?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 28-01-2009, 15:19   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
Zitat:
Zitat von hgseib Beitrag anzeigen
doch natürlich, aber nicht so eine 'tolle' if .. else konstruktion. im mittelarter wurden leute für sowas verbrannt ;-)
Hm, wenn das so ist ... wie sollte ich es besser machen?

Zitat:
nicht, wenn du es ordentlich programmiert hast?
Was heißt "ordentlich"? Ich habe "loadMovie()" durch "loadClip()" inklusive Listener etc. ersetzt und alles funktioniert – bis auf das beschriebene Problemchen.

Ich habe leider studienbedingt kaum Zeit, mich richtig intensiv mit dem Thema auseinanderzusetzen und hatte gehofft, dass mein Fehler im Skript nur irgendeine Kleinigkeit und schnell behoben wäre. Wenn die Sache doch so kompliziert ist, wie es scheint, muss ich das wohl ganz lassen.
FireShark ist offline   Mit Zitat antworten
Alt 28-01-2009, 19:01   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von FireShark Beitrag anzeigen
Ich habe leider studienbedingt kaum Zeit
you, wir sind alle rentner und vertreiben uns hier nur die zeit bis zum tod ;-)

wie kann ich was zu deinem neuen programm sagen, wenn ich es nicht sehe?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 28-01-2009, 20:05   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
*seufz* So war das natürlich nicht gemeint. Nur wenn einem halt wirklich jede freie Minute fehlt, sind ein paar Stunden ActionScript einfach nicht drin. Egal – haken wir dieses (Off)Topic ab.

Das Skript kann ich Dir natürlich wie gewünscht zeigen, hier auf das Wesentlichste reduziert:

PHP-Code:
var cont2:MovieClip createEmptyMovieClip("cont2"getNextHighestDepth());
var 
lad2:MovieClipLoader = new MovieClipLoader();
lad2.addListener(this);
ladok2 1;
onEnterFrame = function() {
    
ladok2 1// Die kritische Zeile; wenn nicht auskommentiert, wird kein Bild geladen
    
if (ladok2) {
        
lad2.loadClip("blubb 00" ".jpg"cont2);
        
cont2._alpha 100;
        
ladok2 0;
    }

Unabhängig von allem übrigens mal vielen Dank für Deine Hilfe!
FireShark ist offline   Mit Zitat antworten
Alt 28-01-2009, 21:28   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
so habe ich mir das leider gedacht:
Zitat:
Zitat von hgseib Beitrag anzeigen
benütze lieber loadClip (anstatt loadMovie) das hat events, wann etwas geladen wurde (siehe flash-hilfe)
da sehe ich zwar etwas von
lad2.addListener(this);
aber du benützt offensichtlich immer noch dein onEnterFrame !?
wo benützt du die event von loadClip?
warum benützt du nicht das beispiel aus der flash-hilfe als vorlage?

via loadClip ein bild laden. wenn dadurch onLoadComplete aufgerufen wird, dann kannst du mit dem soften anfangen (das per onEnterFrame bzw. bequemer per Tween) und das nächste bild laden, das seinerseits wieder ein onLoadComplete auslöst ...

die bildnamen in ein array, dann kannst du z.b. eine ganze bildershow erstellen, in der eins nach dem anderen geladen wird.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (28-01-2009 um 21:32 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 29-01-2009, 15:53   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
So, bevor ich jetzt wieder in Versuchung gerate, ewig daran rumzubasteln, eine kleine Probe, ob ich auf dem richtigen Weg bin?

Die Weitergabe der Variablen "ok" funktioniert übrigens nicht. Wie könnte ich das hinbekommen? Und, ja, vermutlich würde man für den ganzen Code wieder mal verbrannt werden, aber ich verlange lediglich, dass er irgendwie funktioniert.

PHP-Code:
ok 0;
lad1.loadClip("blubb 00" ".jpg"cont1);
onLoadComplete = function(cont1) {
    
cont1._alpha 0;
    
onEnterFrame = function() {
        if (
cont1._alpha 100cont1._alpha += 2;
        else {
            
ok 1;
            
delete this.onEnterFrame;
        }
    }
}
if (
ok) {
    
lad2.loadClip("blubb 00" ".jpg"cont2);
    
onLoadComplete = function(cont2) {
        
cont2._alpha 0;
        
onEnterFrame = function() {
            
cont2._alpha += 2;
            
cont1._alpha -= 2;
        }
    }

Ach ja – wie genau meinst Du Folgendes: "das seinerseits wieder ein onLoadComplete auslöst"? Wenn ich das richtig verstehe, funktioniert das in meinem Fall nicht, weil ich ja immer zwei Bilder gleichzeitig geladen haben muss. Es soll ja das erste ausfaden, während das zweite einfadet usw.
FireShark ist offline   Mit Zitat antworten
Alt 29-01-2009, 16:35   #10 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
sorry, aber ist das wirklich so schwer, sich mal das beispiel in der flash-hilfe an zu sehen?
da muss man nichts basteln, das muss man nur rauskopieren.

var mcLoader:MovieClipLoader = new MovieClipLoader(); <-- wo ist das?
mcLoader.addListener(this); <-- wo ist das?
mcLoader.loadClip("YourImage.jpg", container);

dito das Tween, flash-hilfe aufrufen, nach Tween suchen, beispiel rauskopieren und anpassen.

hier mit noch etwas schnickschnack:
Code:
import mx.transitions.*;
import mx.transitions.easing.*;
//
_root.createEmptyMovieClip("cont1", 1);
_root.createEmptyMovieClip("cont2", 2);
//
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
//
bilder = [];
bilder.push({url:"blubb007.jpg", mc:cont1, warten:0});
bilder.push({url:"blubb008.jpg", mc:cont2, warten:5000});
bildNr = 0;
bilderSI = 0;
binladen();
//
function binladen() {
  clearInterval(bilderSI);
  mcLoader.loadClip(bilder[bildNr].url, bilder[bildNr].mc);
}
function onLoadInit(target_mc) {
  new Tween(target_mc, "_alpha", Strong.easeIn, 0, 100, 6, true);
  if (++bildNr<bilder.length) {
    bilderSI = setInterval(binladen, bilder[bildNr].warten);
  }
}
".. Es soll ja das erste ausfaden, während das zweite einfadet .."
das passt überhaupt nicht zu
".. weil ich ja immer zwei Bilder gleichzeitig geladen haben muss .."
entweder alle gleichzeitig oder nacheinander.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 29-01-2009, 18:57   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
Zitat:
Zitat von hgseib Beitrag anzeigen
sorry, aber ist das wirklich so schwer, sich mal das beispiel in der flash-hilfe an zu sehen?
da muss man nichts basteln, das muss man nur rauskopieren.
Ich habe öfters in der Hilfe geguckt. Du musst Dich auch ein bisschen in mich hineinversetzen. Ich habe noch nie etwas von dynamischem Tween und "loadClip" gehört. Etwas mehr als Kopieren und Anpassen ist es ja schon irgendwie.

Zitat:
var mcLoader:MovieClipLoader = new MovieClipLoader(); <-- wo ist das?
mcLoader.addListener(this); <-- wo ist das?
mcLoader.loadClip("YourImage.jpg", container);
Ich habe nur einen Teil des Codes gepostet.

Zitat:
".. Es soll ja das erste ausfaden, während das zweite einfadet .."
das passt überhaupt nicht zu
".. weil ich ja immer zwei Bilder gleichzeitig geladen haben muss .."
entweder alle gleichzeitig oder nacheinander.
Was passt da nicht zusammen? Mit "geladen" meinte ich "auf der Bühne". Du hast es doch auch so umgesetzt, wie ich meinte. Womit ich beim letzten Punkt wäre: Erst mal danke für den Code! Ich weiß, dass Du mir eigentlich nur Hilfestellung und keine Endlösung geben wolltest. Aber ich hätte das erstens in dieser Form niemals hinbekommen (siehe oben, vor allem nicht ohne intensives Beschäftigen), zweitens muss ich ja eh noch anpassen und vor allem das Ganze verschleifeln, damit alle Bilder an der korrekten Stelle geladen werden.

Mal sehen, wie es die Zeit zulässt, dass ich hier weitermache.
FireShark 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 04:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele