Gå til innhold

Anbefalte innlegg

Hei, jeg redigerer hele tråden siden jeg har fått til litt her.

Jeg bruker Expression Blend og har lagd et find applikasjonsdesign og i dette skal jeg legge inn en bunch med videofiler som skal spilles av når brukeren klikker på området. Mer som vanlig Flash-playere pleier å ha.

 

Jeg har gjort det sånn at videoen ligger på et område og oppå dette området har jeg lagt en halv-transparent rektangel. Når brukeren klikker på rektangelet så skal videoen spilles av.

Jeg har lagd en storyboard som fader rektangelet ut når videoen startes.

Og alt fungerer faktisk fra C#-kode:

 

private void rectangle_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{


Storyboard RectangleFade = (Storyboard)TryFindResource("OnMouseDown");
if(RectangleFade!=null)
RectangleFade.Begin(this);

Storyboard VideoA = (Storyboard)TryFindResource("GTTV_promo_wmv");
if(VideoA!=null)
VideoA.Begin(this);
}

 

MEN, jeg vil også gjerne at videoen skal settes på pause når brukeren klikker en gang til på rektangelet. Og når brukeren klikker en tredje gang så skal den fortsette.

Jeg vil også at videoen skal rewindes automatisk når videoen er ferdig avspilt.

Noen som har tips?

Endret av Kenny Bones
Lenke til kommentar
Videoannonse
Annonse
bool doPause = true;
bool hasStarted = false;
Storyboard VideoA;
private void rectangle_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
 if(!hasStarted){
Storyboard RectangleFade = (Storyboard)TryFindResource("OnMouseDown");
if(RectangleFade!=null)

  RectangleFade.Begin(this);
 }

 if(!hasStarted){
 VideoA = (Storyboard)TryFindResource("GTTV_promo_wmv");
 if(VideoA!=null){
 VideoA.Begin(this, true);
 hasStarted = true;
   }
}
else
{
 if(doPause)
 videoA.Pause(this);
 else
 videoA.Resume(this);
 doPause = !doPause;
}
}

Tror dette skulle virke, har ikke vært borti storyboards tidligere. Du må selvsagt sette hasStarted til sin originale verdi før du kan spille videoen igjen.

Endret av Velena
Lenke til kommentar

Oi, et svar! :) Hehe, jeg fiksa det med følgende kode faktisk:

 

public partial class Window1
{
public Storyboard RectangleFadeA;
public Storyboard RectangleFadeBackA;

public Storyboard VideoA;

bool isPlaying;
bool isPaused;


public Window1()
{
	this.InitializeComponent();

	// Insert code required on object creation below this point.
	RectangleFadeA = (Storyboard)TryFindResource("RectangleFadeA");
	RectangleFadeBackA = (Storyboard)TryFindResource("RectangleFadeBackA");
	VideoA = (Storyboard)TryFindResource("GTTV_promo_wmv");
	isPlaying = false;
	isPaused = false;

}

private void rectangle_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
	if (!isPlaying)
	{
		if (!isPaused)
		{

			if (RectangleFadeA != null)
				RectangleFadeA.Begin(this, true);

			if (VideoA != null)
				VideoA.Begin(this, true);

			isPlaying = true;
			return;

		}
		if (isPaused)
		{
			if (RectangleFadeA != null)
				RectangleFadeA.Begin(this, true);
			if (VideoA != null)
				VideoA.Resume(this);
			isPaused = false;
			isPlaying = true;
			return;
		}

	}

	if (isPlaying)
	{
		if (RectangleFadeBackA != null)
			RectangleFadeBackA.Begin(this, true);
		VideoA.Pause(this);
		isPlaying = false;
		isPaused = true;
		return;

	}

}

private void ButtonWebcam_Click(object sender, RoutedEventArgs e)
{
	OpeningWindows.Window2 Window2 = new OpeningWindows.Window2();
	Window2.ShowDialog();
}

private void GTTV_promo_wmv_MediaEnded(object sender, RoutedEventArgs e)
{
	RectangleFadeBackA.Begin(this, true);
	VideoA.Pause(this);
	isPaused = true;
	isPlaying = false;
	return;

}
}

 

MEN, dette må jo da repeteres for hver video som skal spilles av. Nå er ikke jeg noen racer på C#, men det går vel an å smakkke dette sammen og definere dette som en metode eller hva det heter?

Slik at jeg ikke trenger å repetere alt dette hver gang og heller bare fylle i noen variabler?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...