Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-07-2011, 21:59   #1 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
FadeIN und Out mit mehreren Objekten !gleichzeitig!

Hallo liebe Community!

Ich bin dabei einen Videoplayer zu erstellen.
Jedoch möchte ich meinen eigenen Player einrichten und natürlich einige extrafunktionen einbauen.
Ich habe mich in den letzten 2 Tagen stark mit Fades beschäftigt. Einen einfachen FadeIn und Out darzustellen ist kein Problem.
Jedoch, mein Problem:

Ich möchte, dass die Kontrolleiste vom Videoplayer beim RollOut schön ausgeblendet wird (wird langsam transparent.)
Dasselbe umgekehrt, wenn man mit der Maus wieder über die Leiste fährt, dass sie wieder langsam erscheint.

Die Kontrolleiste enthält aber mehrere Movieclips.
Folgende sind dabei:

controlBar = die komplette Leiste
playPause = play/Pause Button
rewindButton = "zurück zum Anfang"-Button
loader = Ladebalken, wie weit Video schon geladen ist
mute = Soundeinstellung

Leider bring ichs nicht dazu, alle gleichzeitig einzublenden und auch gleichzeitig auszublenden, wie z.b. in Youtube.

Folgenden Code hab ich bisher, aber der schaffts leider nur mit einem einzigen Objekt, hier controlBar:

Code:
inS = 5;
outS = 5;

controlBar._alpha = 0;

controlBar.onRollOver = function(){
	this.onEnterFrame = function(){
		this._alpha += inS;
		if(this._alpha > 85){
			this._alpha = 85;
			delete this.onEnterFrame;
		}
	}
}
controlBar.onRollOut = function(){
	this.onEnterFrame = function(){
		this._alpha -= outS;
		if(this._alpha < 0){
			this._alpha = 0;
			delete this.onEnterFrame;
		}
	}
}
Wenn ich das bei jedem Objekt mache oder es zusammenfasse, dann taucht das ein oder andere Objekt trotzdem nicht auf oder beim herüberfahren verschwindet dann die ganze Leiste...

Ich hoffe ihr könnt mir helfen!

Danke schonmal im Voraus

Chris
ChrizBMX ist offline   Mit Zitat antworten
Alt 14-07-2011, 22:06   #2 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Um mehreren Dingen das gleichzeitige Verschwinden zu ermöglichen, stecke sie alle in einen container movieclip (MC) und fade diesen aus.

Glückwunsch das du dich mit den Fades durchgeboxt hast und ein Erfolgserlebnis hattest, das ist immer eine wichtige Sache, auch selbst etwas auf die Beine zu stellen.

"Programmieren" ist eigentlich Latein und bedeutet "bezahlte Faulheit".
Also tue niemals etwas selbst, das schon vor dir jemand getan hat.

Fades sind Animationen.
Animationen sind Änderungen bestimmter Eigenschaften über eine Zeitspanne.
In Flash nennt man so was auch Tween.
Für Tweens gibt es fertige Engines, die dir die Arbeit (und Zeit) abnehmen.

Getting Started Tweening « GreenSock
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 14-07-2011, 22:12   #3 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
Danke für die superschnelle Antwort!

Doch leider hab ich mit dieser Antwort schon gerechnet.
Genau das hab ich nämlich schon Probiert, aber wenn ich alle zusammen zu einem Symbol zusammenfasse, dann kann ich anschließend die Buttons nicht mehr betätigen, sondern der Film läuft ers gar nicht ab (weil ich kein autoplay wollte, sondern erst mit klick auf "play" der Film gestartet werden sollte!)

Ich wünschte man könnte das zusammengefasste Symbol "eine Ebene tiefer" als die Kontrolleiste selber legen, doch das funktioniert auch nicht irgendwie.

DIe Ebenen verlaufen folgendermaßen:

controls = Buttons
controlBar = Kontrolleiste
video = Video
actions = ActionScript Code..

Ich hoffe es gibt noch einen anderen Lösungsweg.
ChrizBMX ist offline   Mit Zitat antworten
Alt 14-07-2011, 22:28   #4 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
achja, ich vergaß.

Du musst dem container einen instanznamen geben (so wie du es auch bei den Steuerelementen gemacht hast).
Um zu deinen Knöpfen zu kommen (um diese anzusprechen) musst du nun, wenn du auf der Hauptzeitleiste bist, über den container gehen.

Sei der isntanzname "container" also zB:
PHP-Code:
container.controlBar.onRollOver... 
Vernünftiger Weise würde man die Sache in eine Klasse packen, aber das würde wohl zuweit führen.

Edit: dein altes skript würde so wie es war funktionieren, wenn du es auf die Zeitleiste des containers legst.
Das ist aber Tineff hoch drei, weil du dann irgendwann nicht mehr durchsiehst wo welcher code steht, also immer schön auf der Hauptzeitleiste bleiben.
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick

Geändert von milchreis (14-07-2011 um 22:30 Uhr)
milchreis ist offline   Mit Zitat antworten
Alt 14-07-2011, 23:29   #5 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
Habe es geändert, funktioniert nicht ganz.
Die Buttons lassen sich nicht ansprechen...

Ganzer Code:

Code:
var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);

theVideo.attachVideo(ns);

ns.play("video.flv");
ns.pause();

// Controls

// Controlbar

inS = 5;
outS = 5;

fadeBlock._alpha = 85;

fadeBlock.onRollOver = function() 
{
	this.onEnterFrame = function() 
	{
		this._alpha += inS;
		if(this._alpha > 85) 
		{
			this._alpha = 85;
			delete this.onEnterFrame;
		}
	}
}
fadeBlock.onRollOut = function() 
{
	this.onEnterFrame = function() 
	{
		this._alpha -= outS;
		if(this._alpha < 0) 
		{
			this._alpha = 0;
			delete this.onEnterFrame;
		}
	}
}

// Rewind

fadeBlock.rewindButton.onRollOver = function()
{
	this.gotoAndStop("rewindOver");
}

fadeBlock.rewindButton.onRollOut = fadeBlock.rewindButton.onReleaseOutside = function()
{
	this.gotoAndStop("rewind");
}

fadeBlock.rewindButton.onRelease = function()
{
	ns.seek(0);
}

// Play - Pause

fadeBlock.playPause.onRollOver = function()
{
	if(this._currentframe == 1) 
	{
		this.gotoAndStop("playOver");
	}
	else
	{
		this.gotoAndStop("pauseOver");
	}
}

fadeBlock.playPause.onRollOut = fadeBlock.playPause.onReleaseOutside = function()
{
	if(this._currentframe == 10) this.gotoAndStop("play");
	else this.gotoAndStop("pause");
}

fadeBlock.playPause.onRelease = function()
{
	if(this._currentframe == 10)
	{
		this.gotoAndStop("pauseOver");
		ns.pause();
	}
	else
	{
		this.gotoAndStop("playOver");
		ns.pause();
	}
}
So lassen sich die Buttons nicht anklicken, der Fadeeffekt jedoch ist genau richtig.
Wenn ich den Code umändere, bei Fadeteil in:

Code:
fadeBlock.controlBar.onRollOver....
dann wird nur die Kontrolleiste ein und ausgefaded. Die Buttons bleiben jedoch IMMER 100% sichtbar, auch wenn die Leiste schon weg ist.
ChrizBMX ist offline   Mit Zitat antworten
Alt 15-07-2011, 00:15   #6 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
In As2 ist es so nicht möglich zwei gleiche Eventmethoden in einer verschachtelten Struktur zu haben.

Also Container mit onRollOver und ein Etwas im Container auch mit onRollOver.

Allerdings bin ich aus As2 auch schon eine Weile raus.
Mir fällt die Umgehung dieses Problem im Moment nicht ein, aber hier gibt's ja noch andere Leute die auf dem Gebiet bewandert sind =)
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 15-07-2011, 00:19   #7 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
Lässt sich das beheben, indem man den Videoplayer in AS3.0 bastelt?
ChrizBMX ist offline   Mit Zitat antworten
Alt 15-07-2011, 09:30   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von ChrizBMX Beitrag anzeigen
Lässt sich das beheben, indem man den Videoplayer in AS3.0 bastelt?
Ja, lässt es sich.
Da Du dann aber quasi wieder bei 0 anfangen musst, dürfte Du dafür in andere Problem rennen. Hast Du schonmal mit AS3 gearbeitet?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 15-07-2011, 09:54   #9 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
Nicht wirklich. Ich habe gestern ein bisschen gestöbert, was die unterschiede betrifft. Aber so viele unterschiede gibt es ja nicht, jedenfalls gibt es keine unterschiede wenn ich mein script in AS 3 verfassen würde, außer dass es dann funktioniert...

Das mit dem von 0 anfangen ist kein problem, ging ziemlich schnell

Danke euch! Ich werde heute abend mal probieren, dann melde ich mich wieder.
ChrizBMX ist offline   Mit Zitat antworten
Alt 15-07-2011, 10:12   #10 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von ChrizBMX Beitrag anzeigen
Nicht wirklich. Ich habe gestern ein bisschen gestöbert, was die unterschiede betrifft. Aber so viele unterschiede gibt es ja nicht, jedenfalls gibt es keine unterschiede wenn ich mein script in AS 3 verfassen würde, außer dass es dann funktioniert...
Da gibt es schon erhebliche Unterschiede, insbesondere was das Event-Handling und die API angeht. Ohne Dich entmutigen zu wollen, aber bei Deinem Script z.B. kannst Du nicht mal die Hälte der Zeilen ohne Änderung übernehmen.

Zitat:
Zitat von ChrizBMX Beitrag anzeigen
Danke euch! Ich werde heute abend mal probieren, dann melde ich mich wieder.
Trotzdem ist sowas ein guter Anlass sich in AS3 einzuarbeiten. Diesem ActionScript-Dialekt gehört nämlich in jedem Fall die Zukunft.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 15-07-2011, 10:21   #11 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Zitat:
Zitat von ChrizBMX Beitrag anzeigen
Danke euch! Ich werde heute abend mal probieren, dann melde ich mich wieder.
Herzlich willkommen in der Gegenwart.
Jede Frage zu As3 beantworte ich lieber als eine zu As2.
Also nur Mut.

In den letzten 5 Jahren ist einiges passiert.

Migrating from ActionScript 2 to ActionScript 3: Key concepts and changes | Adobe Developer Connection
Weiter Links in Martins Signatur beachten!
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 15-07-2011, 19:33   #12 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
Wenn ich mir das so anseh, beudeutet das, korrigiert mich, falls ich falsch liege, dass die Objekte nicht mehr über die Instanznamen angesprochen werden, sondern über Klassen, und dass ActionScript auf Frames anstatt auf die Objekte zugreift? (Von deinem Link, milchreis)

Ist ja eher schon OffTopic hier, aber diese eine Frage tuts noch

Chris
ChrizBMX ist offline   Mit Zitat antworten
Alt 15-07-2011, 23:26   #13 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von ChrizBMX Beitrag anzeigen
Wenn ich mir das so anseh, beudeutet das, korrigiert mich, falls ich falsch liege, dass die Objekte nicht mehr über die Instanznamen angesprochen werden, sondern über Klassen, und dass ActionScript auf Frames anstatt auf die Objekte zugreift?
Hier mit geschehn: Du liegst falsch!

Objekte und Instanznamen gibt es immer noch (auch wenn letztere lange nicht mehr so wichtig sind, wie in AS1/2). Klassen sind sowas wie Baupläne für Objekte (vgl. Symbole vs. Instanzen). Und wo Du warum mit AS auf Frames zugreifen willst ist mir schleierhaft..
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 17-07-2011, 14:19   #14 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 468
wenn es unbedingt as2 sein soll ,
könntest das problem mit "hitTest" lösen.

beispiel:

PHP-Code:
fadeBlock.onMouseMove = function() {
    
    var 
bo_rewindButton:Boolean this.rewindButton.hitTest(_root._xmouse_root._ymousetrue);
    
    if (
bo_rewindButton == true) {
        
        
this.rewindButton.gotoAndStop("rewindOver");
        
    } else {
        
        
this.rewindButton.gotoAndStop("rewind");
        
    }
    
}; 
chanel ist offline   Mit Zitat antworten
Alt 17-07-2011, 16:14   #15 (permalink)
Matrixbenutzer
 
Registriert seit: Jul 2011
Beiträge: 7
Super, genau das hab ich gebraucht!

Doch leider gibt es immer noch ein Problem...
Die Buttons wechseln ihre Farben zwar, aber betätigen kann man sie immer noch nicht.
Ich habe für meinen Player das Script etwas erweitert, doch leider lassen sich die Buttons nicht betätigen.

ganzer Code:

Code:
var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);

theVideo.attachVideo(ns);

ns.play("video.flv");
ns.pause();

// Controls

// Controlbar

inS = 5;
outS = 5;

fadeBlock._alpha = 85;

fadeBlock.onRollOver = function() 
{
	this.onEnterFrame = function() 
	{
		this._alpha += inS;
		if(this._alpha > 85) 
		{
			this._alpha = 85;
			delete this.onEnterFrame;
		}
	}
}

fadeBlock.onRollOut = function() 
{
	this.onEnterFrame = function() 
	{
		this._alpha -= outS;
		if(this._alpha < 0) 
		{
			this._alpha = 0;
			delete this.onEnterFrame;
		}
	}
}

fadeBlock.onMouseMove = function() {
    
    var bo_rewindButton:Boolean = this.rewindButton.hitTest(_root._xmouse, _root._ymouse, true);
    
    if (bo_rewindButton == true) {
        
        this.rewindButton.gotoAndStop("rewindOver");
        
    } else {
        
        this.rewindButton.gotoAndStop("rewind");
        
    }
	
	var bo_playPause:Boolean = this.playPause.hitTest(_root._xmouse, _root._ymouse, true);
    
    if (bo_playPause == true && this._currentframe == 1) {
        
        this.playPause.gotoAndStop("playOver");
        
    } else if (bo_playPause == true && this._currentframe == 20) {
        
        this.playPause.gotoAndStop("pauseOver");
        
    } else if (bo_playPause == false && this._currentframe == 1) {
		
		this.playPause.gotoAndStop("play");
	
	} else {
		
		this.playPause.gotoAndStop("pause");
		
	}
    
};  

// Rewind

fadeBlock.rewindButton.onRollOver = function()
{
	this.gotoAndStop("rewindOver");
}

fadeBlock.rewindButton.onRollOut = fadeBlock.rewindButton.onReleaseOutside = function()
{
	this.gotoAndStop("rewind");
}

fadeBlock.rewindButton.onRelease = function()
{
	ns.seek(0);
}

// Play - Pause

fadeBlock.playPause.onRollOver = function()
{
	if(this._currentframe == 1) 
	{
		this.gotoAndStop("playOver");
	}
	else
	{
		this.gotoAndStop("pauseOver");
	}
}

fadeBlock.playPause.onRollOut = fadeBlock.playPause.onReleaseOutside = function()
{
	if(this._currentframe == 10) this.gotoAndStop("play");
	else this.gotoAndStop("pause");
}

fadeBlock.playPause.onRelease = function()
{
	if(this._currentframe == 10)
	{
		this.gotoAndStop("pauseOver");
		ns.pause();
	}
	else
	{
		this.gotoAndStop("playOver");
		ns.pause();
	}
}
ChrizBMX ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
alpha, fadein, fadeout, mehrere objekte, movieclips

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Maske aus mehreren Objekten Master Wu Flash MX 8 12-08-2005 11:17
hittest bei mehreren objekten schmidi Spielkonzepte und Spieleprogrammierung 2 21-11-2004 14:20
hittest mit mehreren objekten destroy90210 Flash MX 1 12-03-2004 14:40
mausverfolger mit mehreren objekten bennybraun ActionScript 1 2 13-05-2002 11:41
Dragen von mehreren Objekten (nicht gleichzeitig) MrM ActionScript 1 2 07-03-2002 08:58


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele