J'ai fait simple aplication et j'ai un problème que je ne peux pas trouver la solution (ni pourquoi cela se produit)programme ne répond pas quand j'ajoute la toile sur la fonction enterFrame
La chose que je veux faire est pour ajouter dynamiquement un canevas contenant un bouton à l'application, puis je souhaite que le canevas soit déplacé du côté gauche de l'écran vers la droite.
j'ai donc fait le code suivant
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.containers.Canvas;
import mx.controls.Button;
var ccanvas:Canvas = new Canvas();
var canvasButton:Button = new Button();
public function init():void{
canvasButton.label="canvas Button";
ccanvas.x=100;
ccanvas.y=200;
ccanvas.addChild(canvasButton);
addChild(ccanvas);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void{
ccanvas.x+=1;
}
]]>
</mx:Script>
</mx:Application>
Et ça fonctionne très bien. La prochaine étape est au lieu d'utiliser la toile i utiliser une toile personnalisée .. est ici le composant CustomCanvas.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Button label="ccccButton" />
</mx:Canvas>
alors je change la ligne de code suivant
var ccanvas:Canvas = new Canvas()
to
var ccanvas:CustomCanvas = new CustomCanvas();
le résultat est que il n'y a aucune toile affichée à l'écran ... le programme ne fait rien ...
la chose la plus étrange est que si je n'ai pas de fonction onEnterFrame et que j'ajoute juste ma toile personnalisée à l'init() méthode, il a été affiché correctement. Même si j'ai un onEnterFrame mais sans modifier la valeur x de customCanvas, il est affiché correctement. Mais le moment où je vous écris dans le
onEnterFunction le code ccanvas.x + = 1 le programme ne marche pas afficher quoi que ce soit .... Mais si je le fais avec l'objet de toile d'origine, il est tout ok ,,,
Que se passe-t-il ici? comment puis-je faire un objet canvas personnalisé et ensuite être en mesure de le déplacer dans une méthode onEnterFrame?
Merci !!!!!!
vous avez raison de la méthode de création complète ajoutée dans le canevas personnalisé .. cela fonctionne! Maintenant, je dois comprendre comment je vais modifier mon code principal ... parce que dans mon programme principal onEnterFrame doit être appelé indépendamment de la toile car il a d'autres composants à déplacer aussi .. et aussi le canvas personnalisé est créé dans un certain point après que le programme a commencé dans un temps aléatoire. Et encore plus je ne crée pas un objet de toile personnalisée mais beaucoup et quand ils vont sur l'écran je les enlève juste ... bien coclusion "mxml est comme une belle femme avec un mauvais caractère" ... coller à as3 :) – Pitelk
Merci beaucoup pour votre réponse utile! – Pitelk
+1 Mais encore une fois, quelle est la différence? – Amarghosh