Autor Zpráva
Radeko
Profil *
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 *
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 *
Taky jsem chtěl dát část toho scriptu pomocí onClipEvent() na raketu, ale nešlo to.
dredie
Profil
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 *
Děkuju :)
Radeko
Profil *
Ale když to nacpu na timeline, tak nemůžu používat onClipEvent().
Takže tlačítka nereagují.
Flashman4D
Profil
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
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
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 *
dredie
Rokka
Flashman4D

Děkuji všem :)
Radeko
Profil *
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 ?
embee
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: