Playbook AIR SDK изображения на поверхности - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь написать приложение Playbook, используя AIR SDK, мне нужна какая-то поверхность, на которую я могу загрузить большое изображение, а затем поместить несколько небольших изображений поверх и добавить весь лот в ScrollPane, чтобы Я могу перемещаться по экрану.

Я попытался добавить изображение в спрайт и отобразить его в группе в приложении, но изображение не отображается.

Какой тип поверхности мне следует использовать, и как мне загружать изображения? (в настоящее время используется «Embed» и загрузка изображения в BitmapAsset.)

Спасибо

EDIT:

        var scroll:ScrollPane = new ScrollPane();

        scroll.setScrollContent(image);
        scroll.update();

        scroll.graphics.beginBitmapFill(icon.bitmapData);
        scroll.graphics.drawRect(100,100,56,56);
        scroll.graphics.endFill();

        scroll.update();

Этот код приводит к рисованию неподвижного значка за scrollContent, я хочу добавить что-то поверх содержимого прокрутки, которое перемещается вместе с ним.

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Вместо того, чтобы добавлять свои изображения через графический интерфейс API, вам нужно добавлять компоненты, как я уже упоминал в комментарии. Теперь, когда я знаю, что вы пытаетесь использовать набор компонентов QNX, ситуация немного другая.

Что вам нужно сделать, так это придерживаться компонентов QNX, если это вообще возможно, в противном случае они могут не обновляться должным образом в списке отображения (например, объекты, нарисованные на заднем плане, как вы испытываете)

Для изображений вы должны использовать что-то вроде этого:

var newImg : qnx.ui.display.Image = new qnx.ui.display.Image();
newImage.setImage( youImgObj );

Для добавления контейнеров, как вы упомянули, вы должны использовать (или подобное):

qnx.ui.core.Container

Затем вы должны найти, что все нарисовано в предсказуемом порядке (последний добавленный объект находится на вершине сцены).

0 голосов
/ 22 июля 2011

Создайте свой собственный компонент (вы можете поместить его на ScrollPane позже) и нарисовать изображения самостоятельно -

MyComp.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    firstView="views.MyCompHomeView">
</s:ViewNavigatorApplication>

вид \ MyCompHomeView.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:comps="comps.*" title="HomeView">
    <comps:MyRect width="100%" height="100%"/>
</s:View>

comps \ MyRect.mxml (рисует красный прямоугольник с тенью внизу):

<?xml version="1.0" encoding="utf-8"?>
<mx:UIComponent xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx"
    width="100%" height="100%">

    <fx:Script>
        <![CDATA[
            import flash.filters.*;

            public static const SHADOW:Array = [ 
                        new DropShadowFilter(10, 80, 0x000000, 
                        0.5, 32, 32, 1, 1, false, false, false) ];
            public static const GLOW:Array = [ 
                        new GlowFilter(0xFFFF00, 0.5, 
                        36, 36, 1, 1, false, false) ];

            private var rect:Shape = new Shape();

            override protected function createChildren():void {
                super.createChildren();
                rect.graphics.beginFill(0xFF0000);
                rect.graphics.drawRect(0, 0, 20, 20);
                rect.filters = SHADOW;
                addChild(rect);
            }

            override protected function updateDisplayList(
                        unscaledWidth:Number,
                        unscaledHeight:Number):void {

                super.updateDisplayList(
                    unscaledWidth, unscaledHeight);
                rect.x = unscaledWidth / 2;
                rect.y = unscaledHeight / 2;
            }
        ]]>
    </fx:Script>
</mx:UIComponent>
...