- FLEX 编译参数
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()
- Flex与 Flash CS3 SWF 交互的方法
一直让自己烦恼的Flex 与 Flash 交互问题,今天终于解决了,这个没有先前想的那么复杂,其实也是很容易实现的,直接用Flex去调用 Flash CS3 帧里面的function 就ok了。为了显示效果,在双方的界面里面分别放置了一个文本输入框和一个按钮。
下面是Flex端的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
//把当前的application引用告诉swf
private function onSwfLoaded(event:Event):void{
Object(myloader.content).setApp(this);
}
//准备给swf调用的方法
public function appshowtext(str:String):void{
textinput.text=str;
}
]]>
</mx:Script>
<mx:SWFLoader id="myloader" source="local.swf" creationComplete="onSwfLoaded(event)"/>
<mx:TextInput id="textinput
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()
- 同一个Column,不同ItemEditor
这类需求比较少见,不过还是被我碰上了,哈哈。AdvancedDataGrid中的某个Column,可能有些行有itemEditor,而有些没有,由data内的一些值来决定。我翻了一下帮助,常规来说似乎是做不到的。好在ItemEditor可以被重新定义,“小动作”的机会大大增加。
我的想法是:首先column还是要设定可以editable,但是对某些行来说,可以透过自定义的ItemEditor来返回一个空白的Canvas,从用户角度来讲,他们只会看到一个不可编辑的单元格。下面的工作就是如何来定义一个ItemEditor的问题了。我在google上找到一个绝佳的例子:http://www.actionscript.org/forums/showthread.php3?p=817711。就是欠分析,o(∩_∩)o…。
按照flex framework的设计,每个ItemEditor都要继承mx.controls.listClasses.IListItemRenderer接口,你可以去翻翻帮助,很多组件都会继承这个接口,包括Container(这就是为什么很多组件可以被嵌在mx:component里的道理)。我就挑Canvas来写我自己的ItemEditor了。噢,还需要注意的一点是,需要继承mx.core.IDataRenderer,它定义了data property,好在Canvas也帮我们继承了。
下面是我写的ItemEditor:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()
- Flex List下的自动换行
List的宽度是固定的,也不方便出现水平滚动条。这时候,最好就是让一些文字自动换行。这个应用很常见,为什么还要拿出来瞎扯,那还是有原因滴。对于List的自动换行实现,容易第一想到variableRowHeight这个属性(我最早是在Datagrid上面认识的,其实都可以用)。可是并不完全。看下面的例子:
<mx:List id="groupList" width="100%" height="100%"
dataProvider="{contactLocator.sortedGroups}"
horizontalScrollPolicy="off" variableRowHeight="true">
<mx:change>
<![CDATA[
selectGroupHandler();
]]>
</mx:change>
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" horizontalScrollPolicy="off">
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()
- Flex下as代码和MXML分离
ActiveScript代码部分
package cookbook
{
import mx.containers.Canvas;
import flash.events.Event;
public class CodeBehind extends Canvas
{
public function CodeBehind()
{
super();
addEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
}
protected function addedToStageListener(event