Apache flex Playbook AIR SDK表面图像
我正在尝试使用AIR SDK编写一个Playbook应用程序,我需要一个可以加载大图像的表面,然后在上面放置一些较小的图像,并将整个图像添加到滚动窗格中,以便我可以在屏幕周围平移它 我尝试将图像添加到精灵中,并在应用程序的组中显示,但图像没有显示 我应该在这里使用什么样的正确表面类型?我应该如何加载图像?(当前使用“嵌入”并将图像加载到BitmapAsset。) 谢谢 编辑:Apache flex Playbook AIR SDK表面图像,apache-flex,image,air,blackberry-playbook,Apache Flex,Image,Air,Blackberry Playbook,我正在尝试使用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>