| |||||||
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: 4
| Flash gibt falsche Höhe (_height) eines Movieclips aus
Mein Problem: Flash gibt in ca. 1 von 5 Versuchen eine geringere Höhe eines Movieclips aus, als in den anderen vier Fällen, wo sie richtig ausgegeben wird. Ich habe einen MC "B", der in einen MC "A" nachgeladen wird. In MC A liegt ein selbstgebauter Scrollbar, dessen Funktionalität von der Höhe des MC B abhängig ist. Ich lese die Eigenschaft _height von MC B aus, und bekomme hierfür meistens den Wert 100.95, manchmal aber den Wert 50.00. In letzterem Fall funktioniert der Scrollbar natürlich falsch - man kann nur bis zur Hälfte des MC B scrollen. Die Eigenschaft _height wird erst gelesen, nachdem MC B vollständig geladen ist (_framesloaded = _totalframes). Alternativ habe ich versucht, die Höhe über getbounds oder getProperty(MCB, _height) zu bekommen, auch hier sind die Werte falsch. Auch das Setzen von _rotation = 0 vor dem Auslesen hilft nicht. In der Entwicklungsumgebung (Flash selbst) tritt der Fehler nicht auf. Weiß jemand weiter? Was soll ich noch testen? Danke für eure Hilfe! Geändert von fkaiser (13-01-2005 um 17:56 Uhr) |
| | |
| | #3 (permalink) | |
| oEF(etischist) Registriert seit: Dec 2003 Ort: muc
Beiträge: 664
|
Du hast Dir die Antwort bereits selbst gegeben : Zitat:
Also, Eigenschaften erst auslesen, wenn der Ladevorgang beendet ist. solo | |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 4
|
Das FLA kann ich leider nicht hochladen. Außerdem ist es sehr komplex (da noch weitere MCs in MCs in MCs sind, dauert also ne Weile, bis man da durchblickt. @soloFlash: Ich habe mir die Antwort selbst gegeben, aber ich berücksichtige sie auch schon :-). Ich lese die Eigenschaft _height jetzt schon erst aus, wenn (_framesloaded = _totalframes). Oder hab ich was falsch verstanden? Ich habe auch versucht die Streaming-Funktion der Entwicklungsumgebung zu nutzen, allerdings kann ich dort nur den Hauptfilm (MC A) ausbremsen. Das Laden von MC B wird immer mit voller Geschwindigkeit gemacht. Mein AS zu diesem Zweck: if(needInit && (mcb._framesloaded = mcb._totalframes) && (mcb._height > 0)) { trace(mcb._height); initScrollbar(); needInit = false; } |
| | |
| | #5 (permalink) |
| oEF(etischist) Registriert seit: Dec 2003 Ort: muc
Beiträge: 664
|
ok, das hab ich dann flasch verstanden Gut, dann erzähl mal, wie die MCs geladen werden. Sind das externe swfs, oder werden sie per attach geladen, oder wie machst Du es? Poste mal den Code, wo Du lädst, und wo Du wartest, bis der MC geladen ist! grüße, solo |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jan 2005
Beiträge: 4
|
Das Actionscript des MC A: Code: loadContent(_parent.sec, _parent.mid, _parent.sid, mcb);
function loadContent(sec, mid, sid, target, level) {
//debug:
sec = "kunden"; sid = "home";
this.ssid = _parent.ssid;
this.cURL = new String();
//[...] Zusammenbau des Strings der den richtigen Pfad zum MCB enthält
loadMovie(cURL, mcb);
//Reset level
_root.level = 0;
} Das Actionscript, das den Wert _height zum debuggen ausgibt (ist dem Scrollbar zugewiesen): Code: onClipEvent(enterFrame){
//Scrollbar may only be initialized if content movie (object mcb) is loaded
if(needInit && (mcb._framesloaded = mcb._totalframes) && (mcb._height > 0)) {
trace('1: ' + mcb._height);
_parent.debug = "1: " + mcb._height;
initScrollbar();
needInit = false;
}
//[...] Weiterer Code, der die Funktionalität des Scrollbar erzeugt, aber nicht auf mcb._height zugreift
} |
| | |
| | #7 (permalink) |
| oEF(etischist) Registriert seit: Dec 2003 Ort: muc
Beiträge: 664
|
also, dann schauen wir mal: es muss == nicht = heissen: ActionScript:
anstelle von Frames kannst Du auch die Bytes abfragen, schau dich mal im Forum danach um. Ansonsten siehts richtig aus. Vielleicht lags am '==' ? grüße, solo |
| | |
| | #9 (permalink) | |
| Neuer User Registriert seit: Jan 2005
Beiträge: 4
| Zitat:
Die Lösung H|Ks Hinweis war ein klasse Tipp (loadMovie, onLoad, _width, _height und _visible). Die kurze Zusammenfassung: _height ist erst verfügbar, nachdem der Clip geladen und initialisiert wurde. Und das geschieht irgendwann im neuen Film. Ich habe also im MC B eine Variable eingeführt, die erst auf TRUE gesetzt wird, wenn der Frame geladen ist. Diese frage ich nun zusätzlich zu den og. Punkten ab und lese erst danach die Eigenschaft _height aus. (Dies ist die vereinfachte Vorgehensweise des Links.) Bei mir zusätzlich das Problem: der erste Frame des MC B ist nur 20pix hoch (bzw. der Film) in Frame 2 werden dann Inhalte angezeigt, die 100.95pix hoch sind. Die Höhe darf also auch erst ausgelesen werden, wenn Frame 2 erreicht wird: Ich setze einfach erst in Frame 2 die og. Variable auf TRUE. Danke für eure Hilfe! | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |