Toon posts:

[Flash8] LocalConnection + API

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit al een paar weken te weken aan een Interface voor een project waar ik mee bezig ben. De bedoeling is dat het een GUI wordt waar aan in een scherm getekend kan worden en deze tekening vervolgens in realtime geprojecteerd wordt op een ander scherm ( thus in een ander programma ). Nu ben ik redelijk goed met flash, en heb dmv mn bestaande kennis en het nieuwe API-tool in flash een basic drawing pad kunnen maken (outgoing.fla).

Nu heb ik deze drawing pad dmveen LocalConnection aan een incoming kunnen hangen (incoming.fla) waarbij de outgoing na iedere getekende streep een waarde voor _xmouse en _ymouse doorgeeft. Deze wordt vervolgens ingeladen in de incoming en de API code tekend het beeld af. Nu zit ik met een probleem dat mijn waardes goed door worden gegeven, maar soms doet geeft hij geen eindwaarde door, soms begint hij totaal ergens anders, en een andere keer doet hij het wel prefect. De begin en eindwaardes kloppen dus soms niet ( of eigenlijk moet ik zeggen, kloppen soms wel)

Nu denk ik persoonlijk dat de code te zwaar is, dat er een bepaalde lag insluipt die de foute waardes doorstuurd, al heb ik zelf geen idee hoe ik de code minder zwaar zou kunnen krijgen ( ik had al geprobeerd of ik elke keer een nieuwe connectie aan kon leggen als er 1 lijn getekend was, maar dit hielp ook niet) Ook bij het doorsturen van minder waardes ( timer ) werkt niet, en de tekening wordt er niet bepaald mooier op.

Of er zit ergens een fout in mn code. Ik heb ook al geprobeerd om de LocalConnection pas aan te zetten als je begint met tekenen (dus onMouseMove ) etc. maar niks mag baten.

Ik hoop dat er aan en/of opmerkingen zijn. Misschien weten de grote flashnamen waar de fout zit, ik heb me er nu al een beetje op doodgestaard en zit er in vast.

De volgende bestanden gebruik ik:
http://www.student.tue.nl...hensberg/GOT/incoming.fla
http://www.student.tue.nl...hensberg/GOT/outgoing.fla

Ik hoop dat we er samen uit kunnen komen, ik wil dit nl erg graag afmaken :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ondanks dat Flash voornamelijk grafisch is, hoort dit wel degelijk in Webdesign, Markup & Clientside Scripting. Ik verplaats je topic dan ook bij deze. :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
okay :) tnx!

  • LB Back
  • Registratie: November 2004
  • Laatst online: 03-06 11:07
Op zich was je al een heel eind, alleen makeerden er een paar dingen:

1) waarschijnlijk zorgt een framerate van 60 ervoor dat het erg zwaar wordt, vooral voor wat oudere machines, als je die op 20 zet krijg je bovendien ook vloeiendere lijnen.

2) De incoming film weet niet wanneer hij moet beginnen en stoppen met tekenen en doet daarom maar steeds een lineTo

3) Die clipEvent EnterFrame in de incoming.swf is niet nodig, overzichtelijker is het om het in een this.onEnterFrame te zetten

Dit werkt wel (frameRate van beide films op 20 zetten):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/**********************************************************************
outgoing.fla:
**********************************************************************/
//root variables
createEmptyMovieClip("line", 1);
sending = new LocalConnection();
//functie voor het klikken
onMouseDown = function () {
    //versturen van klik-waarde
    sending.send("myConnection", "displayMessage", _xmouse);
    sending.send("myConnection", "displayMessage2", _ymouse);
    line.moveTo(_xmouse, _ymouse);
    line.lineStyle(4, 0x000000, 100);
    //functie voor het bewegen
    this.onMouseMove = function() {
        // beweegt de muis? :
        _root.mouseMoving = true;
        line.lineTo(_xmouse, _ymouse);
        //versturen van bewegende waardes
        sending.send("myConnection", "displayMessage3", _xmouse);
        sending.send("myConnection", "displayMessage4", _ymouse);
        sending.send("myConnection", "mouseState", _root.mouseMoving);
        updateAfterEvent();
    };
};
// laatste handelingen voor het buttonrelease
onMouseUp = function () {
    //versturen van eindwaardes
    sending.send("myConnection", "displayMessage3", _xmouse);
    sending.send("myConnection", "displayMessage4", _ymouse);
    //stopzetten van het tekenen
    this.onMouseMove = null;
    // beweegt de muis? :
    _root.mouseMoving = false;
    sending.send("myConnection", "mouseState", _root.mouseMoving);
};
/**********************************************************************
incoming.fla:
**********************************************************************/
// opzetten van root
_root.receiving = new LocalConnection();
createEmptyMovieClip("line", 1);
//opzetten van receiving methods
_root.receiving.displayMessage = function(receivedMessage) {
    _root.xmuis = receivedMessage;
};
_root.receiving.displayMessage2 = function(receivedMessage) {
    _root.ymuis = receivedMessage;
};
_root.receiving.displayMessage3 = function(receivedMessage) {
    _root.xmuis2 = receivedMessage;
};
_root.receiving.displayMessage4 = function(receivedMessage) {
    _root.ymuis2 = receivedMessage;
};
_root.receiving.mouseState = function(receivedMessage) {
    _root.mouseMoving = receivedMessage;
};
_root.receiving.connect("myConnection");
this.onEnterFrame = function() {
    if (_root.mouseMoving == true) {
        //opzetten van eerste ontvangst van waardes
        _root.line.moveTo(_root.xmuis, _root.ymuis);
        _root.line.lineStyle(4, 0x000000, 100);
        //de 2e waarde als eerste zetten, zodat de lijn doorgetrokken wordt.
        _root.xmuis = _root.xmuis2;
        _root.ymuis = _root.ymuis2;
        //gebruiken van 2e waarde van de lijn
        _root.line.lineTo(_root.xmuis2, _root.ymuis2);
        updateAfterEvent;
    }
};

Verwijderd

Topicstarter
Held _/-\o_

Ik heb het net eventjes getest en het werkt idd, ik kijk er vanmiddag nog even na en dan geef ik nog even wat na-commentaar ( hoe en wat etc.)

Maar alvast bedankt !!