Volle CPU Auslastung beim ausführen der SWF [Flash 11]
| Beiträge: 3 Registriert: Sep 2012
| 11.09.2012, 10:29
Hallo Flash Freunde,
ich arbeite an einem interaktiven Menu mit 30 Buttons, alles hat wunderbar funktioniert bis ich den 19. Button als Movieclip auf die Bühne gelegt habe sobald ich das dann exportiere als swf und mit der Maus über die Buttons gehe schisst die CPU Auslastung auf 95%
hier ist mein Basis script:
button_as2.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_as2');});
button_as2.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_as2');});
button_email.addEventListener(MouseEvent.MOUSE_OVE R,function(){play_clip('in','clip_email');});
button_email.addEventListener(MouseEvent.MOUSE_OUT ,function(){play_clip('out','clip_email');});
button_fax.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_fax');});
button_fax.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_fax');});
button_infostore.addEventListener(MouseEvent.MOUSE _OVER,function(){play_clip('in','clip_infostore'); });
button_infostore.addEventListener(MouseEvent.MOUSE _OUT,function(){play_clip('out','clip_infostore'); });
button_zip.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_zip');});
button_zip.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_zip');});
button_report.addEventListener(MouseEvent.MOUSE_OV ER,function(){play_clip('in','clip_report');});
button_report.addEventListener(MouseEvent.MOUSE_OU T,function(){play_clip('out','clip_report');});
button_csv.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_csv');});
button_csv.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_csv');});
button_idoc.addEventListener(MouseEvent.MOUSE_OVER ,function(){play_clip('in','clip_idoc');});
button_idoc.addEventListener(MouseEvent.MOUSE_OUT, function(){play_clip('out','clip_idoc');});
button_x12.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_x12');});
button_x12.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_x12');});
button_oftp.addEventListener(MouseEvent.MOUSE_OVER ,function(){play_clip('in','clip_oftp');});
button_oftp.addEventListener(MouseEvent.MOUSE_OUT, function(){play_clip('out','clip_oftp');});
button_telebox.addEventListener(MouseEvent.MOUSE_O VER,function(){play_clip('in','clip_telebox');});
button_telebox.addEventListener(MouseEvent.MOUSE_O UT,function(){play_clip('out','clip_telebox');});
button_http.addEventListener(MouseEvent.MOUSE_OVER ,function(){play_clip('in','clip_http');});
button_http.addEventListener(MouseEvent.MOUSE_OUT, function(){play_clip('out','clip_http');});
button_ftp.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_ftp');});
button_ftp.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_ftp');});
button_soa.addEventListener(MouseEvent.MOUSE_OVER, function(){play_clip('in','clip_soa');});
button_soa.addEventListener(MouseEvent.MOUSE_OUT,f unction(){play_clip('out','clip_soa');});
button_sftp.addEventListener(MouseEvent.MOUSE_OVER ,function(){play_clip('in','clip_sftp');});
button_sftp.addEventListener(MouseEvent.MOUSE_OUT, function(){play_clip('out','clip_sftp');});
button_sigg.addEventListener(MouseEvent.MOUSE_OVER ,function(){play_clip('in','clip_sigg');});
button_sigg.addEventListener(MouseEvent.MOUSE_OUT, function(){play_clip('out','clip_sigg');});
button_ocsp.addEventListener(MouseEvent.MOUSE_OVER ,function(){play_clip('in','clip_ocsp');});
button_ocsp.addEventListener(MouseEvent.MOUSE_OUT, function(){play_clip('out','clip_ocsp');});
button_crypt.addEventListener(MouseEvent.MOUSE_OVE R,function(){play_clip('in','clip_crypt');});
button_crypt.addEventListener(MouseEvent.MOUSE_OUT ,function(){play_clip('out','clip_crypt');});
button_db2export.addEventListener(MouseEvent.MOUSE _OVER,function(){play_clip('in','clip_db2export'); });
button_db2export.addEventListener(MouseEvent.MOUSE _OUT,function(){play_clip('out','clip_db2export'); });
button_db2maps.addEventListener(MouseEvent.MOUSE_O VER,function(){play_clip('in','clip_db2maps');});
button_db2maps.addEventListener(MouseEvent.MOUSE_O UT,function(){play_clip('out','clip_db2maps');});
button_spoolmaps.addEventListener(MouseEvent.MOUSE _OVER,function(){play_clip('in','clip_spoolmaps'); });
button_spoolmaps.addEventListener(MouseEvent.MOUSE _OUT,function(){play_clip('out','clip_spoolmaps'); });
function play_clip(ziel:String, clip:String){
this[clip].gotoAndPlay(ziel);
}
stop();
und in meinen Movieclips selber sind jeweils einmal "7 Frames in" und "7 Frames out" Animation mit Markern und stop befehl. Ich verstehe nicht warum das erst beim 19. Clip passiert ? ich habe schon ausprobiert den 19. Clip einfach nur als ein Frame mit einem bild ohne Script auf die bühne zu legen dann passiert das selbe! habe ich etwas Grundlegendes übersehen oder gibt es Beschränkungen für die anzahl der Clips ? Weiss jemand Rat ?
Schönen Gruß
Hanzo | | | Beiträge: 186 Registriert: Jun 2009
| 11.09.2012, 10:54
hi,
eine limitierung schon bei 19 MCs ist nicht der grund.
du willst deine funktion "play_clip" aufrufen.
du erstellst aber in jedem eventListener eine eigene neue funktion (die genauso heisst, wie die, die du aufrufen willst). seltsame sache...
versuch doch mal so:
ActionScript:1 | button_spoolmaps.addEventListener(MouseEvent.MOUSE _OVER,play_clip);
|
damit rufst du die funktion auf.
jetzt musst du nur noch dafür sorgen, dass die funktion "individuell" reagiert.
zum ersten erhält sie keine parameter (das geht so leider nicht). also:
ActionScript:1 2 3 | function play_clip(e:MouseEvent){
...
}
|
welcher deiner buttons für den aufruf verantwortlich ist, erfährst du über
und ob es ein mouseOver- oder ein mouseOut-Event war, kannst du auch abfragen
(glaube ich)
jedenfalls kannst du auf die art innerhalb deiner einen funktion die notwendigen entscheidungen treffen, welche animation abgespielt werden soll. | Geändert von micB am 11.09.12 um 10:56 Uhr | |
| | Beiträge: 3 Registriert: Sep 2012
Themenautor/in
| 11.09.2012, 11:24
ich habs jetzt so probiert:
button_sigg.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
function play_clip(e:MouseEvent){
if(e.currentTarget.name =='button_sigg'){
clip_sigg.gotoAndPlay('in');
}
}
und trotzdem beim ausführen volle Auslastung sobald sich 19 movieclips auf der bühne befinden...
hat einer eine andere Idee ? | Geändert von Hanzo am 11.09.12 um 11:51 Uhr | |
| | Beiträge: 3 Registriert: Sep 2012
Themenautor/in
| 11.09.2012, 14:51
Sooooo ich hab es jetzt gelöst bekommen mit Hilfe meiner Kollegen und den Anregungen aus diesem und einem anderem Forum. Es lag an der Reihenfolge der Ebenen und das jedesmal eine neue Funktion erzeugt wurde jetzt läuft es wieder normal :)
button_as2.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_as2.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_email.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_email.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_fax.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_fax.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_infostore.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_infostore.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_zip.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_zip.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_report.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_report.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_csv.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_csv.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_idoc.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_idoc.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_x12.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_x12.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_oftp.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_oftp.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_telebox.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_telebox.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_http.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_http.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_ftp.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_ftp.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_soa.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_soa.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_sftp.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_sftp.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_sigg.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_sigg.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_ocsp.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_ocsp.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_crypt.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_crypt.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_db2export.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_db2export.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_db2maps.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_db2maps.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_spoolmaps.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_spoolmaps.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
button_spool.addEventListener(MouseEvent.MOUSE_OVER,play_clip);
button_spool.addEventListener(MouseEvent.MOUSE_OUT,play_clip);
function play_clip(e:MouseEvent):void
{
var ziel;
if(e.type==MouseEvent.MOUSE_OVER) ziel = "in";
if(e.type==MouseEvent.MOUSE_OUT) ziel = "out";
var clip_name = e.currentTarget.name;
clip_name = clip_name.ersetzen("button_", "clip_");
this[clip_name].gotoAndPlay(ziel);
}
String.prototype.ersetzen = function(suchstr, ersetzstr) {
return this.split(suchstr).join(ersetzstr);
};
stop();
Schönen Gruß
Hanzo | |
| Ähnliche Beiträge zum Thema | |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|