Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-11-2006, 15:46   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
geladenen Film zentrieren

Hi leutz,

Hab einen geladenen MC in einen Container gepakt und will den Container nun Zentrieren auf der Bühne wenn fscommand = true is. Hab hier viel gesucht und auch einiges gefunden.

1. MC muss fertig geladen sein, also preloaden sonst gehen witdh und height nicht.
2 Die Berechnung habe ich ebenfals gefunden

Hab dann mein Script nach den Schnipseln und Infos wie folgt aufgebaut.
PHP-Code:
fscommand("fullscreen"true);

loadMovie("mc1.swf"this.mc1);
this.mc1.onEnterFrame = function(){
if (
this.mc1.getBytesLoaded()>=4) { /*hier weis ich net warum die 4 da steht :( */ 
        
lo this.mc1.getBytesLoaded(); 
        
to this.mc1.getBytesTotal(); 
        
pr Math.ceil((lo/to)*100); 
        
trace(pr); 
        if (
pr>=100) { 
            
delete this.onEnterFrame
            
trace("huhu");
            
this.mc1._x = (Stage.width /2)-Math.round(this.mc1._width/2);
            
this.mc1._y = (Stage.height /2)-Math.round(this.mc1._height/2);
        }    
    }

Die Funktion wird wunderbar ausgeführt, aber er stellt meinen Container net zentriert Trace wird schön angezeigt. Ich sitz aufm Schlauch.

Worin liegt hier der Fehler?? Kann mir jemand helfen?

grezz Rooky
xxRookYxx ist offline   Mit Zitat antworten
Alt 10-11-2006, 11:30   #2 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
ich hab auf die schnelle keine ahnung, wie du überhaupt durch deinen preloader durchkommst, aber: nachdem du deine mc1.onEnterFrame benutzt, darfst du darin nicht auf this.mc1 gehen, sondern auf this...

Code:
trace(this._x);
this._x = (Stage.width /2)-Math.round(this._width/2); 
this._y = (Stage.height /2)-Math.round(this._height/2); 
trace(this._x);
__________________
The map is NOT the territory.

Geändert von Zett (10-11-2006 um 11:32 Uhr)
Zett ist offline   Mit Zitat antworten
Alt 10-11-2006, 14:51   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
Das hatte ich auch schonmal Probiert.
Trace gibt hierbei 275px aus. Aber mittig is es nicht. Ich dreh noch durch. Dacht ich hätts endlich mal verstanden.

also in der Reihenfolge:
100
huhu
275

Was kommt dir Koscha for beim Preload?

greez Rooky und thx for Help
xxRookYxx ist offline   Mit Zitat antworten
Alt 10-11-2006, 19:31   #4 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
mx2004 hat einen eigenen MovieClipLoader zur verfügung, den würd ich an deiner stelle nehmen:

Code:
fscommand("fullscreen", true); 

this.createEmptyMovieClip("mc1",5);
this.mc1.mcLoader = new MovieClipLoader();

var loadListener = new Object();
loadListener.onLoadInit = function(target_mc:MovieClip)
{
  target_mc._x = (Stage.width /2)-Math.round(target_mc._width/2);
  target_mc._y = (Stage.height /2)-Math.round(target_mc._height/2); 
}

this.mc1.mcLoader.addListener(loadListener);
this.mc1.mcLoader.loadClip("mc1.swf", this.mc1);
allerdings, was mir aufgefallen ist: Stage.width gibt im flash-internen test nicht den richtigen wert zurück, bei mir 700 statt der eingestellten 550... Stage.height ditto. bem swf selbst passt's dann wieder - vielleicht ist das das problem.
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 11-11-2006, 00:07   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
Thumbs up

Very THX erst aml wieder von meiner Seite.

Ok den MovieClipLoader hab ich schon mal gesehen. Dachte aber des es mit nem erstellten MC auch gehen würde. Hab dein Script noch nicht getestet, mach ich morgen. Was mir nur aufgefalen ist, das du den preload weg lässt. Warum das?? Laut Forum muss doch gewusst werden ob der MC voll geladen ist oder nicht?!

Ja klar es gibt viele Lösungen dafür. Hab mich mit dem MobieClipLoader und Listener und Init noch nicht beschäftigt. weiss also grad noch nicht was die überhaupt machen. Les ich aber nach. Gibt ja ne Hilfe in 2004.

Wa die Breite und Höhe im Vorschau Fenster angeht, glaub ich auch des es da an der Vorschau liegt und Flas eigentlich gar keinen Fullscreen Befehl erkennt. Da es ja keiner is . Kann schon sein des es da nur geht wenn man die swf Datei extern Startet.

Morgen Teste ich das mal und beles mich mal. Dann schreib ich noch mal obs hinhaut und ich es verstanden habe. Allerdings wie gesagt las ich im Forum, des man nen Preloader vorschalten sollte. Naja wenns so geht is ja auch gut.

Ich hoffe ich verstehs auch....

Als denn THX und Greez Rooky

Edit: Aber was wenns in Flash MX gemacht wäre?? Dann müsste es doch so gehen oder?

Geändert von xxRookYxx (11-11-2006 um 00:09 Uhr)
xxRookYxx ist offline   Mit Zitat antworten
Alt 13-11-2006, 08:28   #6 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
das schöne am moviecliploader ist doch, dass der preloader schon eingebaut ist, man muss ihn nur im zugehörigen listener definieren...

Code:
loadListener.onLoadProgress = function(target, bytesLoaded, bytesTotal) 
{
    trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
}
am besten in der actionscript-referenz nachsehen, is relativ gut dokumentiert...

gruß,
Z.
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 14-11-2006, 07:24   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
Vielen Dank noch mal.

Eine Frage hätt ich aber noch dazu. Wie wäre des in älteren Versionen?? Z.B. MX. Da gibts ja keinen MovieClipLoader. Da wäre es doch so wie oben eigentlich richtig. Abgesehen von der Zeile.

PHP-Code:
if (this.mc1.getBytesLoaded()>=4) { /*hier weis ich net warum die 4 da steht :( */ 
Viell haste da ja auch noch nen Tip für. Hab leider immerzu verschiedene Versionen und möchte gerne ne Umsetzung für beide. Also 2004 und MX.

Danke schon mal.

Gruß Rooky
xxRookYxx ist offline   Mit Zitat antworten
Alt 14-11-2006, 08:49   #8 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
hmm... prinzipiell erkenn ich den wirklich tieferen sinn dieser zeile auch nicht, sie schadet aber auch nicht. sie überprüft, ob das file überhaupt schon geladen wird, bevor das script die percentage zu überwachen beginnt. den wert kann man auch auf 1 oder 2 setzen, denk ich...

außerdem wär's sauberer, getBytesLoaded(); nur 1x aufzurufen und zu speichern, also:

Code:
var nLoaded = this.mc1.getBytesLoaded();
if (nLoaded>=2) {
        lo = nLoaded;
        to = this.mc1.getBytesTotal();
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 14-11-2006, 16:49   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
OK, wenn sie net schaded, dann sollte es ja auch so gehen.
Ich schreibs und probiers morgen noch mal.

PHP-Code:
if (this.mc1.getBytesLoaded()>=4
Ich glaub auch des ne 1 reichen würde, da wie du schon sagst ja nur geschaut wird ob sich überhaupt was tut (laden) und nicht wieviel.
Soweit versteh ich das Script auch.

Naja wie gesagt ich probiers morgen noch mal am anderen PC. Und melde mich wenns geklappt hat.

In diesem Sinne bis morgen. Ich sag bescheid...

greez Rooky
xxRookYxx ist offline   Mit Zitat antworten
Alt 15-11-2006, 09:32   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
Huhu,

Ja ich weis, des is ganz schön hart mit mir

Hab des ganze jetzt noch mal umgemodelt mit deinen Tipps.

PHP-Code:
fscommand("fullscreen"true); 

loadMovie("zuladen.swf"this.mc1);/*hab jetzt ne andere swf genommen net wundern*/
var nLoaded this.mc1.getBytesLoaded();
this.mc1.onEnterFrame = function(){ 
if (
nLoaded>=2) {
        
lo nLoaded;
        
to this.mc1.getBytesTotal();  
        
pr Math.ceil((lo/to)*100);  
        
trace(pr);/*hier kommen schon keine Prozentwerte mehr raus */
        
if (pr>=100) {  
            
delete this.onEnterFrame;  
            
trace("huhu");/*dieser Trace funzt*/ 
            
this.mc1._x = (Stage.width /2)-Math.round(this.mc1._width/2); 
            
this.mc1._y = (Stage.height /2)-Math.round(this.mc1._height/2);
            
trace(this.mc1._x);/*undefiniert Wert wird ausgegeben*/
        
}     
    } 

Also sagt mir das 1. der Preload net funzt und 2. dadurch glaube ich die Position nicht bestimmt werden kann. Mann ich glaub ich schmeiss den Misst weg. Kann doch net sein, das ich da irgendwie immer noch was falsch mache. Ich lese und lese und lese in der Hilfe, denke ich verstehs und dann...

Man ich gebs echt bald auf.

frustrierte Grüße Rooky

Geändert von xxRookYxx (15-11-2006 um 09:39 Uhr)
xxRookYxx ist offline   Mit Zitat antworten
Alt 15-11-2006, 10:08   #11 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
okay, ein letzter anlauf...

das problem könnte darin liegen, dass du das onenterframe des mcs benutzt, in das du rein lädst... da hab ich keine große erfahrung, ich hab immer einen zusätzlichen mc gebaut, der den anderen überwacht:


Code:
this.createEmptyMovieClip("mcTemp",10);
this.mcTemp.onEnterFrame = function()
{ 
	var mc1=this._parent.mc1; //pointer auf das zu überwachende mc
	var lo = mc1.getBytesLoaded(); 		
	if (lo>=2)
	{
		to = mc1.getBytesTotal();   
		pr = Math.ceil((lo/to)*100);   
		trace(pr+"%");
		if (pr>=100)
		{   
			trace("huhu");/*dieser Trace funzt*/  
			mc1._x = Math.round((Stage.width /2)-(mc1._width/2));  
			mc1._y = Math.round((Stage.height /2)-(mc1._height/2)); 
			trace(mc1._x);/*undefiniert Wert wird ausgegeben*/ 
			removeMovieClip(this);
		}      
	}  
}

also bei mir funkt das...
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 16-11-2006, 07:36   #12 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
Moin Moin Zett,

Hab des ganze grad getestet und auch noch mal in der Referenz nachgelesen.

Also zum Teil funzt des bei mir. Hab mich auch an dein Script gehalten. Dacht mir erst mal muss es ja so funzen, und später hätt ichs noch mal mit nem leeren erstellten MC versucht.
Aber.... (nicht schlagen bitte). Irgendwie richtet Flash den MC komisch aus. Mein Backround des Hauptfilms ist nicht zu sehen. In _x wirds schön Mittig dargestellt. In _y dagegen nicht. (Rechner aus Fenster Schmeiss).


Ich werds mal anhängen. Viell erkennst da den Fehler schneller. Wäre nett wenn du noch ein klein wenig Geduld mit mir hättest.

Vielen Dank Rooky
Angehängte Dateien
Dateityp: zip zentriert.zip (4,6 KB, 8x aufgerufen)
xxRookYxx ist offline   Mit Zitat antworten
Alt 16-11-2006, 08:09   #13 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
hab ich doch schon lange... kannst von glück reden, dass ich sachen, die ich anfange, in der regel auch durchziehe...

dein script will zwar nach mc1 laden, dieses mc wird aber nicht erstellt...

ersetz mal

Code:
loadMovie("zuladen.swf", this.mc1);
durch

Code:
this.createEmptyMovieClip("mc1",5);
this.mc1.loadMovie("zuladen.swf");
sieht bei mir dann so aus:
Angehängte Grafiken
Dateityp: jpg zentriert.jpg (46,5 KB, 10x aufgerufen)
__________________
The map is NOT the territory.

Geändert von Zett (16-11-2006 um 08:10 Uhr)
Zett ist offline   Mit Zitat antworten
Alt 17-11-2006, 08:20   #14 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Erfurt
Beiträge: 69
So langsam geb ichs echt auf Zett. Hab des jetzt genau so gemacht wie du es mir gesagt hast. Hab nix eigenes gemodelt und mich strickt an deine Anweisung gehalten.

Aber der Film is jetzt oben link inner Ecke. Wieso gehtn das nicht? Spinnt hier viell das MX von der Schule rum?

Ich weis mir echt nicht weiter zu helfen, obwohl ich doch verstehe was du mir erklärst und jetzt genau weis was da vorgeht in dem Script.

son misst aber auch....

greez Rooky
Angehängte Grafiken
Dateityp: jpg vroschau.jpg (9,3 KB, 0x aufgerufen)
xxRookYxx ist offline   Mit Zitat antworten
Alt 17-11-2006, 09:15   #15 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
okay...
ich häng meine 'funktionierende' version mal an. versuch das html oder das swf - wenn die nicht klappen, ist echt was gehörig im argen... glaub ich aber nicht, meistens übersieht man dann doch irgendeinen kleinen fehler.
Angehängte Dateien
Dateityp: zip zentriert.zip (4,4 KB, 20x aufgerufen)
__________________
The map is NOT the territory.
Zett 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 14:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele