Я подал простую заявку, и у меня возникла проблема. Я не могу найти решение (и почему это происходит)
Я хочу динамически добавить холст, содержащий кнопку, в приложение, а затем я хочу, чтобы холст перемещался с левой стороны экрана вправо.
Итак, я сделал следующий код
<?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>
И это работает просто отлично.
Следующим шагом вместо использования холста я использую пользовательский холст ..
вот компонент 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>
затем я изменяю следующую строку кода
var ccanvas:Canvas = new Canvas()
to
var ccanvas:CustomCanvas = new CustomCanvas();
В результате на экране не отображается холст ... программа ничего не делает ...
Самое странное, что если у меня нет функции onEnterFrame и я просто добавляю свой собственный холст в метод init (), он отображается правильно. Даже если у меня есть onEnterFrame, но без изменения значения x в customCanvas, оно отображается правильно. Но в тот момент, когда я пишу в
onEnterFunction, код ccanvas.x + = 1, программа ничего не отображает .... Но если я сделаю это с исходным объектом Canvas, все будет в порядке ,,,
Что здесь происходит? Как я могу сделать пользовательский объект холста, а затем быть в состоянии переместить его в методе onEnterFrame?
Спасибо !!!!!!