Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-12-2011, 14:44   #1 (permalink)
Fohlen-Power
 
Benutzerbild von enky
 
Registriert seit: Mar 2007
Beiträge: 1.223
Kuchenstücke im Diagramm - Jedes Teil eigener Filter

Hallo zusammen,

ich habe hier etwas wo ich nicht mehr weiterkommen. Im Anhang findet ihr ein Tortendiagramm (als cs5 und cs4 fla). Dort könnt per Texteingabe den Kuchen erzeugen.

Wo ich nicht weiterkomme ist es, jedem einzelnen Kuchenstück einen Filter zuzuweisen.

Jetzt ist es ja so, dass der Kreis als ganzes mit einem Filter belegt wird.

Vielen Dank für eure Hilfe im Vorraus. Ich setz hier nochmal mein AS in den Post, aber die FLA ist ja zum Runterladen am Ende des Beitrags. Danke.

PHP-Code:
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.events.Event;
import flash.filters.*;

const 
RADIANS_TO_DEGREES:Number Math.PI 180;
const 
PRECISION:Number .1;
var 
con:MovieClip = new MovieClip();
var 
spr:Sprite = new Sprite();
var 
sMC:MovieClip = new MovieClip();
var 
colorRND:Number;
var 
segmentColors:Array = new Array();
var 
prozente:Array = new Array();
var 
totalS:Number;

var 
myShadow:DropShadowFilter = new DropShadowFilter();
myShadow= new DropShadowFilter();
myShadow.distance 10;
myShadow.color 0x000000;
myShadow.blurX 10;
myShadow.blurY 10;
myShadow.quality 3;



var 
myBevel:BevelFilter = new BevelFilter();
myBevel.type BitmapFilterType.FULL;
myBevel.distance 5;
myBevel.knockout false;
myBevel.highlightColor 0xcccccc;
myBevel.shadowColor 0xdddddd;
myBevel.type BitmapFilterType.INNER;



function 
drawEllipseSegment(col:uintstartAngle:Numberangle:NumberxRad:NumberyRad:Number) {



    
addChild(spr);
    
//spr.filters = [myShadow];

    
var spr.graphics;
    var 
currAngle:Number startAngle;
    
g.moveTo(00);
    
g.beginFill(col100);
    
g.lineStyle(1col100);
    while (
currAngle <= angle startAngle) {
        var 
x:Number Math.sin(currAngle RADIANS_TO_DEGREES) * xRad;
        var 
y:Number Math.cos(currAngle RADIANS_TO_DEGREES) * yRad;
        
g.lineTo(xy);
        
currAngle +=  PRECISION;
    }
    
g.endFill();


    
spr.200;
    
spr.200;

    
sMC = new MovieClip();
    
addChild(sMC);
    
sMC.addChild(spr);
    
sMC.filters = [myShadow,myBevel];
}




//WinkelDistanzen berechnen
var winkelDistanz:Array = new Array();
var 
sArray:Array = new Array();

var 
sW:Number 0;
var 
eW:Number 0;

function 
dia() {
    
trace("func dia");
    
sW 0;
    
eW 0;
    
sArray = new Array();
    
winkelDistanz = new Array();

    
sArray.push(sW);

    for (var 
i:Number 0i<totalSi++) {

        var 
temp:Number prozente[i] * 3.6;
        
winkelDistanz.push(prozente[i] * 3.6);

        
sW sW temp;
        
sArray.push(sW);


        if (
== totalS 1) {
            
//trace(winkelDistanz);
            //trace("--");
            //trace(sArray);
            
createDia();
        }
    }
}


function 
createDia() {
    
trace("func createDIA");
    for (var 
i:Number=0i<totalSi++) {
        
colorRND Math.round(Math.random() * 0xFFFFFF);
        
segmentColors.push(colorRND);
        
drawEllipseSegment(colorRNDsArray[i],winkelDistanz[i], 100100);
        if (
== totalS 1) {
            
//spr.rotationX = -45;
            //spr.rotationY =10;
            
stage.addEventListener(Event.ENTER_FRAME,rota);
            
textIt();
        }
    }
}


//3D Rotation---------------------------------------------------------------;

function rota(e:Event) {
    
spr.rotation +=  1;
    
//spr.rotationY +=1;
}


//--------------------------------------------------------------------------;
cl_mc.addEventListener(MouseEvent.CLICK,userSet);


function 
userSet(e:MouseEvent) {
    
trace("func userSet");
    var 
str:String eingabe_txt.text;

    
prozente = new Array();
    
prozente str.split(",");

    
totalS prozente.length;

    
dia();
}

//dia();


//----------------------------------------------------------------------------;

clear_mc.addEventListener(MouseEvent.CLICK,clearIt);

function 
clearIt(e:MouseEvent) {
    
//removeChild(spr);
    
removeChild(sMC);

}



//text

var myTextField:TextField = new TextField();
addChild(myTextField);

function 
textIt() {

    
myTextField.text "";
    
myTextField.width 450;
    
myTextField.multiline true;
    
myTextField.wordWrap true;
    
myTextField.autoSize "left";

    for (var 
i:Number 0iprozente.lengthi++) {

        var 
tze "Stimmen: " Math.round(Number(prozente[i])) + "%" " für Color: " segmentColors[i] + "\n";
        
//var tze = i + " - ";

        
myTextField.appendText(tze);

    }

Angehängte Dateien
Dateityp: zip diagramm2_ff.zip (17,4 KB, 1x aufgerufen)
__________________
Vielen Dank für euer Verständnis für einen Flash Noob !!!
enky ist offline   Mit Zitat antworten
Alt 02-12-2011, 15:04   #2 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
wo genau liegt das problem?

du benötigst halt für jedes diagrammteil ein displayobject...
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 02-12-2011, 15:50   #3 (permalink)
Fohlen-Power
 
Benutzerbild von enky
 
Registriert seit: Mar 2007
Beiträge: 1.223
Ok. dein Tipp hat hat mich schon weitergebracht. Vielen Dank. Wer mal schauen mag, ich hänge die aktuelle Fassung mal dran. Ist zwar noch nicht ganz fertig und sauber, aber schon mal ein "ordentlicher" Ansatz
Angehängte Dateien
Dateityp: zip diagramm3.zip (17,5 KB, 3x aufgerufen)
__________________
Vielen Dank für euer Verständnis für einen Flash Noob !!!
enky ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Vektorgraphik: Kreis in gleiche Kuchenstücke einteilen WiseGuy Flash Einsteiger 4 24-07-2007 10:34
Grafik beim Ziehen zum Teil durchsichtig, zum Teil transparent Heikit4711 ActionScript 1 6 23-09-2005 11:48
3D Diagramm da_killerk Flash MX 2 28-06-2004 13:39
bei (enterFrame) nicht jedes bild überprüfen, sondern nur jedes 2., 3. oder zufällig? Aule ActionScript 1 2 14-08-2003 09:14
diagramm j303 ActionScript 1 3 26-05-2003 10:12


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele