Προς το περιεχόμενο

Flash, ActionScript 3.0 και thumbnails


SpirosG86

Προτεινόμενες αναρτήσεις

Δημοσ.

Γνωρίζει κανείς από ActionScript 3.0?

Έχω γράψει τον παρακάτω κώδικα ο οποίος θέλω να λειτουργεί ως εξής:

όταν ο κέρσορας είναι πάνω από το button thumb1, το thumb1 αποκτά alpha=100 (αρχικά έχει alpha=50), ενώ όταν φεύγει από πάνω του, το thumb1 γυρνάει σε alpha=50.

 

>
import flash.events.MouseEvent;

thumb1.addEventListener(MouseEvent.MOUSE_OVER, light);
thumb1.addEventListener(MouseEvent.MOUSE_OUT, darken);

function light(event:MouseEvent):void
{
this.alpha=100;
}

function darken(event:MouseEvent):void
{
this.alpha=50;
}

 

Ωστόσο, ο κώδικας λειτουργεί αλλιώς: όταν ο κέρσορας περνάει πάνω από το thumb1, "φωτίζεται" όλη η εικόνα και όχι μόνο το thumb1 ενώ, όταν ο κέρσορας αφήνει το thumb1, το alpha παραμένει 100.

 

Δοκίμασα να αλλάξω το this σε thumb1 και με αυτόν τον τρόπο πετυχαίνω να φωτίζει μόνο το thumb1, αλλά έτσι χάνεται η καθολικότητα της function...

 

Τί κάνω λάθος; Μάλλον έχω μπερδέψει ActionScript 2.0 με 3.0, γιατί τώρα τη μαθαίνω στα πλαίσια μιας εργασίας, μπορεί κανείς να βοηθήσει;

Δημοσ.

Προς ενημέρωση όσων έχουν το ίδιο πρόβλημα(και για refresh - το τερπνόν μετά του ωφελίμου :-D), βρήκα γιατί η εικόνα παραμένει φωτεινή αφού φύγει ο κέρσορας από πάνω.

 

Στην ActionScript 1.0 και 2.0, ο κώδικας για να φωτίσει το thumb1 είναι thumb1.alpha=100; και για να σκοτεινιάσει είναι thumb1.alpha=50.

Αντίθετα, στην ActionScript 3.0 οι τιμές του alpha μετριούνται σε κλίμακα από το 0.0 έως το 0.1.

 

Έτσι οι σωστές εντολές είναι

thumb1.alpha+=0.5; (για να προστεθεί 50 στο alpha και να γίνει 100) και

thumb1.alpha-=0.5; (για να γίνει το αντίθετο).

 

Το άλλο πρόβλημα είναι η αντιστοιχία του this στην ActionScript 3.0.

Στην 1.0 και 2.0 το this λειτουργεί για κάποιο button γιατί ο κώδικας ενσωματώνεται στο ίδιο το button. Στην AS 3.0 ο κώδικας είναι γενικός για όλα τα στοιχεία του frame. Έτσι το this εννοεί το ίδιο το frame, ενώ εγώ θέλω να χρησιμοποιήσω μια function για κάποια ομάδα buttons. Δεν πιστεύω να πρέπει να γράψω την ίδια function για κάθε button χωριστά, έτσι δεν είναι;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...