Flash Actionscript 1.0 / 2.0 problemen

Pagina: 1
Acties:

  • fommes
  • Registratie: Mei 2004
  • Laatst online: 08-01 15:49
Beste medetweakers,

ik ben bezig met een simpele flash game maken, maar wil nu de actionscriptcode die ik gemaakt heb in de flash movie in externe .as bestanden planten zoals actionscript 2.0 dit aangeeft, maar kom er niet helemaal uit.

Het spel is een soort alien shooter waar ufos van boven naar beneden komen vliegen, en de gebruiker met pijltje links / rechts en spatie een laserkanon bestuurd.

Als ik nu de functions die ik gemaakt heb in een class zet krijg ik verschillende errors, waarvan ik de meeste wel op kan lossen alleen 1 error message geeft: "function does not have the static attribute..." maar zodra ik de function een static attribute geef kunnen er dus geen ""dynamische" variabelen in de functie staan

Welke code kan ik het beste in externe bestanden zetten, en welke kan ik in de timeline laten staan?

Ik hoop dat iemand begrijpt met wat ik probeer uit te leggen dit is mijn code:

(ik zet het even in php tags voor de leesbaarheid)

PHP:
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/************variables************/

/************Variables declareren************/
//snelheid waarmee het laserkanon links en rechts gaat
var gunSpeed:Number = 10;
//snelheid waarmee de laser afgeschoten wordt
var laserSpeed:Number = 30;
//beginsnelheid van de ufo
var ufoSpeed:Number = 10;
//countervariabele om aantal laserstralen bij te houden
var laserCount:Number = 1;
//countervariabele om aantal ufo's bij te houden
var ufoCount:Number = 1;
var score:Number = 0;
var misses:Number = 0;

/************create objects************/

//Object aanmaken die bijhoudt of bepaalde toetsen ingedrukt worden
var keyListener:Object = new Object();
//Object aanmaken die de instellingen meegeeft aan de verschillende laserstralen
var initLaser:Object = new Object();
//Object aanmaken die de instellingen meegeeft aan de verschillende ufo's
var initUfo:Object = new Object();

/**********handle events**************/


                        
//zodra er een ufo in beeld wordt gezet door de functie newUfo()  gaat de volgende event doorlopend draaien

initUfo.onEnterFrame = function() {
    
    // Hier wordt de y coordinaat van ufo telkens met alienSpeed opgeteld (verplaatsing van de ufo naar beneden) ()
    
    this._y += ufoSpeed;

    //if statement zodra het y coordinaat groter wordt als de hoogte van de stage moet de movieclip verwijderd worden, anders blijft hij in het oneindige naar beneden gaan (buiten beeld) en dit kost processor en laad tijd.
    
    if (this._y>Stage.height) {
        misses+=1;
        txtMisses.text=String(misses);
        removeMovieClip(this);
        if(misses == 5){

mcGameOver.txtEndScore.text = score;
mcGameOver._visible = true;
clearInterval(game);

}

    }
};
initLaser.onEnterFrame = function() {
    this._y -= laserSpeed;
            if (this._y <0) {
        removeMovieClip(this);
    }
//in de onderstaande for lus wordt er gekeken of een laserstraal een ufo raakt
//zolang i kleiner is als ufoCount blijft de lus checken of een kogel een ufo raakt
for (i=1; i<=ufoCount; i++) {
    if (this.hitTest(this._parent["mcUfo"+i])) {
        //zodra een laserstraal een ufo raakt, wordt de ufo (en de laserstraal) verwijderd 
        score+= 1;
                txtScore.text=String(score);
        removeMovieClip(this._parent["mcUfo"+i]);
        removeMovieClip(this);
    }
}
};
//zodra de spatie ingedrukt wordt door gebruiker moet er een nieuwe laserstraal aangemaakt worden dmv function newlaser
keyListener.onKeyDown = function() {
    if (Key.isDown(Key.SPACE)) {
        newLaser();
    }
};

//zodra er op de linker of rechter pijltjes toets gedrukt wordt moet de lasergun zich naar links of rechts verplaatsen
mcGun.onEnterFrame = function() {
    if (Key.isDown(Key.RIGHT)) {
        if (this._x<Stage.width-this._width) {
            this._x += gunSpeed;
        }
    }
    if (Key.isDown(Key.LEFT)) {
        if (this._x>0) {
            this._x -= gunSpeed;
        }
    }
};
mcRestart.onRelease = function(){
score=0;
misses=0;
mcGameOver._visible = false;
mcRestart._visible = false;
Key.addListener(keyListener);
var game:Number = setInterval(this,"newUfo",500);
}
/*************functions***************/

function newLaser() {
    laserName = "mcLaser"+String(laserCount);
    laserDepth = this.getNextHighestDepth();
    this.attachMovie("laser", laserName, laserDepth, initLaser);
    this[laserName]._x = mcGun._x+mcGun._width/2;
    this[laserName]._y = mcGun._y;
    laserCount++;
}
function newUfo() {
    ufoName = "mcUfo"+String(ufoCount);
    ufoDepth = this.getNextHighestDepth();
    this.attachMovie("ufo", ufoName, ufoDepth, initUfo);
    this[ufoName]._x = Math.random()*(Stage.width-this[ufoName]._width)+this[ufoName]._width/2;
    this[ufoName]._y = -50;
    ufoCount++;
}

/************set properties*************/

/**************run now***************/
mcGameOver._visible = false;
Key.addListener(keyListener);
var game:Number = setInterval(this,"newUfo",500);



Edit:
Voor de mensen die het willen proberen ;)

http://www.tom-it.nl/flashgame/game.html

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heb je de diverse sites al gelezen hoe je om moet gaan met de AS2.0 opzet?

http://www.sitepoint.com/...onscript-migration-basics

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.


  • fommes
  • Registratie: Mei 2004
  • Laatst online: 08-01 15:49
Bedankt voor de link ik ga het vanmiddag eens doornemen, heb wel veel AS2.0 Tutorials maar deze lijkt me duidelijker.

Heb vorige week een DVD met zo'n 10 uur aan actionscript tutorials doorgenomen blijkt achteraf dat het niet de AS 2.0 standaarden aanhoud |:(

Nouja kan ik van de week AS 2.0 leren :*)