曾经一段时间做flash的程序开发,所以收录很多关于AS的文章
多年未接触Flash,今天有一个广告要修改,查资料才知道按钮怎么做链接
不查资料都不知道怎么操作,和2.0的做法不同,在工作界面就懵了。。

var url:String = "你的URL地址";
//btn是你的按钮
btn.addEventListener(MouseEvent.CLICK,__onBtnHandler);
private function __onBtnHandler(e:MouseEvent):void
{
       navigateToURL(new URLRequest(url), "_blank");
}
补充:
使用完了移除该事件
btn.removeEventListener(MouseEvent.CLICK,__onBtnHandler);


当然,按钮要命名为btn哦
现在很多视频网站都有全屏观看,效果非常不错,一直纳闷怎么弄的。

首先看到这个全屏是在youtube上,保存了网页察看,实在是没法知道如何实现的,隐约看到有控制flash的层,但是这个绝对不可能会出现在屏幕的全部,最多也只能出现在网页界面的部分全部占据了。

JS控制DIV的位置浮动,并且控制占满网页,这个是可能的,代码也应该不算难,可要实现全屏是不行的。昨天看到了一个blog介绍了全屏的代码,原来是Flash9的特性,怪不得我没听说过呢,原来是新鲜的Flash9,自己一直都在使用Flash8而已。

引用
这里不说用JS改变document内容实现的全屏方法,而是FLASH 9以后一种新的实现方法.

首先HTML的<object><embed>标记要添加一个allowfullscreen,值为true.

也就是加上<param name="allowFullScreen" value="true" />

AS2里是没有这个代码的,所以我们要手动添加.

打开你的Flash 8/(zh_cn)/First Run/Classes/FP8/Stage.as

在那一排申明的变量里加上下一句

static var displayState:String;

那么你的flash里,就可以使用

Stage["displayState"] = "fullScreen";

或者

Stage.displayState = "fullScreen";

来启动全屏了.

退出全屏

Stage.displayState = "Normal";

对全屏有影响的除了开始提到的allowfullscreen,还有scaleMode,默认设置是showAll,这以为全屏伸延了整个窗口后,比例保持不变.如果你需要控制尺寸,这个值就应该是noScale

差不多就这样了,实现全屏,只用你把按钮的功能做成改变 Stage的displayState是fullscreen或者Normal.当然,客户端的flash版本必须是9以上.
也可以和JS实现的全屏一起使用,让JS对应FLASH8以前的版本,此方法用于FLASH9以后的版本
Tags:
昨晚修改一个flash游戏碰到的错误,忙乎了两个小时才查到问题,加了如下语句:

 var carx = _car._x;
 var cary = _car._y;
 point = new Object();
 point.x = gamexy_mc._x;
 point.y = gamexy_mc._y;
 localToGlobal(point);
 carx += point.x;
 cary += point.y;


其实游戏在单独查看就没有问题,只是在合成到杂志就出问题了。12点的时候被叫着帮忙看看,刚刚开始的直觉就是游戏的地图偏移了,还打算手工修正,后来觉得应该是合成杂志的时候与0坐标的偏移的问题,正解,把偏移加上就好了,上面的是自动修正偏移的问题。如果有朋友碰到脚本坐标的问题,可以看看是否可以用 “localToGlobal”来解决。
Tags:
今天弄了一下VC++,尝试使用flash,不错,至少可以两个家伙进行通信。

VC的做法:
1 添加一个控件 shockwave flash
2 添加fscommand指令接收
3 添加调用flash内部函数的方法

Flash的做法:
1 添加脚本显示效果
2 添加fscommand测试
3 添加可以提供外部调用的函数

代码如下,可以提供参考:

Flash代码:

import flash.external.*;
ExternalInterface.addCallback("CallMeFromApplication", this, InternalFunction);
function InternalFunction(str:String):String {
a_txt.text = str;
return Array("test", "testsdf");
return "The function was called successfully";
}
//
var a_str:String = "test";
a_txt.text = gggg;
fscommand("ffff", "sdfsdf");
//FlashCall("test");
a_btn.onRelease = function() {
a_txt.text = gggg;
};


VC++代码:

void CflashDlg::FSCommandShockwaveflash2(LPCTSTR command, LPCTSTR args)
{
// TODO: 在此处添加消息处理程序代码
MessageBox(command);
flash_movie.SetVariable("gggg","test");
//((CShockwaveflash2*)GetDlgItem(IDC_SHOCKWAVEFLASH2))->SetVariable("gggg","test");
CString test;
test=flash_movie.CallFunction("<invoke name="CallMeFromApplication"><arguments><string>Some text for TFlashPlayerControl</string></arguments></invoke>");
MessageBox(test);
}


大家试试啊~~
可以通信后那就啥事都可以做了。
//var addlink = "http://www.aslibra.com"; //test
if (addlink) {
//program by hqlulu 20070406
//add link bottom in movie clip
this.createEmptyMovieClip("link_mc", this.getNextHighestDepth());
link_mc.beginFill(0xFF0000, 0);
var __w:Number = Stage.width;
var __h:Number = Stage.height;
link_mc.moveTo(0, 0);
link_mc.lineTo(__w, 0);
link_mc.lineTo(__w, __h);
link_mc.lineTo(0, __h);
link_mc.lineTo(0, 0);
link_mc.endFill();
link_mc.onRelease = function() {
getURL(addlink, "_blank");
};
}


效果预览:点击这里

原理:

1 判断是否有外部通过url传送过来的参数
2 如果有,则建立与舞台一样长宽的影片剪辑,为透明状态
3 给影片剪辑加上链接
分页: 1/7 第一页 1 2 3 4 5 6 7 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐