Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-12-2005, 01:37   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 41
Preloader für dynamisches Yugop (set Interval) Probleme

Ich beschäftige mich nun schon länger mit diesem Preloader Problem für ein dynamisches Yugop. Ja ich weiss es gibt "hunderte" von Beispielen. Ich habe auch etliche durchgeackert aber irgendwie noch nicht die zündende Idee gehabt oder einfach noch zu Dumm für Flash bin.
Ich habe folgenden Link als am besten Nachvollziebar empfunden. Also all jene die ein Ähnliches Problem haben können sich dort behleren lassen.

(Ladekontrolle für mehrere dynamisch geladene jpegs?)

Das Yufop und alles sind unter folgendem Link nachvollziehbar obwohl sich einiges geändert hat inzwischen. Das Problem liegt denke ich an dem set Inerval. Wenn ch es aktiert habe, kommt folgende Meldung:

PHP-Code:
Error'with' action failed because the specified object did not exist
PHP-Code:
laden = function () {
    if (
i<=bildanzahl) {
         
//trace ("Bildanzahl ="+bildanzahl)
         //trace ("Bildanzahl a ="+a)
        
var mc=_global.catalogo.yugop.attachMovie("mc"'neu'+ii);
        
mc._y starty;
        
mc.id=i
        
// trace("id="+mc.id)
        
speed=speed_slider
        
if (a==1){startx=96speed=0;};
        if (
a==2){startx=96speed=0;};
        if (
a==3){startx=96speed=0;};
        if (
a==4){startx=96speed=0;};
        
_global.catalogo.yugop.move.speed=speed
        mc
._x=startx+(mc._width+abstand)*(i-1)
        
mc.MC_Pic.yugop_pic.loadMovie(pfad+i+'.jpg'i)
        
mc.MC_Pic.yugop_pic._x = -62;
        
mc.MC_Pic.yugop_pic._y = -43;
        
        
// loader_funk();
        // loadID.setInterval(loader_funk, 100);
        
        // trace ("In laden funcion"+pfad)
        
var m=new LoadVars()
        
m.mc=mc
        m
.onLoad=function(ok)
        {
            if(
ok)
            {   
//trace(mc.id+'Button')
                
var temp this.nombre.split(",");
                
//this.mc.MC_Titel.Titel.html=true;
                
this.mc.MC_Titel.Titel.text=temp[mc.id-1]
            }
        }
        
m.load(pfad+"yugop.txt")

        
i++;
        
laden();
            
        
    } else {
        
this.laenge this._width//-abstand;
        
for (var 1k<=ak++) {
            var 
mcb=_global.catalogo.yugop['neu'+k]
            
mcb.idb k;
            
// trace(mcb.idb+'Hallo');
            
mcb.onPress = function() {
                
                
_global.catalogo.cualidad._visible=true;
                
_global.catalogo.Imgs._visible=true;
                
                 
// trace(this.idb+'Button');
                
_global.catalogo.Imgs.loadMovie(pfad+[this.idb]+'_grande.jpg');
                
_global.catalogo.Imgs._x 80;
                
_global.catalogo.Imgs._y 175;
                
preloader_jpg (); // Preloader Funktions aufruf
                // _global.catalogo.loader_jpg._visible = true; // Preloader sichtbar machen
                
                
loadCaract = new LoadVars();
                
loadCaract.load(pfad+"caracteristicas.txt");
                
//loadCaract.mcb.idp=mcb.idp;
                
loadCaract.id this.idb;//<-----------hier übergibst du die id des button an das onload 
                // trace(this.idb+'Button');
                // assign a function which fires when the data is loaded: link: http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_16142
                
loadCaract.onLoad = function(success) {
                    
// trace('onload '+[mcb.idb]+' Button'+"this.id"+[this.id]);
                    
if (success) {
                        
// trace('onload '+[mcb.idb]+' Button');
                        
var temp1 loadCaract.cuadro.split(",");
                        var 
temp2 loadCaract.tijera.split(",");
                        var 
temp3 loadCaract.multiplicacion.split(",");
                        var 
temp4 loadCaract.cambios.split(",");
                        var 
temp5 loadCaract.freno.split(",");
                        var 
temp6 loadCaract.rines.split(",");
                        var 
temp7 loadCaract.llantas.split(",");
                            
_global.catalogo.cualidad.cuadro.html true;
                            
_global.catalogo.cualidad.cuadro.htmlText temp1[this.id-1];
                            
_global.catalogo.cualidad.tijera.html true;
                            
_global.catalogo.cualidad.tijera.htmlText temp2[this.id-1];
                            
_global.catalogo.cualidad.multiplicacion.html true;
                            
_global.catalogo.cualidad.multiplicacion.htmlText temp3[this.id-1];
                            
_global.catalogo.cualidad.cambios.html true;
                            
_global.catalogo.cualidad.cambios.htmlText temp4[this.id-1];
                            
_global.catalogo.cualidad.freno.html true;
                            
_global.catalogo.cualidad.freno.htmlText temp5[this.id-1];
                            
_global.catalogo.cualidad.rines.html true;
                            
_global.catalogo.cualidad.rines.htmlText temp6[this.id-1];
                            
_global.catalogo.cualidad.llantas.html true;
                            
_global.catalogo.cualidad.llantas.htmlText temp7[this.id-1];
                                
                    } else {
                        
// trace("not loaded");
                        
_global.catalogo.cuerpo.htmlText " error loading variables ";
                        
_global.catalogo.rodada.htmlText " error loading variables ";
                    }
                };
            };
        }
        
move();
    }
}
move = function () {
    
this.onEnterFrame = function() {
        var 
speed=speed;
        var 
this._xmouse;
        var 
this._ymouse;
        var 
hoehe;
        var 
xstart breite_start;
        var 
breite+breite_start;
        var 
highy;
        
// var hi=highy
        
for (var 1i<=bildanzahli++) {
            var 
mc this['neu'+i];
            
mc._x += speed1;
            if (
mc._x>=breite) {
                
mc._x -= laenge;
            }
            if (
mc._x<=-mc._width) {
                
mc._x += laenge;
            }
        }
        if ((
x>xstart && x<(mitte-10) && y>&& y<h) || (x<&& x>(mitte+10) && y>&& y<h)) {
            var 
this._xmouse-mitte;
            var 
sp = -r;
            
speed1 = (sp*speed)/(10);
        } else {
            
speed1 0;
        }
    };
};


//--- Ladefunktion --------------------------------
preloader_jpg = function () {
    
// Einen onEnterFrame-Event erstellen, so dass nun
    // der Ladezustand kontinuierlich abgefragt und
    // angezeigt wird
_global.catalogo.loader_jpg.onEnterFrame = function() {
        
// Geladene und zu ladenede Bytetes abfragen
        
geladen _global.catalogo.Imgs.getBytesLoaded();
        
zuladen _global.catalogo.Imgs.getBytesTotal();
        
// trace (geladen);
        //_global.catalogo.loader_jpg._visible = true;
        // Sicherheitsabfrage, da ein leerer MC so ungefähr
        // 4 bis 5 Bytes hat und zu Verfälschungen führen könnte
        
if (geladen>=14) {
            
// Ladeanzeige sichtbar machen
        
_global.catalogo.loader_jpg._visible true;
            
// Berechnung der bereits geladenen Prozent
            
prozent Math.round(geladen/zuladen*100);
            
// Ausgabe im dynamischen Textfeld "prozentanzeige"
            
this.jpg_prozent.text prozent+"%";
            
this.jpg_bytes.text geladen+" Bytes cargado";
            
// Skalierung des Balkens anhand der Prozentzahl
            
this.balken_base.balken._xscale prozent;
            
// Wenn komplett geladen
            
if (prozent>=100) {
                
// den EnterFrame-Event löschen um Performance zu sparen
                
delete this.onEnterFrame;
                
// die Ladeanzeige wieder unsichtbar machen
                
this._visible false;
            }
        }
    };
};
//-------------------------------------------------
var startx 300;
// x-anfansgskoordinaten des balkens
var starty 200;
// y-anfangskoordinaten des balkens
var breite 200;
// hier die breite des balkens einstellen
var hoehe 2;
// hier die hoehe des balkens einsellen
var farbe 0xff00ff;
// hier die farbe des balkens einstellen
var alpha 100;
// hier den alphawert (durchsichtigkeit) des balkens einstellen

// zeichnen des balkens
_root.createEmptyMovieClip("balken_mc"1);
// erstellt ein mc
balken_mc._x startx;
balken_mc._y starty;
with (balken_mc) {
beginFill(farbealpha);
lineTo(0hoehe);
lineTo(breitehoehe);
lineTo(breite0);
lineTo(00);
endFill();
};
_root.createTextField("txt"50103013020);

loader_funk = function() {
0;
0;
for (
i=1i<=ai++) {
+= _global.catalogo.yugop['neu'+i].MC_Pic.yugop_pic.getBytesTotal();
trace (t);
+= _global.catalogo.yugop['neu'+i].MC_Pic.yugop_pic.getBytesLoaded();
}
if (
l>=12) {
pt Math.ceil((l/t)*100);
_root.txt.text pt+" % geladen";
_root.balken_mc._xscale pt;
if (
pt >= 100) {
_root.txt.removeTextField();
_root.balken_mc.removeMovieClip();
clearInterval(loadID);
}
}
};
loadID setInterval(loader_funk10);  // Falls dies aktiv ist 
Globi468 ist offline   Mit Zitat antworten
Alt 29-12-2005, 01:47   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 41
Hier noch der Link zum Yugop:
(Wahrscheindlich ein kleines Problem für die Masters hier im Forum [".."+i]??)
Globi468 ist offline   Mit Zitat antworten
Alt 29-12-2005, 11:41   #3 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Kann eigentlich nur daran liegen, dass der "balken_mc" irgendwie überschrieben wird. Erstell dan mal auf einer anderen Tiefe (z.B. 1000):
PHP-Code:
_root.createEmptyMovieClip("balken_mc"1000); <--- Da
Verstehe ich zwar auf den ersten Blick nicht ganz, warum es den nicht geben soll, aber eine andere with-Aktion gibt's ja anscheinend nicht.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 29-12-2005, 17:19   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 41
@Frager: Besten Dank für deinen Input ich hab es probiert wie du es Beschrieben hast, aber mit der Tiefe 1000 klappt das auch nicht.
Ich hab jetzt ein statisch erzeugtes Textfeld verwendet mit dynamischer Eigenschft selbstverständlich. Das ganze Funktioniert nun auch Online ohne Probleme. Leider jedoch nicht 100%. Und zwar denke ich, dass ich ein Zeitkonflikt habe. Das Problem sieht folgendermassen aus:

1. Ich lade Bilder in ein dynamisch erzeugtes yugop, welches durch attacheMovie erzeugt wird. Link dazu weiter oben.

2. Nun ist es so, dass ich bei der ersten Betätigung des Buttons (Rodada12") 3 MC erzeuge in die ich die Bilder Lade. Das ganze funktioniert super!!

3. Nun wenn ich einen anderen Button Betätige (Rodada16") werden 7 MC's erzeugt in die wiederum 7 Bilder geladen werden. Leider werden genau die ersten 3 Bilder nicht geladen. Da wahrscheindlich irgend ein Zeitkonflikt vorhanden ist. Wenn ich z.B. wiederum den Button (Rodada12") betätigte erkennt er gar nichts mehr und wandert ins jenseits. Evt. muss ich irgend eine verzögerung einbauen, da ich die Anzahl der zu erzeugenden MC's aus einer txt dynamisch Reinlade.

Hier der Link zum rar-File (yugop_preloader.rar) direkt klappt es irdendwie nicht.

http://usuarios.lycos.es/cuba99mex/RAR/

Falls jemand das Problem lösen kann wäre ich froh, wenn er mir das auch erklären könnte ich möchte natürlich was dazu lernen und nicht immer wieder dieselben Fragen stellen müssen. Ausserdem kann ich so auch anderen eine Hilfe sein. Was ich noch Fragen wollte, gibt es da irgend ein kluges Buch, welches einen guten Einstieg ins Flash gibt vor allem was AS, Timeline und Zeitkonflikte anbelangt. Damit ich das auch endlich esser verstehen kann. Ich habe schon einige Onlinebeschreibungen angeguckt aber vielleicht hat hier ja jemand gute Erfahrungen mit einem spezifischen Buch gesammtelt.

Mfg und besten Dank!!
Globi468 ist offline   Mit Zitat antworten
Alt 05-01-2006, 16:26   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 41
Ich habe nun schon einiges ausprobiert und das Forum weiter durchstöbert un bin leider immer noch nicht über mein Problem im klaren. Das ganze hat irgendwie nur mit diesem set Interval zu tun. Ich komme einfach nicht weiter. Ich hab es jedoch noch nicht aufgegeben, da ich mir sicher bin, dass es auf eine Art funktionieren muss. Nur komm ich leider nicht auf die "funktionierende" Lösung oder sehen meinen Fehler nicht. Ich wäre froh, wenn ich nur einen kleinen Hinweis erhalten könnte an was das liegen kann, damit ich mich nicht dauernd im Kreis drehe und in eine andere Richtung gehen kann.

Mfg
Globi468 ist offline   Mit Zitat antworten
Alt 05-01-2006, 16:40   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ich noch mal...
Also du musst auf jeden Fall "i" auf 0 setzen, bevor du die laden-Funktion erneut aufrufst. Außerdem solltest du alle MCs in "catalogo.yugop" removen oder am besten den ganzen Clip neu erstellen.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-01-2006, 18:53   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 41
@ Frager: Besten Dank für deine Antwort ich habe das auch schon ausprobiert und die Anzahl der Bilder auf Null gesetzt. Aber leider klappt es nicht so wie ich es ausprobiert habe.

Momentan sieht es so aus: Das vor dem neuen Funtkionsaufruf die MC's removed werden, bevor die MC's neu attached werden. Diese Funktion hat mir Warrantmaster bei meinen ersten Problemen mit dem yugop erstellt. Ich habe inzwischen einiges abgeändert jedoch die Pfade etc. angepasst, so dass die MC's vor bevor neu attached werden eigentlich nicht mer vorhanden sein sollten.

Nun gibt es die Möglichkeit dies zu überprüfen, ob die MC's tatsächlich nicht mehr vorhanden sind?

Zitat:
Außerdem solltest du alle MCs in "catalogo.yugop" removen oder am besten den ganzen Clip neu erstellen.
Wie meinst du das den ganzen Clip neu erstellen. Den Clip "yugop" liegt auf _root wird jedoch nicht mittels AS erstellt.

Mfg
Globi468 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 02:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele