Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    49

    menu contestuale in flex 3

    ciao a tutti...vi spiego il mio problema...
    sto programmando con flex 3 e ho bisogno di inserire un menu conterstuale, attivabile dal tasto destro del mouse, all'interno di un datagrid con circa 4 colonne e una decina di righe dove verranno caricati dei dati, tramite una chiamata ad un file php , di un database.
    come posso fare?
    grazie
    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    49
    ciao a tutti,
    ho sistemato il problema ora ho bisogno di sapere un'altra cosa:
    in qualunque posizione si trova il mouse ho bisogno che al suo click vengano passate le coordinate x e y ad un linkbutton.
    praticamente devo fare una cosa del genere:

    click del mouse-->cattura delle coordinate x e y-->passaggio di quest'ultime ad un bottone-->apparizione del bottone nelle coordinate catturate prima, e quindi in corrispondenza del mouse!

    spero di essermi fatto caprie...grazie a tutti

  3. #3
    beh nn ho mai usato flex ma in flash x rilevare le coordinate del mouse
    ti basta

    _root._xmouse
    _root._ymouse

    quindi una volta rilevate le puoi inviare ad un clip (che fungerà da boittone...)
    oppure direttamente dal bottone far riferimento ad esse
    quindi supponendo di avere un pulsante con istanza bottone

    quindi sarà invisibile all'inizio
    bottone._visible=false

    rilevo le coordinate e le metto in delle var

    mousex=_root._xmouse
    mousey=_root._ymouse

    e quindi nel bottone fai riferimento a mousex e mousey

    bottone._x=mousex
    bottone._y=mousey
    bottone._visible=true

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    49
    ciao,
    allora ho dichiarato le variabili mousex e mousey e questa è la funzione che viene eseguita quando clicco con il mouse:


    private function MenuOn (event:MouseEvent):void
    {
    mousex=root.xmouse;
    mousey=root.ymouse;
    ContMenu.x = mousex;
    ContMenu.y = mousey;
    ContMenu.visible=true;

    }



    ho levato gli underscore (_) perchè mi dava questo errore:
    accesso alla proprietà non definita _root


    il problema è che adesso mi da questo altro errore:

    Accesso a una proprietà non definita ymouse mediante un riferimento con tipo statico flash.displayisplayObject


    percaso devo fare l'import di qualcosa?
    al momento io ho solo import flash.events.MouseEvent;

    scusa ma sono davvero nuovo di flex3 e actionscript in generale

    grazie mille per l'aiuto.

  5. #5
    beh sinceramente flex nn lo conosco ...in action script come ho scritto dovrebbe fungere...
    sorry..
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    49
    ciao,
    nonostante tu non conosca flex mi hai dato un enorme aiuto...infatti sono riuscito a prelevare e inviare le coordinate del mouse con questo codice:

    private var mousex:*;
    private var mousey:*;

    Pannello.addEventListener(MouseEvent.RIGHT_CLICK, MenuOn);
    mousex=Pannello.mouseX;
    mousey=Pannello.mouseY;
    ContMenu.x = mousex;
    ContMenu.y = mousey;
    ContMenu.visible=true;

    ovviamente prima avevo creato un canvas inizializzato come invisibile.

    adesso ho un'altra richiesta moltosimile a questa, così continuo qua.

    ho bisogno di spostare una "finestra".
    ovvero al click su un pulsante si apre una finestra in una posizione statica mettiamo per esempio X="45" y="34"...quando si clicca sulla parte superiore di questa finestra bisogna che sia possibile spostare la finestra stessa, seguendo sempre le coordinate del mouse...proprio come avviene con le finestre di windows!
    la finestra in realtà non è altro che un canvas, ovvero un contenitore con all'interno un form da compilare...nulla di più...
    io pensavo di inserire un pulsante in alto a sinistra della finestra...al click del mouse rendeva la finestra mobile e poteva essere spostata... al rilascio del pulsante del mouse venivano trasferite le coordinate del mouse e veniva impostata la nuova posizione
    al momento però devo fare delle modifiche più importanti al programma e non posso provarlo...penso di essere stato chiaro...in caso chiedetemi...aspetto numerose proposte...eheheheh
    ciao a tutti

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    49
    ciao,
    sto provando a studiarmi per bene il codice ma ancora non mi è del tutto chiaro, un po' perchè il tipo si è creato dei pannelli personali che io non posso fare, (altrimenti devo stravolgere il mio progetto ormai avviato) e un po perchè sono alle prime armi con action script...riusciresti a farmi un esempio semplice di una finestra che viene spostata?
    anche una cosa così, scritta al volo, giusto per capire bene il funzionamento; alla fine è quello che mi manda in confusione...per esempio il tipo del progetto che mi hai postato ha utilizzato delle variabili xoff e yoff che non ho capito bene a cosa servono.
    aspetto ansioso tue notizie...grazie mille...
    Roberto

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    49
    ho deciso di postarvi un esempio...allora tramite il bottone appare la finestra con un metodo grezzissimo ma efficace...teoricamente dopo aver compilato i campi e cliccato su aggiungi si va a registrare un record in un database...ma non è quello il problema e nell'esempio il bottone aggiungi fa semplicemente sparire la finestra..
    Il problema è che devo riuscire a utilizzare quella finestra proprio come viene utilizzata una finestra di windows, con la possibilità di muoverla, ridimensionarla e ridurla alla sola parte superiore come nell'esempio postato prima da "fcolle"...
    spero di essere stato chiaro e che ci sia qualcuno disposto a darmi una mano...grazie in anticipo
    Ciao
    Roberto


    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Canvas x="0" y="0" width="687" height="534" id="CanvasPrincipale">
    <mx:Canvas bottom="20" left="30" id="WinAdd" visible="false" showEffect="Fade" hideEffect="Fade" borderStyle="solid" borderColor="#000000" cornerRadius="14" backgroundColor="#009DFF" backgroundAlpha="1.0" width="60%" height="40%" borderThickness="2" alpha="0.95">
    <mx:Canvas x="0" y="0" width="100%" height="30" backgroundColor="#0183D5" borderStyle="solid" cornerRadius="14" borderColor="#0183D5">
    <mx:Label x="0" y="0" text="Aggiungi" width="100%" height="33" fontSize="15" textAlign="center" fontWeight="bold" color="#FFFFFF"/>
    </mx:Canvas>
    <mx:Label x="20" y="50" text="TEXT INPUT 1" width="100%" fontWeight="bold" color="#FFFFFF"/>
    <mx:TextInput id="add1" x="165" y="50" editable="true" backgroundColor="#ADD5E2" color="#000000" fontWeight="bold"/>
    <mx:Label x="20" y="84" text="TEXT INPUT 2" width="100%" fontWeight="bold" color="#FFFFFF"/>
    <mx:TextInput id="Add2" x="165" y="84" editable="true" backgroundColor="#ADD5E2" color="#000000" fontWeight="bold"/>
    <mx:Button bottom="20" right="20" width="80" height="20" id="ChiudiAddNotecapi" label="Chiudi" click="WinAdd.visible=false" themeColor="#040709"/>
    <mx:Button bottom="20" right="120" width="100" height="20" id="ConfAddNotecapi" label="Aggiungi" click="WinAdd.visible=false" themeColor="#040709"/>
    </mx:Canvas>
    <mx:Button x="0" y="0" label="click" id="Button" click="WinAdd.visible=true"/>
    </mx:Canvas>

    </mx:WindowedApplication>


    p.s. mi spaice aver postato il codice così ma non so come fare ad inserirlo in altro modo...se preferite posto il codice con il solo file mxml...aspetto vostre notizie...grazie ancora!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    54

    In prima approssimazione

    In prima approssimazione, ecco quello che devi fare. Occhio però che questo codice
    funziona solo quando il puntatore del mouse sta sopra al pannello. Per fare qualcosa
    di più decente dovresti intercettare gli eventi del mouse anche sul canvas contenitore


    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
    	<![CDATA[
    		import mx.events.DragEvent;
    		
    		private var moving:Boolean=false;
    		
    		private var x0:int=0;
    		private var y0:int=0;
    		
    		
    		protected function onMouseDown(Evt:MouseEvent):void
    		{
    		    moving=true;
    		   x0=Evt.localX;
    		   y0=Evt.localY;
    		}
    		
    		protected function onMouseMove(Evt:MouseEvent):void
    		{
    		   if(moving)
    		   {
    		        mioPannello.x=mioPannello.x+(Evt.localX-x0);
    		        mioPannello.y=mioPannello.y+(Evt.localY-y0);
    		   }
    		
    		}
    		
    		protected function onMouseUp(Evt:MouseEvent):void
    		{
    		   moving=false;
    		
    		}
    	]]>
    </mx:Script>
    
    <mx:Canvas x="0" y="0" width="687" height="534" id="CanvasPrincipale" >
      <mx:Panel id="mioPannello" width="64" height="64" 
      	 title="spostami"  mouseDown="onMouseDown(event)" mouseMove="onMouseMove(event)"
      	 mouseUp="onMouseUp(event)">
      	
      </mx:Panel>
    </mx:Canvas>
    
    </mx:Application>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.