Forums Développement Multimédia

Aller au contenu

L'objet Class

CODE Actionscript

4 réponses à ce sujet

#1 panicq

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 99 messages

Posté 02 July 2013 - 01:28 AM

Bonjour, je suis en train de découvrir le moteur FlashPunk et je me suis arrêté sur ce code:


package
{
import net.flashpunk.Entity;
import net.flashpunk.graphics.Image;
public class Player extends Entity
{
  [Embed(source = "assets/player.png")] private const PLAYER:Class;
 
  public function Player()
  {
    this.graphic = new Image(PLAYER);
  }
}

}
 

J'aimerai comprendre cette ligne:


  [Embed(source = "assets/player.png")] private const PLAYER:Class;
 

Pourquoi déclare-t-on PLAYER de type Class ? J'ai lu un peu la doc concernant l'objet Class mais j'ai pas trop compris à quoi il servait. Et puis le Embed, il est propre à la class Player ou a la constante PLAYER ?

Merci d'avance :)

#2 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3485 messages

Posté 02 July 2013 - 03:06 AM

Hello !

Embed signifie simplement que des données externes seront intégré dans l'animation lors de la compilation.
Ces données peuvent avoir différents type (image / son / video / byteArray) mais une fois embarqué dans l'animation, une classe (comme n'importe quelle classe) sera généré et associé à cet élément de telle manière qu'il deviennent accessible par le code.

Le mot clé Class permet donc de regrouper tout les types de données en 1 seul, l'objet Class - un objet généré automatiquement pendant la compilation représentant l'élément externe -

Une fois que l'élément externe dispose d'une classe qui lui est associé, on peut l'instancier comme n'importe quel objet et récupérer alors le type réel de l'objet (que l'on ai sensé connaître)

par exemple

[Embed(source = "assets/player.png")] private const PLAYER:Class;
var bd:BitmapData = new PLAYER(0,0) as BitmapData;
addChild(new Bitmap(bd));
 

J'espère que c'est un peu plus clair pour toi

++

#3 Beatrice78

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 02 July 2013 - 08:07 AM

Voilà une bonne réponse!!
www.imprimez-moins-cher.com

#4 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 02 July 2013 - 08:16 AM

Bonjour,

[Embed(source = "assets/player.png")] private const PLAYER:Class;

Pour le profane, on pourrait imaginer que cette ligne équivaut à placer le fichier player.png comme élément de la bibliothèque dans l'IDE Flash avec comme nom d'export pour ActionScript = PLAYER.
Pour les non utilisateur de l'IDE Flash (comme moi :roll: ) c'est une bonne pratique de contournement ...

Sinon, tlecoz a tout dit !
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#5 panicq

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 99 messages

Posté 02 July 2013 - 13:39 PM

Merci !!



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP