swf-film in mc laden per loadMovie() + filmsteuerung

matschomaen

Grünschnabel
hi,

ich möchte eine seite verwirklichen, auf der filme gestreamt werden (für meine firma...).
dazu möchte ich, dass die filme, da sie doch etwas länger sind per loadMovie() reingeladen werden. die filme sind auch im swf-format.

nun sollen die filme aber in einen movieclip reingeladen werden, dazu sollen die externen filme richtig positioniert werden.
ausserdem will ich noch eine filmsteuerung einbauen... play() und stop() ist ja kein ding, aber ich wollte auch noch eine zeitleiste verwirklichen. nebenbei will ich auch noch die lautstärke verändern können.

wie setze ich das am besten um?

schonmal danke und gruß, matschomaen :)
 
keine sorge... ich suche auch selber...
aber meine primäre frage bezog sich auf die funktion loadMovie()...
und da habe ich bisher noch nicht das richtige gefunden.

ich will den externen film:
1. in den mc richtig positionieren (bisher setzt es mir den film in die mitte des mc)
2. ich möchte ihn auch steuern können (play, stop, timeline...)

bisher habe ich noch nicht so viel erfahrung mit AS und vor allem nicht mit dieser praktischen funktion...

gruß, matschomaen
 
dann sprech das MovieClip an in den es geladen wurde wenn dein Film komplett geladen wurde ( das kannst du mit ein preloaderscript überwachen)
 
mach ich schon...
mein code:
PHP:
_root.video_mc.onEnterFrame = function() {
	_root.video_mc.loadMovie("NG 05-09 NG_DSL001.swf");	
};

--> das video wird auch angezeigt... aber das positionieren ist mein problem.................
 
Was Du damit machst:
PHP:
_root.video_mc.onEnterFrame = function() {
    _root.video_mc.loadMovie("NG 05-09 NG_DSL001.swf");    
};
ist nichts weiter, als dass Du den Film immer wieder und wieder (mit der Frequenz der Framerate) einlädst.

So gehts:
PHP:
_root.video._x = 20; // Positionieren
_root.video._y = 50;
_root.video_mc.loadMovie("NG 05-09 NG_DSL001.swf");
_root.onEnterFrame = function() {
    if (_root.video._width > 0 && _root.video._height > 0) {
       // fertig geladen
        delete this.onEnterFrame;
    }
}

Gruß
.
 
danke! =)))
es hat geklappt mit der positionierung! :)
wie ist das nun mit der filmsteuerung?
kann man direkt den mc ansprechen, damit der externe film auf den befehl reagiert?

ps: was macht denn dieser code überhaupt:

PHP:
_root.onEnterFrame = function() {
	if (_root.video_mc._width > 0 && _root.video_mc._height >0) {
			delete this.onEnterFrame;
		}
}
:confused:
 
Zuletzt bearbeitet:
Er wartet, bis der Film komplett geladen ist (erkennbar an der Größe). Dort, wo Du mein Kommentar entfernt hast, könntest Du z.B. eine Skalierung vornehmen:
Code:
_root.onEnterFrame = function() {
    if (_root.video_mc._width > 0 && _root.video_mc._height >0) {
        _root.video_mc._width = 360; // Skalieren!
        delete this.onEnterFrame;
    }
}
Das bietet sich z.B. oft bei Thumbnails in Galerien an, die auf eine bestimmte Größe gestreckt werden müssen.

Gruß
.
 
Hallo nochmal,

ich habe nun noch etwas rumgeschraubt und hab das auch soweit hinbekommen, dass die Filme (große und kleine Auflösung) dynamisch geladen werden.
Einen Teil der Filmsteuerung (Stop()/Play()) habe ich auch schon umgesetzt.

Nun wollte ich noch eine Zeitleiste umsetzen, mit der man eine beliebige Stelle im Film direkt ansteuern kann.
Ich habe das bereits auch schon mal ausprobiert mit _root.video_mc._totalframes, jedoch zeigt mir dass dann nur "1" an (wohl, weil der Film reingeladen wird...).

Weiss jemand von euch, wie das geht?!

Hier mal mein Code bis jetzt:

PHP:
//hier die definitionen
var startx = 10;
var starty = 0;
var breite = 150;
var hoehe = 8;
var farbe = 0xf7f7ce;
var alpha = 70;
var textfarbe = 0xf7f7ce;
var schriftart = "Verdana";
var schriftgroesse = 8;
var schriftfett = 1;
var schriftkursiv = 0;
var schriftunterstrichen = 0;
var textausrichtung = "left";

_root.createEmptyMovieClip("video_mc", 2);

if (_root.size == "small") {
	_root.video_mc._x = 90;
	_root.video_mc._y = 50;
} else {
	_root.video_mc._x = 10;
	_root.video_mc._y = 0;
}

//variablen werden aus der php-datei übergeben.
_root.video_mc.loadMovie(_root.mediafile+"_"+_root.size+".swf");
_root.play_btn._visible = false;
_root.pause_btn._visible = true;
_root.pause_btn.onRelease = function() {
	_root.pause_btn._visible = false;
	_root.play_btn._visible = true;
	_root.video_mc.stop();
};
_root.play_btn.onRelease = function() {
	_root.play_btn._visible = false;
	_root.pause_btn._visible = true;
	_root.video_mc.play();
};

//filmsteuerung
_root.video_mc.onEnterFrame = function() {
	var x = _root.timeline_mc._x - 130;
    var y = _root.timeline_mc._y - 6;
	_root.createTextField("test", 30, x, y, 300, 20);
	anzeige = new TextFormat();
	anzeige.color = textfarbe;
	anzeige.font = schriftart;
	anzeige.size = 10;
	anzeige.bold = schriftfett;
	anzeige.italic = schriftkursiv;
	anzeige.underline = schriftunterstrichen;
	anzeige.align = textausrichtung;
	test.text = _root.video_mc._currentframe;
	test.setTextFormat(anzeige);
};

//informationen werden in dynamischen Textfeld angezeigt
_root.createEmptyMovieClip("balken_mc", 3);
balken_mc._x = startx;
balken_mc._y = starty;
with (balken_mc) {
	beginFill(farbe, alpha);
	lineTo(0, hoehe);
	lineTo(breite, hoehe);
	lineTo(breite, 0);
	lineTo(0, 0);
	endFill();
}
for (var i = 1; i<=5; i++) {
	_root.createTextField("anzeige"+i, 20+i, startx, starty+(10*i), 300, 20);
	anzeigeformat = new TextFormat();
	anzeigeformat.color = textfarbe;
	anzeigeformat.font = schriftart;
	anzeigeformat.size = schriftgroesse;
	anzeigeformat.bold = schriftfett;
	anzeigeformat.italic = schriftkursiv;
	anzeigeformat.underline = schriftunterstrichen;
	anzeigeformat.align = textausrichtung;
}
_root.onEnterFrame = function() {
	var t = _root.video_mc.getBytesTotal();
	var g = _root.video_mc.getBytesLoaded();
	var st = getTimer();
	var rt = Math.round((st-at)/1000);
	var et = Math.round((t*rt)/g);
	var ct = Math.round(-(rt-et));
	if (g == t && g>50) {
		for (var i = 1; i<=5; i++) {
			_root["anzeige"+i].removeTextField();
		}
		balken_mc.clear();
		delete this.onEnterFrame;
	} else {
		var a = (g/t)*100;
		//anzeige1.text = "Es wurden "+Math.round(g/1024)+" Kb von "+Math.round(t/1024)+" Kb geladen";
		//anzeige1.setTextFormat(anzeigeformat);
		anzeige1.text = Math.round(a)+" % geladen";
		anzeige1.setTextFormat(anzeigeformat);
		//anzeige3.text = "Die abgelaufene Zeit beträgt "+rt+" Sekunden";
		//anzeige3.setTextFormat(anzeigeformat);
		//anzeige4.text = "Sie müssen sich noch ca. "+ct+" Sekunden gedulden";
		//anzeige4.setTextFormat(anzeigeformat);
		balken_mc._xscale = a;
	}
};


Gruß, matschomaen
 
Zurück