| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 9
| Bitte, Bitte gebt mir einen Tip!
Hallo Zusammen! ... sitze hier schon seit geraumer Zeit an einen Problem. Und zwar sitze ich gerade an einem Slider-Skript das später Bilder und eine kurze Beschreibung dazu animiert (von rechts nach links). Die Daten sollen später von einen PHP-Skript eingelesen werden, aber das ist im Moment nicht das Problem. Offline funktioniert alles bestens nur online werden die Bilder nicht richtig geladen. Ich denke das ist ein Timing / Preloading Problem. Das Script enthält z.Zt. kein Preeloader, denn ich habe keine Ahnung wie / wo ich einen Preeloader reinsetzen soll! Ich würde mich seeehr über einen Tip freuen!!!! Anbei das Script: Code: // #### Definition der Variabeln - begin ####################
// Ziel bei klick auf ein Bild
var ziel = "_blank";
// Breite des Flashfilms
var breite = 380;
// Höhe des Flashfilms
var hoehe = 140;
// Bilderanzahl
var a = 12;
// Zähler variable
var i = 1;
// Geschwindigkeit
var speed = 3;
// Abstand zw. den Bildern
var abstand = 16;
// y Position
var starty = 55;
// Path zu den Bildern
var pfad = "";
// initialisierung der Variable
var filename = "";
// Berechne die mitte der Bilder
var mitte = breite/2;
// initialisierung der Variable
var laenge;
// Latin-1
System.useCodepage = true;
// Path PHP-Skript zum Daten einlesen
var pInhalt = "aktionswagen.php";
// Path PHP-Skript zum Daten senden
var pInhaltSenden = "aktionswagen_details.php";
// #### Definition der Variabeln - ende ####################
//
// Funktion Daten laden
/*function ladeDaten(pInhalt) {
meineVars = new loadVars();
meineVars.onLoad = function(success) {
if (success) {
derTempString = new String(name);
nameArray = derTempString.split(",");
anzahlArray = nameArray.length;
delete derTempString;
trace(anzahlArray);
//
derTempString = new String(preis);
preisArray = derTempString.split(",");
anzahlPreisArray = preisArray.length;
delete derTempString;
trace(anzahlPreisArray);
//
derTempString = new String(bildurl);
bildurlArray = derTempString.split(",");
anzahlBildurlArray = bildurlArray.length;
delete derTempString;
trace(anzahlBildurlArray);
//
derTempString = new String(urlLink);
urlLinkArray = derTempString.split(",");
anzahlUrlLinkArray = urlLinkArray.length;
delete derTempString;
trace(anzahlUrlLinkArray);
} else {
trace("Daten konnten nicht geladen werden...");
}
};
meineVars.load(pInhalt);
}*/
maske._height = hoehe;
maske._width = breite;
maske.swapDepths(1000);
this.setMask(maske);
ladenBilder = function () {
if (i<=a) {
filename = i+'.jpg';
this.createEmptyMovieClip('pic'+i, i);
this['pic'+i].loadMovie(pfad+filename, 0);
this.onEnterFrame = function() {
this['pic'+i]._y = starty;
this["pic"+i]._alpha = 70;
this['pic'+i]._x = this['pic'+(i-1)]._x+this['pic'+(i-1)]._width+1+abstand;
delete this.onEnterFrame;
i++;
ladenBilder();
};
} else {
this.laenge = this._width;
for (var k = 1; k<=a; k++) {
// Erstelle Textfeld Nr. 1
_root['pic'+k].createTextField("txt_name"+k, 1, -5, -30, 90, 30);
_root['pic'+k]['txt_name'+k].multiline = true;
_root['pic'+k]['txt_name'+k].wordWrap = true;
_root['pic'+k]['txt_name'+k].html = false;
_root['pic'+k]['txt_name'+k].selectable = false;
_root['pic'+k]['txt_name'+k].autoSize = "none";
_root['pic'+k]['txt_name'+k].border = false;
_root['pic'+k]['txt_name'+k].htmlText = "TestName der Autos"+k;
// Textformatierung Nr. 1 - begin
tformat1 = new TextFormat();
tformat1.color = 0x000000;
tformat1.font = "Verdana";
tformat1.size = 10;
tformat1.align = "center";
tformat1.bold = true;
_root['pic'+k]['txt_name'+k].setTextFormat(tformat1);
// Erstelle Textfeld Nr. 2
_root['pic'+k].createTextField("txt_preis"+k, 2, 0, 60, 80, 20);
_root['pic'+k]['txt_preis'+k].multiline = false;
_root['pic'+k]['txt_preis'+k].wordWrap = false;
_root['pic'+k]['txt_preis'+k].html = false;
_root['pic'+k]['txt_preis'+k].selectable = false;
_root['pic'+k]['txt_preis'+k].autoSize = "none";
_root['pic'+k]['txt_preis'+k].border = false;
_root['pic'+k]['txt_preis'+k].htmlText = "TestPreis"+k;
// Textformatierung Nr. 2 - begin
tformat2 = new TextFormat();
tformat2.color = 0x000000;
tformat2.font = "Verdana";
tformat2.size = 10;
tformat2.align = "center";
tformat2.bold = false;
_root['pic'+k]['txt_preis'+k].setTextFormat(tformat2);
// Href für jeden MC generieren
this['pic'+k].id = k;
this['pic'+k].onPress = function() {
getURL("aktionswagen_detail.php.php?id="+k, "_blank");
};
this["pic"+k].onRollOver = function() {
this._alpha = 99;
};
this["pic"+k].onRollOut = function() {
this._alpha = 70;
};
}
move();
}
};
move = function () {
this.onEnterFrame = function() {
var x = this._xmouse;
var y = this._ymouse;
var h = hoehe;
var b = breite;
for (var i = 1; i<=a; i++) {
var mc = this['pic'+i];
mc._x += speed1;
if (mc._x>=breite) {
mc._x -= laenge;
}
if (mc._x<=-mc._width+1) {
mc._x += laenge;
}
}
if ((x>0 && x<(mitte-20) && y>0 && y<h) || (x<breite && x>(mitte+20) && y>0 && y<h)) {
var r = this._xmouse-mitte;
var sp = -r;
speed1 = sp/(10*speed);
} else {
speed1 = 0;
}
};
};
ladenBilder(); |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
da hat wohl niemand lust, dieses ellenlange script zu lesen ;-) lade doch bitte eine fla hoch. (beim schreiben unten: anhänge verwalten)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 9
| Nächster Versuch aber diesmal mit Anhang
Hallo! Danke für den Tipp, Du hast recht ich hätte gleich schon das fla mit anhängen sollen. Ich habe jetzt versucht die tolle preloader class (von bokel hier aus dem Forum) mit einzubauen. Nur ist mir das ehrlich gesagt zu hoch und ich verstehe diese nicht so richtig. Local funktioniert das Script aber online nicht! Ist mein Ansatz vielleicht total falsch? Ich würde mich sehr über "hilfe" freuen da ich mich mit Actionscript noch nicht besonders gut auskenne. Danke! |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
ich hab natürlich weder zeit noch lust alles durch zu sehen. folgendes ist mir aufgefallen: a) ich programmiere sogut wie garnicht objektorientiert und wenn ich sehe, welchen "primborium" du da aufgebaut hast. das würde ich normal programmiert mit 1/4 der befehlszeilen hinbekommen. b) wegen 4 k brauchst keinen preloader und wenn die bilder nach und nach reinkommen hat das den selben unterhaltungswert, wie ein preloderbalken. c) move() steht in laden(). du wartest also nicht bis alle geladen sind! die nachzügler werden aber da positioniert wo sie hingehören würden, wenn noch nicht gemovt worden wäre. ja, das ist ein timing-problem, aber aufgrund deines programmierungs-ablaufes. erst moven, wenn die mannschaft komplett ist.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 9
|
Hallo und danke für die Antwort! Der Code ist bestimmt nicht besonders gut, aber jeder muss ja mal anfangen :-) Ich denke schon das ich so etwas wie einen Preloader brauche. In dem Flashfilm sieht man ja nur immer 4 Bilder auf einmal und ich denke wen dann noch 20 Bilder nachgeladen werden und es passiert nichts.... ist doch dann auch nicht so gut, oder? ... danke für den Tip mit move() ec. mal schauen was ich ändern kann...oder ich fange noch mal von vorne an |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
"..und wenn die bilder nach und nach reinkommen hat das den selben unterhaltungswert.." 1. bild komplett, links anzeigen 2. bild komplett, alle nach rechts schieben und das da an 1. stelle 3. bild komplett, alle nach rechts schieben und das da an 1. stelle ...
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 9
|
ich bin jetzt gerade dabei das ganze Script um zu schreiben. Auf den Preloader habe ich verzichtet und durch diese Funktion ersetzt. Ist bestimmt auch wieder zu kompliziert programmiert, aber so wie es aussieht funktioniert es wenigstens, hoffe ich :-)) Danke noch mal! Code: ladeBilder = function () {
filename = x+'.jpg';
this.createEmptyMovieClip('pic'+x, x);
this['pic'+x].loadMovie(filename, 0);
this.onEnterFrame = function() {
if (this['pic'+x]._width>0) {
delete this.onEnterFrame;
if (x<a) {
trace("Bild fertig geladen"+this['pic'+x]);
x++;
ladeBilder();
} else {
// start Funktion posi();
posi();
}
}
};
}; |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |