如何在flex中动态更新内容

时间:2009-07-16 05:08:31

标签: flex

我需要你的帮助以达到以下目的。

问题-1:在php中我们可以轻松地将一个页面移动到另一个页面并轻松地使用这些页面中的不同类型的函数。在flex3中我如何使用不同类型的.mxml页面,如php。请指教我。这对我很有帮助。

问题-2:在同一页面中,一些内容通过完成一项任务动态更新其资源。如何做到这一点请指导我。

2 个答案:

答案 0 :(得分:1)

您可能需要考虑使用一体化SWF,而不是将Flex应用程序视为一系列页面。这大大缩短了导航时间,但代价是更长的初始下载。您可以使用选项卡页面或视图堆栈在不同视图之间切换。至于将每个页面的功能分开,可以通过将每个逻辑“页面”实现为单独的MXML组件来实现。您的顶级应用程序MXML将如下所示:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:my="com.mycompany.myapp"
>
    <mx:ViewStack id="pageViewStack" width="100%" height="100%">
        <my:MyComponent1 width="100%" height="100%"/>
        <my:MyComponent2 width="100%" height="100%"/>
    </mx:ViewStack>
</mx:Application>

答案 1 :(得分:1)

对于你的第二个问题我有2个文件

imageResize.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html">
    <mx:Script>

        <![CDATA[
            import mx.collections.ArrayCollection;
            private var _imageHolderWidth:Number = 500;
            private var _imageHolderHeight:Number = 500;
            [Bindable]
            private var imageArrayCollection:ArrayCollection = new ArrayCollection();

            private function changeSize():void{
                this.imageHolder.width = this._imageHolderWidth *(this.widthSlider.value * 0.01);
                this.imageHolder.height = this.imageHolder.width;

            }

            private function addToTileList():void{

                var bitmapData : BitmapData = new BitmapData(this.imageHolder.width, this.imageHolder.height );
                var m : Matrix = new Matrix();
                bitmapData.draw( this.imageHolder, m );
                this.imageArrayCollection.addItem({bitmapData: bitmapData, width: this.imageHolder.width, height: this.imageHolder.height});
            }

        ]]>
    </mx:Script>

    <mx:Image id="imageHolder" source="@Embed('fx.png')" />

    <mx:HSlider id="widthSlider" width="400" y="520" maximum="100" value="100" minimum="1" labels="[1%, 50%, 100%]" snapInterval="1" change="{changeSize();}" liveDragging="true" />
    <mx:Button label="add to tile" click="{this.addToTileList();}"/>
    <mx:TileList x="520" dataProvider="{this.imageArrayCollection}" itemRenderer="TileListRenderer" />
</mx:Application>

第二个文件TileListRenderer.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100" height="140">
    <mx:Script>
        <![CDATA[
            import mx.utils.ObjectUtil;
            override public function set data(value:Object):void
            {
                super.data = value; 
            }
        ]]>
    </mx:Script>
    <mx:VBox horizontalAlign="center">
        <mx:Image id="thumbHolder" source="{new Bitmap(data.bitmapData)}" maxWidth="100" maxHeight="100" />
        <mx:Label text="{data.width}x{data.height}" />
    </mx:VBox>


</mx:Canvas>

因为使用工作源(右键看源)更容易看到它:

blog.arnomanders.nl/upload/imageResize/imageResize.html