Question

Je sais AS3 ne pas pointeurs, mais je pensais qu'il pourrait y avoir un moyen d'utiliser des variables d'objet comme des pointeurs.

En ce moment je me fie à passer une fonction qui obtient la fonction get, ce n'est pas une solution très élégante quelque chose comme ceci:

myvar = function():int{return objectName.getVarValue};

L'autre option serait de changer tous les obtient et les méthodes mis en fonctions get et set ou les ajouter en plus. Je pourrais aussi créer une classe de liaison qui vient stocke le nom, mais ce qui est juste un plus grand mal de tête.

quelqu'un peut-il me confirmer qu'il n'y a pas vraiment un moyen d'obtenir les valeurs mises à jour de la variable d'un objet sans sans rien faire plus compliqué que cela?


Il y a essentiellement trois parties, presque comme un MVC. I un objet est le contrôleur, qui indique que la valeur de la « vue » d'être jumelés avec selon la clé de données. La vue est un peu idiot, et est donc les données / modèle pour que tout se fait par le contrôleur et dans une séquence où ces événements se chevauchent. Je suis donc déléguer l'accaparement des données à la clé de données, en définissant au début tous les différents paramètres, et plus tard, je peux appeler la mise à jour et sélectionnez les DataKeys et ils saisissent les données. en ce moment je suis le constructeur lié à la valeur par une fonction que je crée comme ceci

onUpdate:function():int{return objectName.getVarValue};

il est un peu plus complexe que cela, mais qui est l'essentiel. Dans Flex, vous pouvez faire la liaison de données, mais c'est une chose flex et non AS3, et ce n'est pas exactement un pointeur non plus.

Je souhaite AS3 il faut simplement faire des pointeurs, peut-être dans AS4? Je pensais qu'il pourrait y avoir un moyen de récupérer le getter en fonction que je ne connaissais pas.

Était-ce utile?

La solution

Je voudrais juste passer l'objet lui-même, puisque la référence se comporte comme plus un pointeur. Vous pouvez faire cuire vos propres données de liaison en utilisant les propriétés dynamiques. Lorsque vous voulez câbler votre point de vue sur le modèle de données, le contrôleur crée une liaison de données avec l'objet source de données et le nom de la propriété de se lier à la source de données, et le nom de la propriété de se lier à la vue:

view.AddBinding(dataObjectName, "somePropertyOnObject", "propertyNameOnView");

Vous pouvez stocker dans une sorte de classe Binding que vous créez, et chaque appel à addBinding, vous l'ajoutez à une collection, ce qui probablement que pas de doublons existent pour une donnée « propertyNameOnView ». Lorsque vous devez répondre à un événement de mise à jour de la propriété sur l'objet de données, vous faites l'affectation comme ci-dessous, à l'exception que vous souhaitez saisir les cordes de votre l'objet de liaison, itérer peut-être à travers la collection de fixations pour effectuer une mise à jour complète de la vue:

this["propertyNameOnView"] = dataObjectName["somePropertyOnObject"];

Mais plus comme celui-ci avec un objet de liaison:

someBinding.DestinationObject[someBinding.DestinationProperty] = 
  someBinding.DataSource[someBinding.SourceProperty];

Vous pouvez même mettre ce code directement dans l'objet de liaison lui-même exposé à travers une méthode de mise à jour afin que vous appelez simplement mettre à jour () sur la liaison particulière, et il apporte le haut des données de la propriété du modèle de données à la propriété de votre point de vue.

Ceci est un peu d'informations sur les propriétés dynamiques pour vous aider à démarrer si vous n'êtes pas familier avec eux: http://www.colettas.org/?p=17

Autres conseils

Pourquoi ne pas simplement frapper l'objet pour la valeur? Pourquoi la nécessité de stocker dans une autre variable, sauf si vous voulez une valeur spécifique à un moment précis?

  

un moyen d'obtenir les valeurs mises à jour de   -Daniel variables d'un objet

Il est pas réel clairement ce que vous cherchez à accomplir. Peut-être que si vous pouvez expliquer pourquoi ne fait pas simplement ce répondre à vos besoins?

myvar = return objectName.getVarValue;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top