Autor | Zpráva | ||
---|---|---|---|
Radeko Profil * |
#1 · Zasláno: 26. 6. 2007, 21:54:16
onClipEvent (load) {
this.getDepth(5); cilX = _root.baloon._x; cilY = _root.baloon._y; rychlost = 10; } onClipEvent (enterFrame) { if (Key.isDown(Key.LEFT) & this._x>25) { this._x -= rychlost; } if (Key.isDown(Key.RIGHT) & this._x<250) { this._x += rychlost; } if (Key.isDown(Key.UP) & this._y>50) { this._y -= rychlost; } if (Key.isDown(Key.DOWN) & this._y<320) { this._y += rychlost; } if (Key.isDown(Key.SPACE)) { attachMovie("raketa", "raketa", 1); _root.raketa._x = this._x; while (_root.raketa._x != _root.baloon._x) { raketa._rotation = Math.atan2(raketa._y-cilY, raketa._x-cilX)*180/Math.PI; raketa._x += 20; raketa._y += 20; } } } Dobrý den, Prosimvás, nevíte, proč se mi ta raketa nepohybuje ? Předem děkuji za každou odpověd'. |
||
Radeko Profil * |
#2 · Zasláno: 26. 6. 2007, 21:59:13
Mimochodem tenhle script je napsaný v objektu, který je na scéně.
Raketa je objekt v knihovně a je bez scriptu. Baloon je objekt na scéně a taky bez scriptu. |
||
Radeko Profil * |
#3 · Zasláno: 26. 6. 2007, 22:09:18
Taky jsem chtěl dát část toho scriptu pomocí onClipEvent() na raketu, ale nešlo to.
|
||
dredie Profil |
#4 · Zasláno: 26. 6. 2007, 22:12:29
mas to cele dost blbe napsane. Cely skript by chtel prepacovat:
1. nepouzvej skripty pridruzene k objektum, vsechno cpi na timeline 2. onEnterFrame pouzij pouze v pripade, ze je zmacknuta nejaka klavesa. Nema smysl spoustet vsechny ty funkce porad dokola - co osobne nechapu na tvem skriptu: this.getDepth(5); - to ma byt co? getDepth, pokud vim, vraci hodnotu, ale zadnou neprijima attachMovie("raketa", "raketa", 1); - mas hozene uvnitr onEntrFrame - to se ti porad dokolo kopiruje raketa z knihovny? Proc? Myslim ze v teto casti skriptu bude zasadni problem - raketa se porad pripojuje na stejne souradnice (navic cela provazanost vypoctu souradnic podle me nedava smysl - generuje stale stejna cisla, aspon tak to vypada), tudiz se nemzue pohnout ani o pixel... ...ale v tomhle skriptu aby se prase vyznalo, to ti reknu d. |
||
Radeko Profil * |
#5 · Zasláno: 26. 6. 2007, 22:15:31
Děkuju :)
|
||
Radeko Profil * |
#6 · Zasláno: 26. 6. 2007, 22:35:04
Ale když to nacpu na timeline, tak nemůžu používat onClipEvent().
Takže tlačítka nereagují. |
||
Flashman4D Profil |
#7 · Zasláno: 26. 6. 2007, 23:51:56 · Upravil/a: Flashman4D
Radeko
na timeline se použije takto pro enterFrame nazevMC.onEnterFrame = function () { trace (nazevMC._name); }; pro load podobně nazevMC.onLoad = function () { trace (nazevMC._name); }; |
||
Rokka Profil |
#8 · Zasláno: 27. 6. 2007, 00:47:25
A co pouzit tohle
var speed:Number = 10; _root.onEnterFrame = function() { if (Key.isDown(Key.RIGHT)) { balloon_mc._x += speed; } else if (Key.isDown(Key.LEFT)) { balloon_mc._x -= speed; } if (Key.isDown(Key.UP)) { balloon_mc._y -= speed; } else if (Key.isDown(Key.DOWN)) { balloon_mc._y += speed; } }; |
||
dredie Profil |
#9 · Zasláno: 27. 6. 2007, 12:44:57
Rokka
a co takhle: var raketa:MovieClip = this.attachMovie("raketa", "raketa", 5) var myListener:Object = new Object(); var speed:Number = 10; function myOnKeyDown():Void { if (Key.isDown(Key.RIGHT)) { myFucntion(raketa, right); } if(Key.isDwn(key.LEFT)) { myFucntion(raketa, left); } } function myOnKeyUp(target):Void { delete target.onEnterFrame; } function myFunction(target, direction):Void { if (target.onEnterFrame != undefined) { delete target.onEnterFrame; } if(direction == "right"){ target.onEnterFrame = function():Void { target._x+=speed; } } if(direction == "left"){ target.onEnterFrame = function():Void { target._x-=speed; } } } } Key.addListener(myListener); myListener.onKeyDown = myOnKeyDown; myListener.onKeyUp = myOnKeyUp; solim to z hlavy, tak nezarucuju bezchybovost, ale myslim ze logika by mela byt spravna d. |
||
Radeko Profil * |
#10 · Zasláno: 28. 6. 2007, 15:17:24
dredie
Rokka Flashman4D Děkuji všem :) |
||
Radeko Profil * |
#11 · Zasláno: 28. 6. 2007, 16:40:31
var raketa:MovieClip = this.attachMovie("raketa", "raketa", 5)
var myListener:Object = new Object(); var speed:Number = 10; function myOnKeyDown():Void { if (Key.isDown(Key.RIGHT)) { myFucntion(raketa, right); } if(Key.isDown(Key.LEFT)) { myFucntion(raketa, left); } } function myOnKeyUp(target):Void { delete target.onEnterFrame; } function myFunction(target, direction):Void { if (target.onEnterFrame != undefined) { delete target.onEnterFrame; } if(direction == "right"){ target.onEnterFrame = function():Void { target._x+=speed; } } if(direction == "left"){ target.onEnterFrame = function():Void { target._x-=speed; } } } Key.addListener(myListener); myListener.onKeyDown = myOnKeyDown; myListener.onKeyUp = myOnKeyUp; Funguje vám tento kód ? |
||
Časová prodleva: 7 dní
|
|||
embee Profil |
#12 · Zasláno: 5. 7. 2007, 22:13:09
Radeko
ve volani funkce myFunction je spatne deklarovany argument, ma tam byt "left" a "right" - je to precejenom promena typu string. Samotne left nebo right nic neznamena. |
||
Časová prodleva: 17 let
|
0