JavaFx - Meu primeiro teste e já não consigo entender um problema

3 respostas
Flasoft
Minha duvida é com relação ao bind
var incx: Number = 0.1;
var vx: Number = 0.0;
var vy: Number = 0.0;

Stage {
    title: "Application title"
    scene: Scene {
        width: 500
        height: 500
        fill: LinearGradient {
            startX: 0.0
            startY: 0.0
            endX: 0.0
            endY: 1.0
            stops: [
                Stop {
                    color: Color.WHITE
                    offset: 0.0
                },
                Stop {
                    color: Color.WHITESMOKE
                    offset: 1.0
                },
            ]
        }

        content: [
            Ellipse {
                centerX: 250, centerY: 250
                radiusX: 200, radiusY: 200
                fill: bind RadialGradient {
                    centerX: vx
                    centerY: vy
                    //centerX: bind vx
                    //centerY: bind vy
                    stops: [
                        Stop {
                            color: Color.LIGHTPINK
                            offset: 0.0
                        },
                        Stop {
                            color: Color.DARKRED
                            offset: 1.0
                        },
                    ]
                }
            }
        ]
    }
}
Timeline {
    repeatCount: Timeline.INDEFINITE
    keyFrames: [
        KeyFrame {
            time: 0.1s
            action: function() {
                vx += incx;
                if (vx >= 1) {
                    vx = 1;
                    incx = incx * (-1);
                } else if (vx <= 0) {
                    vx = 0;
                    incx = incx * (-1);
                }
            }

        }
    ];
}.play()
Por que na criação do gradiente da circunferência quando tento retirar o bind da linha "fill: bind RadialGradient {" e alterar as linhas de centerX e centerY para "centerX: bind vx" e "centerY: bind vy" ocorre os erros:
Main.fx:52:  centerX has script only (default) bind access in javafx.scene.paint.RadialGradient
                    centerX: bind vx
Main.fx:53: centerY has script only (default) bind access in javafx.scene.paint.RadialGradient
                    centerY: bind vy
2 errors

Pelo que eu entendi ao colocar o bind no objeto RadialGradiente sempre que o valor é alterado um novo objeto é criado... e no processo que estou tentando fazer não...
Alguém poderia me ajudar?

3 Respostas

Flasoft

Ninguém sabe como responder?

Eu acho que o motivo é que está propriedade está com o modificador de acesso “public-init”…
mas queria uma confirmação afinal é meu primeiro exercicio com a linguagem!

Poderiam me ajudar?

Flasoft

Como imaginei, o modificador de acesso destes atributos é “public-init”

24h depois achei a API… :smiley:
file:///C:/Program%20Files/NetBeans%206.9.1/javafx/javafx-sdk/docs/api/javafx.scene.paint/javafx.scene.paint.RadialGradient.html

[]s

e obrigado para aqueles que tentaram me ajudar!

Jesuino_Master

Viu, vc matou :smiley:

Depois que você faz um bind, a variável vira uma constante, mas o bind só é usado na declaração da variável…

A documentação que você citou, mas online, está aqui:

http://download.oracle.com/docs/cd/E17802_01/javafx/javafx/1/docs/api/javafx.scene.paint/javafx.scene.paint.RadialGradient.html

[]'s

Criado 25 de novembro de 2010
Ultima resposta 25 de nov. de 2010
Respostas 3
Participantes 2