Avatar billede sprutnik Nybegynder
03. september 2006 - 22:36 Der er 8 kommentarer og
1 løsning

Flyt af mc er forsinket

Hvis jeg f.eks. anvender understående kode til at flytte et mc, opstår der en lille forsinkelse i responsen. Trykker jeg først på tasten RIGHT og dernæst på tasten LEFT, flytter mc sig 4px til venstre og holder dernæst en pause på et halvt sekund, hvorefter den bevæger sig "flydende". Hvorfor opstår den lille pause og kan ovenstående skrives på en måde, så det problem undgås?
Det er skrevet i Flash Lite 2.0

MovieClip.prototype.flytBar = function() {
    var keyListener:Object = new Object();
    keyListener.onKeyDown = function() {
        if (Key.getCode() == Key.RIGHT) {
            bar._x += 4;
        }
        if (Key.getCode() == Key.LEFT) {
            bar._x -= 4;
        }
    };
    Key.addListener(keyListener);
};
Avatar billede thulstrup Nybegynder
03. september 2006 - 22:42 #1
Jeg kender godt nok ikke Flash Lite, men prøv om nedenstående ikke kan benyttes:

MovieClip.prototype.flytBar = function() {
    var keyListener:Object = new Object();
    keyListener.mc = this;
    keyListener.onKeyDown = function() {
        this.mc.onEnterFrame = function() {
            if (Key.getCode() == Key.RIGHT) {
                this._x += 4;
            }
            else if (Key.getCode() == Key.LEFT) {
                this._x -= 4;
            }
        };
    };
    keyListener.onKeyUp = function() {
        delete this.mc.onEnterFrame;
    };
    Key.addListener(keyListener);
};
bar.flytBar();
Avatar billede kragekjaer Praktikant
03. september 2006 - 22:53 #2
brug updateAfterEvent();
Avatar billede thulstrup Nybegynder
03. september 2006 - 23:00 #3
Jeg mener ikke at updateAfterEvent løser det i det her tilfælde.
Jeg tror det er et indbygget delay, så man ikke kommer til at skrive flere bogstaver ved et enkelt tastaturtryk.
Avatar billede sprutnik Nybegynder
03. september 2006 - 23:05 #4
Det virker også som om det er et problem, der er relateret direkte til Flash Lite. Jeg prøvede dit forslag Thulstrup og det hjalp desværre ikke.
Både Thulstrups og min egen kode har jeg prøvet at publish som almindelig flash (flash 8) og her er intet delay.
Avatar billede sprutnik Nybegynder
03. september 2006 - 23:06 #5
updateAfterEvent(); er listet som en af de kommandoer, der ikke understøttes af Flash Lite.
Avatar billede thulstrup Nybegynder
03. september 2006 - 23:22 #6
Jeg testede lige min kode som Flash Lite 2.0 og den kørte uden pause.

Jeg teste med disse indstillinger
Version: Flash Lite 2.0
ActionScript version: ActionScript 2.0
Test Device: Generic Phone
Avatar billede sprutnik Nybegynder
03. september 2006 - 23:32 #7
Yes, din kode virker på Generic Phone, men bare ikke på den Nokia 3230, som jeg har testet på. Men det er også fint nok for mig:)
Thulstrup, du må gerne smide et svar.
Avatar billede thulstrup Nybegynder
03. september 2006 - 23:57 #8
Ok.

Jeg ved ikke hvorfor det ikke virker på 3230'eren, men der er måske stor forskel på hvor godt de forskellige modeller uderstøtter Flash?
Avatar billede sprutnik Nybegynder
04. september 2006 - 00:19 #9
Hvis en telefon understøtter Flash, så understøttes det. Det vil sige, at den kode der fungerer på én telefon også fungerer på en hvilken som helst anden telefon.
Derimod er der stor forskel på hvor effektive de forskellige modeller afvikler Flash, da der er stor forskel på processor-hastighed, og ikke mindst hukommelse! Derudover er der en million spisfinurligheder, når det kommer til taste-layout, lyd, og skærmdimensioner.

Men selve koden afvikles ens på alle telefoner. Jeg tror dog mit problem har noget med 3230´erens joystick at gøre, da det før har givet lidt problemer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester