我有两个相关的ComboBoxes(大陆和国家).当大陆ComboBox发生变化时,我从某个URL请求XML.当我收到该XML时,我更改了国家ComboBox的DataProvider,如下所示:
public function displayCountryArray( items:XMLList ):void
{
this.resellersCountryLoader.alpha = 0;
this.resellersCountry.dataProvider = items;
this.resellersCountry.dispatchEvent( new ListEvent( ListEvent.CHANGE ) );
}
Run Code Online (Sandbox Code Playgroud)
我调度ListEvent.CHANGE因为我用它来改变另一个ComboBox所以请忽略它(和第一行).
所以,我的问题是:我从第一大洲选择"ASIA",然后组合框DATA更新(我可以看到,因为第一个ITEM是一个标签为'23个国家'的项目).我点击组合然后我可以看到国家.
现在,我选择"非洲",第一个项目显示,ComboBox关闭,然后当我点击它时,这些国家仍然是来自亚洲的国家.无论如何,如果我单击列表中的项目,那么列表正确更新,并且它具有正确的信息(正如我所说它影响其他ComboBoxes).所以唯一的问题是显示列表没有得到更新.
在这个功能中,我尝试了这些方法
将XMLList转换为XMLCollection甚至是ArrayCollection
添加this.resellersCountry.invalidateDisplayList();
触发DATA_CHANGE和UPDATE_COMPLETE之类的事件我知道它们没有多大意义,但我有点绝望.
请注意,当我使用3.0.0 SDK时,这没有发生.
对不起,如果我是愚蠢的,但是弹性事件正在扼杀我.
我敢称自己为骨干黑客.我知道框架可以做什么,以及它的局限性.我也有一些模板框架的经验.
我已经看过许多教程,其中人们解释了如何创建复杂和嵌套的视图,并且大多数教程构建它有点使用模板,然后在父视图的render方法中,以组合模板化的子视图
对我来说,为什么人们应该在声明性代码中处理布局渲染是没有意义的.来自Flex,我被教导永远不会这样做.我总是将布局描述和变量绑定留给标记,然后将事件处理留给使用此标记的声明性(View实例)代码.
但是,我测试的模板框架都没有允许使用嵌套视图创建复杂标记.实际上无法从模板调用模板,因此实例化View对象.这似乎在技术上是可行的,特别是使用数据属性,我们可以在其中指定类型名称.
然后,根级View类的所有渲染方法都要将此模板转换为HTML标记,然后找出子对象的类型应该是什么,为它们中的任何一个创建子视图实例,并进一步保持,如果这些子对象本身应该有子对象.每个视图都有一个模型上下文.基本上我们一直处理的所有样板步骤,但在Backbone.View级别自动化.
有人在想这个吗?为什么似乎没有人使用这个?
我想更好地了解 Android 视图渲染机制,我知道那些高级视图由称为显示列表的较低级别内部对象表示,该对象将传输到 GPU 进行渲染。
但是文章和资料只讲'显示列表是我们要求GPU渲染的命令',没有人给出具体的例子,例如一个Button如何转换为一个显示列表,一个显示列表用于什么一个按钮的样子。
有人可以给出一些常见视图(如 Button 或 TextView)的显示列表示例吗?
我有一个模型,其中一些字段带有 verbose_name。这个冗长的名称适合管理编辑页面,但对于列表页面来说绝对太长了。
如何设置管理页面使用的标签list_display?
我注意到,你没有removeChild一个DisplayObject从它之前的父addChild是荷兰国际集团到另一个容器.如果您只是addChild第二个容器,它将首先从当前父容器中自动删除.removeChild如果你刚刚去addChild别的地方,那么有没有什么可以先做的?
我有一些立方体的显示列表......非常简单的东西.这是一个片段:
GL11.glPushMatrix
GL11.glRotatef(90,0,0,1)
cuboid(1,0.5,20) //just glVertex calls
GL11.glPopMatrix
Run Code Online (Sandbox Code Playgroud)
如果我使用它来立即模式绘制没有奇怪的事情发生.但是,如果我将它放在显示列表中,它将首先绘制未旋转的长方体然后旋转(或者我在glPushMatrix和glPopMatrix之间进行的任何转换).而且,如果我不使用glPush和glPop,它的行为与预期的一样.
在显示列表中使用glPush/PopMatrix时,有什么我需要知道的吗?
编辑:添加更多源代码:
handle = GL11.glGenLists(1);
GL11.glNewList(handle,GL11.GL_COMPILE)
GL11.glBegin(GL11.GL_LINES);
GL11.glPushMatrix //if I don't use these it behaves as expected
GL11.glRotatef(90,0,0,1)
cuboid(1,0.5,20) //just glVertex calls
GL11.glPopMatrix
GL11.glEnd();
GL11.glEndList();
Run Code Online (Sandbox Code Playgroud)
EDIT2:我已经通过glPushMatrix和glEnd与glPopMatrix交换glBegin来实现它 - 我不喜欢它现在看起来如何,但至少它是有效的.据我所知,这是不正常的,我所做的只是一个技巧,所以我将问题保持开放.
GL11.glPushMatrix //everytime I want to push/pop I have to call glBegin and glEnd
GL11.glBegin(GL11.GL_LINES);
GL11.glRotatef(90,0,0,1)
cuboid(1,0.5,20) //just glVertex calls
GL11.glEnd();
GL11.glPopMatrix
Run Code Online (Sandbox Code Playgroud) 我一直在简单的立即模式下使用OpenGL,并尝试使用显示列表传递给保留模式(我遗憾地了解到它已被弃用了一段时间).我想知道的是,当我输入时:
glNewList(list, GL_COMPILE);
glBegin(GL_TRIANGLE_FAN);
glVertex2f(0.0f, 0.0f);
for (int i = 0; i < 10; i++)
{
glVertex2f(radius * cos(i * 2.0f * PI / 9.0f), radius * sin(i * 2.0f * PI / 9.0f));
}
glEnd();
glEndList();
Run Code Online (Sandbox Code Playgroud)
OpenGL预先计算for循环中的所有10个顶点并将它们发送到烘焙的图形卡,如:
glVertex2f(0.5f, 0.0f);
glVertex2f(0.499f, 0.0055f);
//so and so forth 10 times...
Run Code Online (Sandbox Code Playgroud)
或者它是否尝试为每个帧完成for循环(以及许多sin/cos操作)?换句话说,在显示列表中存储这样的圆形形状是合理的(并且使用glTranslatef,glRotatef等来完成其余的工作......)以避免每次帧更新中的三角运算,或者根本没有性能增益?
编辑:为避免混淆,我打算使用for循环创建此显示列表,然后在每次帧更新(即glutDisplayFunc())中通过glCallList(list)调用它.我没有为每一帧创建一个列表.
displaylist ×7
opengl ×2
android ×1
backbone.js ×1
c++ ×1
combobox ×1
dataprovider ×1
django ×1
django-admin ×1
flex3 ×1
javascript ×1
label ×1
obsolete ×1
opengl-es ×1
python ×1
templating ×1
view ×1