Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586

    Disegnre dinamicamente delle linee utilizzando delle coordinate

    salve a tutti sapete dirmi se è possibile disegnare per esempio un triangolo dinamicamente? mi spiego megli se io inserisco in un arrai le coordinate dei 3 vertici esiste un modo per far disegnare le linee a flash?
    Preferirei provare ad usare AS3 sapete se posso trovare un tutorial valido sull'argomento?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    c'è un articolo sui drawing metods sul sito, ma è realizzato per AS1... anche se in realtà in as3 non cambia molto, solo che esiste una classe preposta per il disegno runtime

    per fare un triangolo a coordinate libere ad esempio io ho scritto questa funzione:

    Codice PHP:
    function drawTriangle(n:StringvObj:Objectb:Number=0bCol:Number=0c:Number=0iObj:Object=null):Shape {
        var 
    s:Shape=new Shape;
        
    s.name=n;
        
    with (s) {
            if (
    iObj != null) {
                
    iObj.!= undefined iObj.0;
                
    iObj.!= undefined iObj.0;
                
    scaleX iObj.scaleX != undefined iObj.scaleX 1;
                
    scaleY iObj.scaleY != undefined iObj.scaleY 1;
                
    alpha iObj.alpha != undefined iObj.alpha 1;
                
    rotation iObj.rotation != undefined iObj.rotation 0;
                
    alphaFill iObj.alphaFill != undefined iObj.alphaFill 1;
            } else {
                
    x=0;
                
    y=0;
                
    scaleX=1;
                
    scaleY=1;
                
    alpha=1;
                
    rotation=0;
                
    alphaFill=1;
            }
            
    graphics.lineStyle(== 0?b=undefined:b,bCol);
            
    graphics.moveTo(vObj.ax,vObj.ay);
            
    graphics.beginFill(c,alphaFill);
            
    graphics.lineTo(vObj.bx,vObj.by);
            
    graphics.lineTo(vObj.cx,vObj.cy);
            
    graphics.lineTo(vObj.ax,vObj.ay);
            
    graphics.endFill();
        }
        return 
    s;

    che si usa così

    Codice PHP:
    var shape:Shape drawTriangle("triangle", {ax: -100ay:100bx:100by:100cx:0cy:-100}, 0,0,0x00FFCC, {}));
    addChild(shape
    i parametri della funzione sono:

    n -> il nome da dare al clip

    vObj -> l'oggetto che contiene le coppie di valori che indicano le coordinate dei vertici del triangolo, rispettivamente :
    - ax,ay
    - bx,by
    - cx,cy

    b -> la dimensione del bordo

    bCol -> il colore del bordo

    c -> il colore del riempimento

    iObj -> un oggetto che raccoglie la definizione delle proprietà del shape, ad esempio le coordinate, la scala, l'apha, la rotazione ecc...

  3. #3
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    Fantastico ^-^ ora mi studio un po il tuo codice

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    Alla fine ho fatto così:
    Codice PHP:
    var myXML:XML = new XML();
    var 
    XML_URL:String "coordinate.xml";
    var 
    myXMLURL:URLRequest = new URLRequest(XML_URL);
    var 
    myLoader:URLLoader = new URLLoader(myXMLURL);
    myLoader.addEventListener("complete"xmlLoaded);

    function 
    xmlLoaded(event:Event):void {    
        var 
    myShape:Shape = new Shape();
        var 
    myForce:Boolean;
        
    myXML XML(myLoader.data);
        for 
    each (var myReg:XML in myXML.children()) {
            
    myForce true;
            for 
    each (var myCoord:XML in myReg.children()) {
                var 
    PX:Number Number(myCoord.attribute("PX"));
                var 
    PY:Number Number(myCoord.attribute("PY"));
                var 
    FG:Number Number(myCoord.attribute("FG"));
                
    myShape.graphics.lineStyle(10x990000.75);
                if (
    FG == || myForce == true) {
                    
    myShape.graphics.moveTo(PX,PY);
                } else {
                    
    myShape.graphics.lineStyle(10x000000.75);
                    
    myShape.graphics.lineTo(PX,PY);
                    
    myShape.graphics.endFill();

                }
                
    this.addChild(myShape);
                
    myForce false;
            }
        }

    prendendo le coordinate da un foglio xml posso disegnare qualunque forma ^-^

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.