Mit loadMovie Film reinladen und ab bestimmten Frame starten lassen

Orphelina

Erfahrenes Mitglied
Hallo,

geht das denn? Den Film zu laden ist bisher kein Problem. Nun möchte ich den Film, sagen wir er ist 120 Bilder lang, von verschieden Buttons an verschiedenen Frames starten lassen. Also bei Button X läuft Bild 1- Bild 10 u.s.w.
Nur hab ich im Moment keinen Plan ob das überhaupt geht und wenn ja wie das gehen soll... Steh grad voll aufm Schlauch...

Kann mir jemand weiterhelfen?!

Gruß
 
Hi!

Natürlich geht das. Gleich wie du es auf der Hauptzeitleiste machst.

z.B.: _root.container.gotoAndPlay ("Zielframe");

in dem Fall soll container dein MC sein der die swf reinlädt.

Greetz

Roli
 
Hallo,

da es bei Bildern auch so ist, dass die erst komplett geladen sein müssen, hab ich jetzt mal folgendes probiert:
PHP:
function klickeventSub(issue, linkname, fileParent, linkParent){
	_root["linkSub"+issue].onRelease = function(){
	_root.attachMovie("menuback_grey", "menuback_grey", 109);
	_root.menuback_grey._x = 0;
	_root.menuback_grey._y = 101;
	setFileName(_root["linkSub"+issue].linkSubText.text, fileParent);
	createLeftMenuLink(_root["linkSub"+issue].linkSubText.text, linkParent);
	
        if(_root["linkSub"+issue].linkSubText.text == "MeinButton"){
		_root["linkSub"+issue].linkSubText.text = linkname;
		_root.createClassObject(Label, "Bild", 1001);
		_root["Bild"].text = "";
		_root["Bild"].createEmptyMovieClip("MCAni", 4002);
		_root["Bild"]["MCAni"]._x = 201;
		_root["Bild"]["MCAni"]._y = 211;
		_root["Bild"]["MCAni"].loadMovie("./pics/animation.swf");
		_root["Bild"].onEnterFrame = function() {
			if (_root["Bild"]["MCAni"].getBytesLoaded() > -1 && _root["Bild"]["MCAni"].getBytesLoaded() >= _root["Bild"]["MCAni"].getBytesTotal()) {
			_root["Bild"]["MCAni"].gotoAndPlay(120);
						
			delete this.onEnterFrame;
			}//end if
		} //end onEnterFrame
			
	}//end if 
			
}//end function on Press
Er lädt mir auch den Film, platziert ihn richtig- aber er fängt die Animation immer von vorne an und springt nicht an den gewünschten Frame und spielt ihn da ab... Ausserdem muss ich nach > -1 abfragen, sonst geht er mir gar nicht rein...
Ich hoffe es ist nachzuvollziehen?

Gruß
 
Zuletzt bearbeitet:
Hallo,

ich hab weiter fleissig rumprobiert aber bin immer noch nicht weiter. Ausser dass meine Ausgabe von gotoAndPlay "undefined" ist- warum auch immer?

Ich blick das nicht. Dabei lade ich das Ding doch vor? WArum ist mein Frame undefined?

Gruß
 
Okay,

nach noch mehr probieren, kopieren, Auslagern der onEnterFrame- Funktion, der Erkenntnis das man den Frame so gar nicht ausgeben kann, funktioniert es jetzt dass er zu dem jeweiligen Frame springt.

Weiteres Problem. Ich habe mehrere Buttons, die die Animation an verschiedenen Frames anspricht. Ich kann aber eigentlich nur einen Button drücken und danach geht er nicht mehr durch die if- Abfragen sondern schmeisst mich gleich über den else raus.
Wie kann ich es hinbekommen, dass ich beliebige Buttons beliebig oft drücke und immer das richtige passiert?!

Hier nochmal der aktuelle Codeausschnitt:
PHP:
function klickeventSub(issue, linkname, fileParent, linkParent){
		
//Hier werden das Bild und der MovieClip erzeugt in den die Animation geladen wird
_root.createClassObject(Label, "Bild", 1001);
_root["Bild"].text = "";
_root["Bild"].createEmptyMovieClip("MCAni", 1002);
_root["Bild"]["MCAni"]._x = -800;
_root["Bild"]["MCAni"]._y = -800;
_root["Bild"]["MCAni"].loadMovie("./pics/HauptAnimation.swf");
var frameNumber:Number;
		
_root["linkSub"+issue].onRelease = function(){
_root.attachMovie("menuback_grey", "menuback_grey", 109);
_root.menuback_grey._x = 0;
_root.menuback_grey._y = 101;
setFileName(_root["linkSub"+issue].linkSubText.text, fileParent);
createLeftMenuLink(_root["linkSub"+issue].linkSubText.text, linkParent);
			
			
if(_root["linkSub"+issue].linkSubText.text == "Button1"){
        _root["linkSub"+issue].linkSubText.text = linkname;
	frameNumber = 1;
	animationEnterFrame("Bild", "MCAni", frameNumber);	
}//end if
			
if(_root["linkSub"+issue].linkSubText.text == "Button2"){
	_root["linkSub"+issue].linkSubText.text = linkname;
	frameNumber = 11;
	animationEnterFrame("Bild", "MCAni", frameNumber);	
}//end if
			
if(_root["linkSub"+issue].linkSubText.text == "Button3"){
_root["linkSub"+issue].linkSubText.text = linkname;
frameNumber = 100;
animationEnterFrame("Bild", "MCAni", frameNumber);	
}//end if
			
else{trace("::::::::::::::::  FÄHLER  :::::::::::::::");}
}//end onRelease

Hier die ausgelagerte Funktion
PHP:
function animationEnterFrame(givenLabel, givenImg, myFrame){
 _root[givenLabel].onEnterFrame = function() {
if (_root[givenLabel][givenImg]._width > 3 && _root[givenLabel][givenImg]._height > 3) {
	_root[givenLabel][givenImg]._x = 201;
	_root[givenLabel][givenImg]._y = 211;

	_root[givenLabel][givenImg].gotoAndPlay(myFrame);
								
}//end if
else{
	trace("+#+#+#+#+# Fehler beim Laden der Animation +#+#+#+#+#");
	_root[givenLabel][givenImg]._x = -800;
	_root[givenLabel][givenImg]._y = -800;
}//end else

delete this.onEnterFrame;

} //end onEnterFrame
		
}//end function animationEnterFrame
 
Hi,

ich kann das mangels Flash im Moment nicht testen (der Code ist mir grad zu unübersichtlich, um ihn im Kopf zu debuggen ;) ) - aber eins fällt mir auf:

Wenn Du schon per
Code:
_root["linkSub"+issue].onRelease = function(){
Einen MouseHandler definierst, warum greifst Du darin nicht per "this" auf Dein Objekt ( _root["linkSub"+issue] ) zu, sondern referenzierst es immer wieder über den Array-Zugriffsoperator? Das wird nicht unbedingt die Uesache Deines Fehlers sein, ist aber immer wieder eine Quelle schwer zu entdeckender (und zu korrigierender) Bugs. ;)

Gruß
.
 
Guten Morgen,

danke erstmal für den Tipp!
Ich hatte bisher irgendwie immer wieder Probleme, wenn ich mit this auf etwas zugreifen will- oft hat das gar nicht funktioniert...

Gruß

Button 1und 2 funktionieren, aber bei Button 3 passiert nichts, er geht zwar auch in die Methode, aber geht gleich in den Else- Fall. Klicke ich aber zuerst Button 3 wird die Animation abgespielt.
Trotzdem bringt er auch immer "Fähler"- Fall, geht aber trotzdem in die Animation bei Button 1 und 2... Aber eben nur wenn ich zuerst 1 und dann 2 drücke... Wenn ich von hinten anfang tun 1 und 2 nicht. Das versteh ich nicht...
 
Zuletzt bearbeitet:
Hi,

kannst Du die Datei einmal posten (die .as-Datei und die dazugehörige .fla)? Wenn ich das ganze lauffähig vor mir habe, lässt sich sicher mit ein paar Trace-Aktionen schnell herausfinden, wo der Hund begraben liegt.

Gruß
.
 
Hallöchen,

:-(

Leider sind die Dateien zu gross und sind für nen Kunden, also darf ich da leider auch nichts rausgeben...
Blöde Sache, ich weiss...

GRuß
 
...
Aber ich hab inzwischen rausgefunden, warum er mir nichts macht wenn man den letzten Button ausgibt. In meiner ausgelagerten Funktion frag ich nach dem onEnterFrame nach den geladenen Bytes ab- und wenn man das letzte anklickt meint er "undefined"- also wohl keine Bytes da, also macht er da auch nichts.
Wenn ich wild auf die verschiedenen Buttonsklicke, funktioniert das letzte zwischendurch, aber dafür sind die anderen dann auch mal undefined und tun dann wieder dann wieder nicht- aber ich konnte bisher kein Schema feststellen.
Aber wo konnten denn meine Bytes verloren gehen? Hängt das mit dem onEnterFrame zusammen oder sowas?

Gruß
 
Zurück