locked
tvDestaque ( estilo aqueles do terra, uol... < 123 > ) RRS feed

  • Pergunta

  • Pessoal,

    tenho que fazer aquelas tvDestaques estilo do uol, terra, ig, e diversos outros sites pela net.

    Até que consegui fazer, mais acho que está bugado em algum lugar!

    Se tiverem paciencia, ficam vendo sem clicar nos numeros uns 2 minutos, ele trava!!!


    <iframe src="http://silverlight.services.live.com/invoke/84419/tvDestaque_Numeros/iframe.html" scrolling="no" frameborder="0" style="width:547px; height:278px"></iframe>

    http://silverlight.services.live.com/invoke/84419/tvDestaque_Numeros/iframe.html

    http://silverlight.live.com/ContentTestPage.aspx?setName=tvDestaque_Numeros

    o codigo inteiro está aqui em c#:

    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.Windows.Browser;
    
    namespace SilverlightApplication18_tvDestaques_NUMEROS
    {
    	public partial class Page : UserControl
    	{
            public enum LinkPara { pagBanner1, pagBanner2, pagBanner3 };
    
            public LinkPara vaiPagina;
    
    		public Page()
    		{
    			// Required to initialize variables
    			InitializeComponent();
                //Chama a função banner1
                banner1();
                ///////////////////////////////////////////////////
                //Img Campo
                imgBanner1.Visibility = Visibility.Collapsed;
                //quadrado1.Visibility = Visibility.Collapsed;
                //Img Flores
                imgBanner2.Visibility = Visibility.Collapsed;
                quadrado2.Visibility = Visibility.Collapsed;
                //Img Floresta
                imgBanner3.Visibility = Visibility.Collapsed;
                quadrado3.Visibility = Visibility.Collapsed;
                ///////////////////////////////////////////////////
    		}
            ///////////////////////////////////////////////////////////////////////
            //Funcao para o Banner 1 aparecer e os demais se esconder
            private void banner1_Inicia(object sender, EventArgs e)
            {
                //
                //O 2 se esconde, pois não será usado
                imgBanner2.Visibility = Visibility.Collapsed;
                quadrado2.Visibility = Visibility.Collapsed;
                Banner2.Stop();
                //
                //O 3 se esconde, pois não será usado
                imgBanner3.Visibility = Visibility.Collapsed;
                quadrado3.Visibility = Visibility.Collapsed;
                Banner3.Stop();
                //
                //O 1 começa
                Banner1.Begin();
                //
                vaiPagina = LinkPara.pagBanner1;
                //
                //O 1 completou? então ele chama a função do banner2_Inicia
                Banner1.Completed += banner2_Inicia;
                //O 1 aparece, pois será usado
                //imgBanner1.Visibility = Visibility.Visible;
                quadrado1.Visibility = Visibility.Visible;
                //
            }
            //Funcao para o Banner 2 aparecer e os demais se esconder
            private void banner2_Inicia(object sender, EventArgs e)
            {
                //
                //O 1 se esconde, pois não será usado
                imgBanner1.Visibility = Visibility.Collapsed;
                quadrado1.Visibility = Visibility.Collapsed;
                Banner1.Stop();
                //
                //
                //O 3 se esconde, pois não será usado
                imgBanner3.Visibility = Visibility.Collapsed;
                quadrado3.Visibility = Visibility.Collapsed;
                Banner3.Stop();
                //
                //
                //O 2 começa
                Banner2.Begin();
                //
                vaiPagina = LinkPara.pagBanner2;
                //
                //O 2 completou? então ele chama a função do banner3_Inicia
                Banner2.Completed += banner3_Inicia;
                //O 2 aparece, pois será usado
                //imgBanner2.Visibility = Visibility.Visible;
                quadrado2.Visibility = Visibility.Visible;
                //
            }
            //Funcao para o Banner 3 aparecer e os demais se esconder
            private void banner3_Inicia(object sender, EventArgs e)
            {
                //
                //O 1 se esconde, pois não será usado
                imgBanner1.Visibility = Visibility.Collapsed;
                quadrado1.Visibility = Visibility.Collapsed;
                Banner1.Stop();
                //
                //O 2 se esconde, pois não será usado
                imgBanner2.Visibility = Visibility.Collapsed;
                quadrado2.Visibility = Visibility.Collapsed;
                Banner2.Stop();
                //
                //
                //O 3 começa
                Banner3.Begin();
                //
                vaiPagina = LinkPara.pagBanner3;
                //
                //O 3 completou? então ele chama a função do banner1_Inicia
                Banner3.Completed += banner1_Inicia;
                //O 3 aparece, pois será usado
                //imgBanner3.Visibility = Visibility.Visible;
                quadrado3.Visibility = Visibility.Visible;
                //
            }
            ///////////////////////////////////////////////////////////////////////
            //
            private void banner1()
            {
                //
                //O 2 se esconde, pois não será usado
                imgBanner2.Visibility = Visibility.Collapsed;
                quadrado2.Visibility = Visibility.Collapsed;
                Banner2.Stop();
                //
                //O 3 se esconde, pois não será usado
                imgBanner3.Visibility = Visibility.Collapsed;
                quadrado3.Visibility = Visibility.Collapsed;
                Banner3.Stop();
                //
                //O 1 começa
                Banner1.Begin();
                //
                vaiPagina = LinkPara.pagBanner1;
                //
                //O 1 completou? então ele chama a função do banner2_Inicia
                Banner1.Completed += banner2_Inicia;
                //O 1 aparece, pois será usado
                //imgBanner1.Visibility = Visibility.Visible;
                quadrado1.Visibility = Visibility.Visible;
            }
            //
            private void banner2()
            {
                //
                //O 1 se esconde, pois não será usado
                imgBanner1.Visibility = Visibility.Collapsed;
                quadrado1.Visibility = Visibility.Collapsed;
                Banner1.Stop();
                //
                //O 3 se esconde, pois não será usado
                imgBanner3.Visibility = Visibility.Collapsed;
                quadrado3.Visibility = Visibility.Collapsed;
                Banner3.Stop();
                //
                //O 2 começa
                Banner2.Begin();
                //
                vaiPagina = LinkPara.pagBanner2;
                //
                //O 2 completou? então ele chama a função do banner3_Inicia
                Banner2.Completed += banner3_Inicia;
                //O 2 aparece, pois será usado
                //imgBanner2.Visibility = Visibility.Visible;
                quadrado2.Visibility = Visibility.Visible;
                //
            }
            //
            private void banner3()
            {
                //
                //O 1 se esconde, pois não será usado
                imgBanner1.Visibility = Visibility.Collapsed;
                quadrado1.Visibility = Visibility.Collapsed;
                Banner1.Stop();
                //
                //O 2 se esconde, pois não será usado
                imgBanner2.Visibility = Visibility.Collapsed;
                quadrado2.Visibility = Visibility.Collapsed;
                Banner2.Stop();
                //
                //O 3 começa
                Banner3.Begin();
                //
                vaiPagina = LinkPara.pagBanner3;
                //
                //O 3 completou? então ele chama a função do banner1_Inicia
                Banner3.Completed += banner1_Inicia;
                //O 3 aparece, pois será usado
                //imgBanner3.Visibility = Visibility.Visible;
                quadrado3.Visibility = Visibility.Visible;
                //
            }
    
            //
            ///////////////////////////////////////////////////////////////////////
            //BTN 1
            private void b1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                banner1();
            }
            //BTN 2
            private void b2_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                banner2();
            }
            //BTN 3
            private void b3_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                banner3();
            }
            //BTN 'TRANSPARENTE' UNICO, QUE SERVE PARA TODOS
            private void btnTransparente_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                if (vaiPagina == LinkPara.pagBanner1)
                {
                    HtmlPage.Window.Navigate(new Uri("http://www.globo.com"), "_blank");
                }
                else if (vaiPagina == LinkPara.pagBanner2)
                {
                    HtmlPage.Window.Navigate(new Uri("http://www.uol.com.br"), "_blank");
                }
                else 
                //(vaiPagina == LinkPara.pagBanner3)
                {
                    HtmlPage.Window.Navigate(new Uri("http://www.google.com"), "_blank"); 
                }
    
            }
    
    	}
    }



    Não entendo nada de nada, tudo que sei foi aprendido na raça...

    Então espero compreenção de vcs :)

    Eu acho que o problema é aqui nas linhas:

    Banner1.Completed += banner2_Inicia;

    Acho que é um tipo de codigo que fica checando direto o tempo inteiro!
    Estilo o EnterFrame do ActionScript do Flash.

    Alguém pode me dar uma luz do que seria?
    Existe outro codigo para 'limpar' (tirar da memoria) isso?

    Valeuuuu


    Web Motion Designer
    • Editado ophabyo sábado, 4 de julho de 2009 15:25
    sábado, 4 de julho de 2009 15:05