如何是Flash的背景色透明----在线等(50分)

  • 主题发起人 主题发起人 fc182
  • 开始时间 开始时间
F

fc182

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在要做个flash,要求没有背景色,如flash原来播放的是一个人在白色背景下跳舞,怎样显示成在当前的窗口上
我用是Shockwaveflash
如果用ActiveformX要怎么做
 
大哥们,快帮帮忙啊
 
网页的办法<param name=&quot;wmode&quot;
value=&quot;transparent&quot;>什么设置FLASHOCX的属性WMODE都是失败的。
这个问题外国有人做过,FlashpPlayerControl 2.0 不要好像很贵300美元呢。
下载预览到处都是,大富翁也没有人回答合适的答案。
我个人感觉必须重写TOleControl类的procedure TOleControl.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin

if FMiscStatus and OLEMISC_INVISIBLEATRUNTIME = 0 then

DefaultHandler(Message) else

inherited;
end;

你可以仿照窗口透明的例子,也许可行,最后做一个属于自己的OCX组件,我看应该可行。
如果能够找到你就告诉我一下了。
 
我正在试着用窗口透明的办法

如果是图片的话容易透明
不知道flash行不行
 
不行,窗口可以透明,但是无论用shockwaveflash还是activeformx都不行
flash还是按照原来的显示
 
基本上解决了,不过有很多限制

Buffer := TBitmap.Create;

Buffer.Width := ShockwaveFlash1.Width;

Buffer.Height := ShockwaveFlash1.Height;


Image7.Width := ShockwaveFlash1.Width;

Image7.Height:= ShockwaveFlash1.Height;

// Image7.Top := ShockwaveFlash1.Top;

// Image7.Left := ShockwaveFlash1.Left;


ShockwaveFlash1.Movie := pGetCurDir+'nicefly.swf';

ShockwaveFlash1.Play;


Buffer.Transparent := False;

ShockwaveFlash1.PaintTo(Buffer.Canvas,0,0);

Buffer.PixelFormat := pf24bit;

Buffer.Canvas.Brush.Style := bsClear;

Buffer.Transparent := True;

image7.Picture.Bitmap.Assign(Buffer);

加个time控件并添加事件

ShockwaveFlash1.PaintTo(Image7.picture.bitmap.Canvas,0,0);
image7.repaint;

//form.transparentcolorvalue and shockwaveflash.bgcolor和flash的背景颜色要一样
 
后退
顶部