关于FLEX中放大图片后,将放大后的图片,添加到新容器中,急急急!!1

jack_qdb 2010-03-20 10:01:46
关于FLEX中放大图片后,将放大后的图片,添加到新容器中
应用程序:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.MouseEvent;
import flash.geom.Matrix;

import mx.effects.Zoom;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
private var w:Number=0;
private var h:Number=0;
protected function setBit():void
{

}
protected function canvas_updateCompleteHandler(event:FlexEvent):void
{
w=canvas.width;
h=canvas.height;
var can:TCanvas=new TCanvas();
var bitmapdata:BitmapData=new BitmapData(w,h,true,0);
var mt:Matrix=new Matrix();
mt.scale(2,2);
var bigmap:Bitmap=new Bitmap(bitmapdata);
var images:Image=new Image();
images.source=bigmap;
bitmapdata.draw(can,mt);
can.bit=bigmap;
can.addChild(images);
//PopUpManager.addPopUp(can,this,true);

}


protected function button1_clickHandler(event:MouseEvent):void
{
var can:TCanvas=new TCanvas();
var zoom:Zoom=new Zoom();
PopUpManager.addPopUp(can,this,true);
zoom.duration = 1;
zoom.zoomWidthFrom = 1;
zoom.zoomWidthTo = 2;
zoom.zoomHeightFrom = 1;
zoom.zoomHeightTo = 2;
//zoom.play(new Array(canvas));
zoom.play(new Array(canvas),true);
}

]]>
</mx:Script>
<mx:VBox>
<mx:Canvas id="canvas" updateComplete="canvas_updateCompleteHandler(event)">
<mx:Image id="image" source="image\4.jpg" width="300" height="300">

</mx:Image>
</mx:Canvas>
<mx:Canvas id="temp">


</mx:Canvas>
<mx:Button label="reset" click="button1_clickHandler(event)"/>
</mx:VBox>
</mx:WindowedApplication>
组件接收并显示(此时有一个问题,容器放大的值没有传过去)
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="1000" height="500">
<mx:Script>
<![CDATA[
import flash.display.Bitmap;
import flash.events.MouseEvent;
[Bindable]
private var _bit:Bitmap=new Bitmap();
[Bindable]
private var oldX:Number,oldY:Number;
public function get bit():Bitmap
{
return _bit;
}

public function set bit(value:Bitmap):void
{
_bit = value;
}

protected function image_2_mouseDownHandler(event:MouseEvent):void
{
var b:Bitmap=new Bitmap();
oldX = event.stageX;
oldY = event.stageY;
}


protected function image_2_mouseMoveHandler(event:MouseEvent):void
{
if(event.buttonDown){
var x:Number = event.stageX - oldX;
var y:Number = event.stageY - oldY;
oldX = event.stageX;
oldY = event.stageY;
image_2.move(image_2.x+x,image_2.y+y);

}
}

]]>
</mx:Script>
<mx:Canvas id="canvas_2">
<mx:Image id="image_2" source="{_bit}" mouseDown="image_2_mouseDownHandler(event)" mouseMove="image_2_mouseMoveHandler(event)">

</mx:Image>
</mx:Canvas>
</mx:TitleWindow>
大家帮看一下!
...全文
370 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxin5257 2010-03-22
  • 打赏
  • 举报
回复
把你程序稍微改了一点,不知道是不是你要的效果,你看下吧。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;

protected function button1_clickHandler(event:MouseEvent):void
{
var can:TCanvas=new TCanvas();
can.imageSrc = image.source;
PopUpManager.addPopUp(can, this, true);
}
]]>
</mx:Script>
<mx:VBox>
<mx:Canvas id="canvas" >
<mx:Image id="image"
source="img\bg.jpg"
width="300"
height="300">

</mx:Image>
</mx:Canvas>
<mx:Canvas id="temp">


</mx:Canvas>
<mx:Button label="reset"
click="button1_clickHandler(event)"/>
</mx:VBox>
</mx:Application>




<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="1000" showCloseButton="true"
close="PopUpManager.removePopUp(this)"
height="500">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import flash.display.Bitmap;
import flash.events.MouseEvent;
[Bindable]
private var _bit:Bitmap=new Bitmap();
[Bindable]
private var oldX:Number, oldY:Number;
[Bindable]
public var imageSrc:Object = null;

public function get bit():Bitmap
{
return _bit;
}

public function set bit(value:Bitmap):void
{
_bit=value;
}

protected function image_2_mouseDownHandler(event:MouseEvent):void
{
var b:Bitmap=new Bitmap();
oldX=event.stageX;
oldY=event.stageY;
}


protected function image_2_mouseMoveHandler(event:MouseEvent):void
{
if (event.buttonDown)
{
var x:Number=event.stageX - oldX;
var y:Number=event.stageY - oldY;
oldX=event.stageX;
oldY=event.stageY;
image_2.move(image_2.x + x, image_2.y + y);

}
}
]]>
</mx:Script>
<mx:Canvas id="canvas_2" width="100%" height="100%">
<mx:Image id="image_2"
source="{imageSrc}"
width="100%" height="100%"
mouseDown="image_2_mouseDownHandler(event)"
mouseMove="image_2_mouseMoveHandler(event)">

</mx:Image>
</mx:Canvas>
</mx:TitleWindow>

jack_qdb 2010-03-20
  • 打赏
  • 举报
回复
在点放大按纽,触发事件后,新的容器,跳出,但是放大的图片没有显示出来!大家帮看一下

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧