35 messaggi dal 22 aprile 2002
Ho creato dei canvas con all'interno immagini che hanno funzioni di bottoni e quindi ho messo il curson come hand e ho inserito nella file js il codice per l'handler onMouseLeftButtonUp che ridirige su una altra pagina. Testato e tutto funziona, ma se prendo questo canvas e lo faccio spostare dall'animazione, al termine del movimento non ha più il cursore che indica che è un link e non funziona più.
Per sopperire ho creato rettangoli invisibili nella posizione dove si ferma il canvas e con questo sistema funziona, ma non mi sembra il modo corretto.
Secondo problema, quando apro questa pagina, che funziona correttamente in explorer, in firefox non funziona ( parlo sempre dei link), la pagina fa la sua animazione ma non consente il click e anche qui il cursore rimane sempre freccia, stessa cosa su un macintosh. Forse, essendo un neofita di silverlight, commetto qualche errore.
Chiedo aiuto.
ciao
Furio
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Stroke ha scritto:
Ho creato dei canvas con all'interno immagini che hanno funzioni di bottoni e quindi ho messo il curson come hand e ho inserito nella file js il codice per l'handler onMouseLeftButtonUp che ridirige su una altra pagina. Testato e tutto funziona, ma se prendo questo canvas e lo faccio spostare dall'animazione, al termine del movimento non ha più il cursore che indica che è un link e non funziona più.
Per sopperire ho creato rettangoli invisibili nella posizione dove si ferma il canvas e con questo sistema funziona, ma non mi sembra il modo corretto.
Secondo problema, quando apro questa pagina, che funziona correttamente in explorer, in firefox non funziona ( parlo sempre dei link), la pagina fa la sua animazione ma non consente il click e anche qui il cursore rimane sempre freccia, stessa cosa su un macintosh. Forse, essendo un neofita di silverlight, commetto qualche errore.
Chiedo aiuto.
ciao
Furio


Ciao, non riesco a riprodurre i tuoi anomali comportamenti quindi ho fatto un esempio ed anzichè riempire una paginata di codice di posto direttamente il link dell'esempio:
http://www.silverlightitalia.com/articoli/silverlight/helper/f_AnimatedButton/
ed il suo codice:
http://www.silverlightitalia.com/articoli/silverlight/helper/f_AnimatedButton/AnimatedButton.zip.
Spero ti sia di aiuto.

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
35 messaggi dal 22 aprile 2002
Ho guardato attentamente il tuo codice, effettivamente funziona anche con firefox, con Macintosh proverò più tardi.
Praticamente il cursore diventa indice da codice, mentre mi sembrava di aver capito che era sufficiente metterlo nelle proprietà dell'oggetto.
Questo era il mio codice:

<Canvas Width="144" Height="324" Canvas.Left="638" Canvas.Top="224" x:Name="CanItalia" Visibility="Visible" Cursor="Hand" MouseLeftButtonUp="ImgIta_onMouseLeftButtonUp" >

<Image Width="67" Height="40" Canvas.Left="8" Canvas.Top="8" Source="images/italiano.jpg" x:Name="Img_Ita" Cursor="Hand" MouseLeftButtonUp="ImgIta_onMouseLeftButtonUp" />
<TextBlock Width="130" Height="230" Canvas.Left="5" Canvas.Top="80" Text="Testo " TextWrapping="Wrap" FontSize="11" FontFamily="Arial" Foreground="#FF0640FF" x:Name="Text_Ita"/>
</Canvas>
Questo canvas annegato in un canvas "scena" insieme ad altri 4 simili che linkano a diverse lingue.
Nel js questo è il codice:
function ImgIta_onMouseLeftButtonUp (senders, args) {

location.href("IT/Default.aspx");
}

I codici completi per qualche giorno sono su un mio sito test all'indirizzo http://www.starwatch.ws , ho postato anche i pezzi di codice perchè fra qualche giorno questo sito presenterà altre prove quindi non più utile per altri.

Messo così, quando i 5 canvas erano fermi funzionavano bene(su explorer), quando li ho messi in movimento hanno smesso di funzionare, quindi come vedrai nella posizione di arrivo o messo 5 rettangoli invisibili che si chiamano mask_Ita mask_Fra ecc.
Se ci fai caso sono linkabili anche se il canvas con i testi e la bandiera corrispondente non è arrivato a destinazione.
<Rectangle Width="144" Height="324" Fill="#FFFFFFFF" Stroke="#FF000000" Canvas.Left="40" Canvas.Top="224" Cursor="Hand" Opacity="0" x:Name="Mask_Ita" MouseLeftButtonUp="ImgIta_onMouseLeftButtonUp"/> e qui ho richiamato la stessa funzione che chiama un'altra pagina.
Come ti dicevo in explorer funziona in firefox no, eppure dovrebbe.
Cosa ne pensi?
Ciao e grazie
Furio
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Stroke ha scritto:
Praticamente il cursore diventa indice da codice, mentre mi sembrava di aver capito che era sufficiente metterlo nelle proprietà dell'oggetto.

Si, puoi anche inserirlo come proprietà dell'oggetto le due soluzioni sono analoghe;
Messo così, quando i 5 canvas erano fermi funzionavano bene(su explorer), quando li ho messi in movimento hanno smesso di funzionare, quindi come vedrai nella posizione di arrivo o messo 5 rettangoli invisibili che si chiamano mask_Ita mask_Fra ecc.
Se ci fai caso sono linkabili anche se il canvas con i testi e la bandiera corrispondente non è arrivato a destinazione.

Eh si, non è il massimo;
Come ti dicevo in explorer funziona in firefox no, eppure dovrebbe.
Cosa ne pensi?

Ho guardato il tuo codice e secondo me non funziona nemmeno con IE  , la causa del non funzionamento è dovuta al fatto che durante l'animazione di ingrandimento del testo, quest'ultimo diventa così grande che il suo ingombro copre gli oggetti sottostanti, nonostante tu lo faccia diventare trasparente; io ho spostato il canvas PrimaUscita in alto nello XAML, per intenderci sopra i canvas delle bandierine, in modo che questo oggetto stia ad un livello più basso di quest'ultime e la sua animazione non influisca sul resto.
In questo modo ho visto che tutto funziona correttamente.
Ciao e grazie
Furio

Prego  ciao!

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
35 messaggi dal 22 aprile 2002
ciao Alessio
ho cancella il canvas del testo gigante, ho ridotto il canvas della riga copy che era grande come tuttaq la pagina, ho eliminato le maschere trasparenti.
Su explorer funziona (solo l'Italia ha una pagina di destinazione, le altre lingue vanno sulla apgina di errore perchè non ci sono fisicamente), mentre con firefox e su macintosh non parte il link anche se il cursore indica che è cliccabile.
Sono 2 ore che rigiro il codice, e siccome ho visto che tu non muovi i canvas che fungono da bottoni, ma un canvas contenitore dei 2, ho fatto lo stesso, ho inserito il canvas Italiano con le funzione del mouse in uno canvas da trasporto, ma il problema è rimasto.
Sto impazzendo.
ciao
Furio
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Mi sembra tutto apposto, l'unica cosa è che firefox non accetta la sintassi che usi per i link:
location.href("IT/Default.aspx");

e vuole invece:
location.href = "IT/Default.aspx";

e dato che a IE va bene lo stesso  direi che devi usare questa che è più corretta.

A tal proposito, se non lo usi già, ti consiglio di istallare firebug, un addin per firefox che consente un buon controllo dell'html, css e javascript delle pagine web, da messaggi di errore più chiari di IE e ti consente anche di modificare il codice e di testarlo in modo da velocizzare il debug.

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
35 messaggi dal 22 aprile 2002
Evvai, lo immaginavo che fosse una cosa da poco l'errore, ma a non saperlo sembra insormontabile.
Grazie mille Alessio, ho già installa firebug, ottimo consiglio.
Ti devo un caffè.
Ora vado a San Donato a vedere "The next web now" e cercherò di imparare ancora qualcosa.
Grazie ancora.
Furio
p.s. ovviamente sono impegnato a scrivere il codice di intercettazione del SO

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.