Flashhilfe.de - Flash Community

Probleme mit Preloader [Flash CS4]

 


AntwortenRegistrieren Seite1  

phrozenone#1
Benutzerbild von phrozenone
Beiträge: 27
Registriert: Oct 2010

09.10.2010, 01:26

Habe diverse Flash Games programmiert und dazu einen Preloader der in der Hauptszene in einem separatem Layer liegt

der MovieClip as ist folgender:
   _root.Prozent = math.ceil ((_framesloaded/_totalframes)*100);
   _root.iPreloader.gotoAndStop(Prozent);

im letzten Frame (100) des MC des Preloaders springe ich dann per _root.gotoAndPlay(2); in das Spiel selbst.

So nun zum Problem: das ganze habe ich offline getestet und hat auch wunderbar geklappt, allerdings hab ich das ganze nun online gestellt und da bekomm ich erstmal nen weissen Screen angezeigt, dann lädt der Preloader nach zwischen 5 - 10s erst. Was für mich eigentlich soviel bedeutet das der Preloader eigentlich nicht richig funktioniert. Das ganze wird dann noch bemerkbar bei einem größeren Projekt wo nach klick auf den Gamestart Button der bildschirm weiss bleibt (es wird ein Timer gestartet der 30s läuft und dann in einen Spiel zu Ende Screen springt) und dann direkt ans Ende des Films springt ... das eigentliche Spiel bleibt aus. Hoffe es kann jemand helfen wäre echt Klasse wenn das endlich funktionieren würde! Wäre es vielleicht sogar ratsam eine neue Szene für den Preloader zu erstellen, wenn ja wie wird das geregelt welche Szene zuerst startet??
Werbung
Beiträge: 0
Registriert: Feb 2016


phrozenone#2
Benutzerbild von phrozenone
Beiträge: 27
Registriert: Oct 2010

Themenautor/in

09.10.2010, 13:04

Es scheint auch das er nachdem ich den Playgame Button gedrückt habe nochmal was lädt, obwohl das ganze eigentlich geladen sein sollte
jens108#3
Benutzerbild von jens108
Beiträge: 85
Registriert: Aug 2010

09.10.2010, 17:25

Magst du mal den gesamten Script zeigen, der in Schlüsselbild 1 liegt? So, wie er da steht, wird er nur einmal ausgeführt. Lokal mag das genügen, wenn die Daten schon da sind - online dauert es länger und man muss seinen Preloader mit einem entsprechenden Event (in AS2 würde ich da einfach _root.onEnterFrame nehmen) aktualisiert.

Oh, und von der Verwendung von Szenen kann ich eigentlich nur dringend abraten!
Du möchtest Flash und AS3 lernen? Schau mal bei meinen Flashtutorials unter www.tutorialflash.de vorbei! Neuste Tutorialreihe: Sicherheit deiner Flashanwendungen. Schutz vor Hacks und Cheats, inkl. Anleitungen wie die Hacks funktionieren.
Geändert von jens108 am 09.10.10 um 17:26 Uhr
phrozenone#4
Benutzerbild von phrozenone
Beiträge: 27
Registriert: Oct 2010

Themenautor/in

12.10.2010, 14:19

Ja ich bekomm das mit dem as2 bzw as3 net so richtig hin, bin froh das ich den flash krawembel so gebacken bekomm .. hier mal das gesamte script

***************************** Actions Frame 1 **************************
function linkToMe():Void {
   getURL("http://www.adresse/main.html", "_blank");
}

var cmMenu:ContextMenu = new ContextMenu();
cmMenu.hideBuiltInItems();
cmMenu.customItems.push(new ContextMenuItem("Mein Link!", linkToMe, false, true));
this.menu = cmMenu;

stop();

if(!lvl) _root.lvl = 0; else _root.lvl = lvl;
_root.user = us;

*********************** Actions MovieClip mcPreloader ****************************
onClipEvent (load) {
   gesamt = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
   bereits = _root.getBytesLoaded();
   _root.Prozent = bereits*100/gesamt;
   mc_balken._width = prozent*2;
   _root.iPreloader.gotoAndStop(_root.Prozent);
}

dachte schon da ich als preloader auch en kleine effekt mit eingebaut hab das die pics davon zu groß sind also hab ich mal alles außer den preloadbalken und das blinken des loading textes entfernt, aber es schnurrt immernoch nicht so wie es soll
Werbung
Beiträge: 0
Registriert: Feb 2016


RustyCake#5
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

12.10.2010, 14:27

Ist irgendwelches attach-zeugs in der Bibliothek, also Sachen die mit "für ActionScript Exportieren" und "Exportieren ins erste Frame" ausgewählt?
Wenn ja, hast Du Dein Problem, das ganze Zeugs wird noch vor allem anderen geladen!!
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
phrozenone#6
Benutzerbild von phrozenone
Beiträge: 27
Registriert: Oct 2010

Themenautor/in

13.10.2010, 01:46

ne hab nachgeschaut wird nix für as oder frame 1 exportiert


hier nochmal ein kleiner Ausschnitt aus frame 3 in dem dann das eigentliche game abläuft
jetzt hab ich dann nur noch die 3 MovieClips die jeweils eine onClipEvent(load) und onClipEvent(enterFrame) haben wo sie positioniert werden und der hittest durchgeführt wird

hab die ganzen jpegs auch mal soweit wie möglich runterkomprimiert und eine swf größe von knapp 350kb, aber er macht trotzdem hin und wieder mucken und lädt zb nur den Hintergrund in frame 3 und der ganze rest fehlt, der für das game läuft dann nach 30s aus und er springt in den gameover oder stageclear screen

achso allerdings muss ich noch erwähnen das ich das ganze in etwa so in html/php einbinde:
ActionScript:
1
2
3
<object type="application/x-shockwave-flash" data="include/shooter.swf?lvl=<?php echo $level->shot; ?>&us=<?php echo $session->username ?>" width="550" height="400">
            <param name="movie" value="incude/shooter.swf" />
         </object>


weil ich es nicht gebacken bekommen hab bei der generierten html die parameter ?lvl= ... so einzusetzen das es funktioniert, vielleicht hängts ja schon daran

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
stop();

_root.Pts = 0;
_root.Pts2 = 0;
_root.gtime = 30;

MovieClip.prototype.setEnemyPos = function() {
     this.ealive = true;
     this.forward_speed = random(2+(_root.lvl/2)) + 2;
     this.dir = random(2);
     this._x = (this.dir == 0) ? -50 : 600;
     this._y = random(200) + 60;
     this._xscale =(this.dir == 1) ? 100: -100;
     
     if(this._y < 100){
        this._yscale = 100-(60/(this._y)*100)/1.4;
        this._xscale = this._yscale;
     } else {
        this._yscale = 100-(100/(this._y)*100)/4;
        this._xscale = this._yscale;
     }
}

MovieClip.prototype.setTargetPos = function() {
     this.talive = true;
     this.forward_speed = random(3+(_root.lvl/2)) + 3;
     this.dir = random(2);
     this.dir = (this.dir == 0) ? 1 : 0;
     this._x = (this.dir == 0) ? -50 : 600;
     this._y = random(120) + 60;
     this._xscale =(this.dir == 0) ? 100: -100;
     if(this._y < 100){
        this._yscale = 100-(60/(this._y)*100)/1.4;
        this._xscale = this._yscale;
     } else {
        this._yscale = 100-(100/(this._y)*100)/4;
        this._xscale = this._yscale;
     }
}

MovieClip.prototype.setMedPackPos = function() {
     this.heal = false;
     this._x = Random(400) + 50;
     this._y = Random(120) + 60;
     if(this._y < 100){
        this._yscale = 100-(60/(this._y)*100)/1.4;
        this._xscale = this._yscale;
     } else {
        this._yscale = 100-(100/(this._y)*100)/4;
        this._xscale = this._yscale;
     }
}

MovieClip.prototype.moveEnemy = function() {
     if(this.dir == 0) {
        if(this._x < 550) {
           this._x += this.forward_speed;
           this._y += _root.down_speed;
        } else {
           this.setEnemyPos();
        }
     } else {
        if (this._x > -50) {
           this._x -= this.forward_speed;
           this._y += _root.down_speed;
        } else {
           this.setEnemyPos();
        }
     }
}

MovieClip.prototype.moveTarget = function() {
     if(this.dir == 0) {
        if(this._x < 550) {
           this._x += this.forward_speed;
           this._y += _root.down_speed;
        } else {
           this.setTargetPos();
        }
     } else {
        if (this._x > -50) {
           this._x -= this.forward_speed;
           this._y += _root.down_speed;
        } else {
           this.setTargetPos();
        }
     }
}

var nrEnemys = Random(1)+1;
for (i = 1; i < nrEnemys; i++)
{
     _root.iEnemy.duplicateMovieClip("iEnemy" + i, _root.getNextHighestDepth());
}

var nrTargets = Random(2)+2;
for (i = 1; i < nrTargets; i++)
{
     _root.iTarget.duplicateMovieClip("iTarget" + i, _root.getNextHighestDepth());
}

Crosshair.swapDepths(1000);

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Ein PC und drei Monitore [Flash CS5] 10.09.2017 - Herzenslicht
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de