Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Playbook AIR SDK表面图像_Apache Flex_Image_Air_Blackberry Playbook - Fatal编程技术网

Apache flex Playbook AIR SDK表面图像

Apache flex Playbook AIR SDK表面图像,apache-flex,image,air,blackberry-playbook,Apache Flex,Image,Air,Blackberry Playbook,我正在尝试使用AIR SDK编写一个Playbook应用程序,我需要一个可以加载大图像的表面,然后在上面放置一些较小的图像,并将整个图像添加到滚动窗格中,以便我可以在屏幕周围平移它 我尝试将图像添加到精灵中,并在应用程序的组中显示,但图像没有显示 我应该在这里使用什么样的正确表面类型?我应该如何加载图像?(当前使用“嵌入”并将图像加载到BitmapAsset。) 谢谢 编辑: 此代码导致在滚动内容后面绘制一个不移动的图标,我想在滚动内容的顶部添加一些与之一起移动的内容。您需要添加组件,而不是通过

我正在尝试使用AIR SDK编写一个Playbook应用程序,我需要一个可以加载大图像的表面,然后在上面放置一些较小的图像,并将整个图像添加到滚动窗格中,以便我可以在屏幕周围平移它

我尝试将图像添加到精灵中,并在应用程序的组中显示,但图像没有显示

我应该在这里使用什么样的正确表面类型?我应该如何加载图像?(当前使用“嵌入”并将图像加载到BitmapAsset。)

谢谢

编辑:


此代码导致在滚动内容后面绘制一个不移动的图标,我想在滚动内容的顶部添加一些与之一起移动的内容。

您需要添加组件,而不是通过图形api添加图像,正如我在注释中提到的。现在我知道您正在尝试使用QNX组件集,情况有点不同

如果可能的话,你需要做的就是坚持使用QNX组件,否则它们可能无法在显示列表中正确更新(就像你正在经历的在后台绘制的东西)

对于图像,您应该使用以下内容:

var newImg : qnx.ui.display.Image = new qnx.ui.display.Image();
newImage.setImage( youImgObj );
要添加您提到的容器,您应该使用(或类似工具):


然后你会发现事情是按可预测的顺序绘制的(添加的最后一个obj位于舞台顶部)。

制作自己的自定义组件(你可以稍后将其放在滚动窗格中),然后自己绘制图像-

mycop.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(绘制一个下方有阴影的红色矩形):



具有基本布局的组应该可以。将背景图像放入MXML中定义的组件中,然后在之后添加组件(以获得正确的z顺序)。您是否尝试过(使用组件)而不是尝试使用图形api绘制?我尝试过,是的,我遇到的问题是ScrollPane是一个QNX组件,我在添加标准组件(如容器)时遇到问题。我可以添加一个图像,当我尝试添加一个组或精灵时,我没有显示。我也需要在代码中而不是在XML定义中这样做,因为我需要能够在运行时在任意位置的图像顶部动态添加图标。好的,问题现在变得越来越清楚了…如承诺的那样工作,谢谢!我在玩游戏时意识到,类似命名的QNX API与标准API无关,事实上它们甚至不是标准API的后代,因此它们的功能不一定像您所期望的那样。
<?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>
<?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>
<?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>