UPDATE1 BG请阅读以下 UPDATE2创建一个测试应用程序更新的段。发现flex试图将bg放在容器的中心(画布)。所以新的问题是“如果bg图像比画布(父母)小时如何将bg图像定位在左上角,但仍然存在未解决的神秘难题,这与我如何在小孩身上放置flex有关。在底部 UPDATE3解决方法读UPDATE2 - 不工作柔性3 - 画布背景的知名度问题,如何放在左上角
我试图找出解决,其中一个画布的背景图像不会出现问题
我已经弯曲3.5应用程序,我已经设置高度和宽度为648x1008
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="1008" height="648"
在这个我有一个3子画布组件。所有这些都是动态添加的,并定位到0,0,两个画布的高度,宽度都设置为100%。
width="100%" height="100%"
我的第三画布comp为被退出的情况下(4096×4096)的主要成分。我有代码来启动和停止在鼠标按下和至多处理程序GameConfig.as在变量定义
mouseDown="mouseDownHandler()"
mouseUp="mouseUpHandler()"
width="{GameConfig.FULL_GAME_SCREEN_WIDTH}"
height="{GameConfig.FULL_GAME_SCREEN_HEIGHT}"
backgroundImage="{GameResource.bg}"
尺寸变量定义中GameResource.as
[Embed(source="../../../../assets/images/bg.jpg")]
public static const bg:Class;
//game screen dimensions
public static const FULL_GAME_SCREEN_WIDTH:int = 4096;
public static const FULL_GAME_SCREEN_HEIGHT:int = 4096;
BG类拖动此帆布
背景图像路径是完美的,我已通过向问题画布添加虚拟图像并设置相同的源({GameResource.bg})
现在的问题是,背景图像是不是在所有出现
另外两个帆布可是没有任何背景颜色,他们只是定位在底部和顶部的几个部件(按钮和图像),这意味着问题画布不会隐藏在其他画布之后。 最重要的问题帆布内的儿童出现
我创建了一个虚拟应用程序作为excpeted
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
height="600" width="800" layout="absolute"
horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
import com.fg.greenrev.config.GameResource;
]]>
</mx:Script>
<mx:Canvas id="bg" horizontalScrollPolicy="off" verticalScrollPolicy="off"
height="1600" width="4096"
backgroundColor="0xccbbdd"
backgroundImage="{GameResource.bg}"
mouseDown="{bg.startDrag(false,new Rectangle(-3296,-1000,3296,1000))}" mouseUp="{bg.stopDrag()}">
</mx:Canvas>
</mx:Application>
可有人请帮我这是工作的罚款。
UPDATE1: 我刚刚修改了代码,我打开滚动主要应用的政策,我已删除的问题,帆布到其子画布卫生组织大小bgimage也是一样的问题,帆布,现在BG大致出现在应用程序屏幕高度的2倍(1400)并稍微靠近屏幕的右侧(大约200像素)。如果将bgimage移动到问题画布上,它不会再次出现。这看起来像Flex添加bgimage的方式/问题。我假设它在0,0增加,但它看起来不是。
UPDATE2:
我试图创建一个虚拟的应用程序模拟与虚拟代码的情况。 我通过将FULL_GAME_SCREEN_HEIGHT更改为bg(1600)的实际大小来缩小问题范围。早些时候它比bg大(超过2.5倍)。现在图像正常显示。这个问题似乎与试图将图像置于画布中心的flex相关。
我可以复制的问题,让你可以试试这个在您的环境,看看发生了什么
主要应用
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
height="600" width="800" layout="absolute"
creationComplete="init()">
<!--horizontalScrollPolicy="off" verticalScrollPolicy="off"-->
<mx:Script>
<![CDATA[
import _dummy.test1;
import _dummy.test2;
import _dummy.test3;
import com.fg.greenrev.config.GameResource;
private function init():void{
var t1:test1 = new test1();
addChild(t1);
t1.init();
var t2:test2 = new test2();
addChild(t2);
var t3:test3 = new test3();
addChild(t3);
}
]]>
</mx:Script>
</mx:Application>
** test1.mxml - 儿童组件(问题1 )*
<mx:Script>
<![CDATA[
import com.fg.greenrev.config.GameConfig;
import com.fg.greenrev.config.GameResource;
import mx.states.AddChild;
public function init():void{
var c1:test1Child = new test1Child();
addChild(c1);
}
]]>
</mx:Script>
<mx:Label x="10" y="10" text="Test1"/>
</mx:Canvas>
* test2.mxml - 的child2(没问题)*
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
width="100%" height="100%"
x="0" y="0">
<mx:Label x="96" y="0" text="Test2"/>
</mx:Canvas>
* test3.mxml - child3(没问题)*
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
width="100%" height="100%"
x="0" y="0">
</mx:Canvas>
* test1Child.mxml - 儿童child1(没问题,但将bg从test1.mxml移至此处并不会在此测试应用程序中产生任何影响,但会在我的原始应用程序中作出差异)
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
width="{GameConfig.FULL_GAME_SCREEN_WIDTH}"
height="{GameConfig.FULL_GAME_SCREEN_HEIGHT}"
>
<mx:Script>
<![CDATA[
import com.fg.greenrev.config.GameConfig;
]]>
</mx:Script>
<mx:Label x="390" y="0" text="Test1Child"/>
</mx:Canvas>
正如你可以看到TEST1和test1Child比主应用 的child2相同的尺寸和较大的(巨大)和child3是100%的宽度和高度
取代FULL_GAME_SCREEN_WIDTH和FULL_GAME_SCREEN_HEIGHT与4096具有4096x1600伪图像和运行应用程序,您将看到bg放置在中心位置(如果您滚动应用程序,则可以看到图像。现在将FULL_GAME_SCREEN_HEIGHT更改为1600(bg的大小),bg会完美显示。
现在有两个问题
Q1)如何使血糖出现在父的中心时,背景图片比容器(父/月) Q2)其实际的难题,令人惊讶的是BG较小当它被放置在问题画布中时(在我的原始应用程序中,test1.mxml为dummy),但在将bg移动到其子项时正确显示(在测试应用程序中的test1Child)时,图像几乎出现在右边角落)
更新3:解决方法不工作
我已经添加了这个作为问题画布中的第一行,bg正在出现,它覆盖了剩余的孩子。我知道在第一行添加它意味着index = 0意味着始终保持背面,但令人惊讶的是,它不仅使其“儿童画布不可见”,而且遮挡了其他画布内的其他控件。我也尝试使用addChildAt(img,0)动态添加图像,并且还通过setChildIndex(img,0)将index设置为0,但没有用处。厌倦了
你可以告诉我背景图片的大小,你是否尝试过调试,并且它会抛出任何错误。 – Exhausted 2011-12-26 13:06:21
@sudharsanan它的4096x1600。它doent抛出任何种类的错误 – 2011-12-26 14:44:44
如何为图像类添加可绑定元标记? – 2011-12-26 16:54:37