Почему stage.stageWidth во Flash Builder 4.6 с использованием flex на Android не работает? - PullRequest
0 голосов
/ 11 января 2012

Добрый день,Я создаю приложение для Android с использованием Adobe Air (Flex SDK 4.6.0), и я пытаюсь выяснить, какова ширина экрана телефона в пикселях.Итак, я использую учебник здесь , но когда я копирую код в свой проект и нажимаю кнопку «Выполнить», он всегда выдает мне эту ошибку «Ошибка типа: Ошибка № 1009: Не удается получить доступ к свойству или методу ссылки на пустой объект«.и идет к линии, у которой есть stage.stageWidth Я также пробовал stage.width, но он делает то же самое.Так больше не работает stage.stageWidth или как узнать размер экрана планшета или телефона?Было ли это заменено чем-то другим для телефонов?Я пытаюсь получить информацию, чтобы я мог центрировать изображения в центре экрана, используя скрипт действия.

protected function init():void {
            //function run at creationComplete="init()"
            movePhotoToCenter(myIMG1);
            // trying to get the stage width so that i can center a img that is allready added to the flex code and has a id of "myIMG1"
        }



        protected function movePhotoToCenter(img:Image):void {
            //"error here" where im centering the image
            var centerOfStage:Number = stage.stageWidth/2;
            var Xnumber:Number = centerOfStage - (img.width/2);
            trace(Xnumber);
            var move:Move = new Move(img);
            move.xFrom = img.x;
            move.xTo = Xnumber;
            move.yFrom = img.y;
            move.yTo = img.y;
            move.duration = 3000;
            move.play();
            trace(img.width);
            img.scaleX=1;
            img.scaleY=1;
            trace(img.width);   
        }

Спасибо за помощь, Джастин

1 Ответ

4 голосов
/ 11 января 2012

Событие creationComplete complete вызывается, когда оно было добавлено в список отображения a , а не обязательно в список отображения Stage *1005*.creationComplete срабатывает, когда этот объект и все его дочерние элементы были созданы и добавлены в что-то .

Есть еще одно событие для привязки с именем addedToStage (в любом случае, в flex-земле), это произойдет, когда DisplayObject будет фактически добавлен на сцену.

Обратите внимание, что creationComplete сработает только один раз после создания экземпляра объекта и добавления его в качестве дочернего к чему-либо, где addedToStage будетсрабатывают каждый раз, когда его добавляют на сцену (в случае, если его удаляют и повторно добавляют позже, не восстанавливая объект).

См. в этом сообщении для получения дополнительной информации осубъект.

...