加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash builder增加flash设计效果

发布时间:2020-12-15 17:38:40 所属栏目:百科 来源:网络整理
导读:Flex与Flash的交互_1(初级简单示例) 博客分类: Felx开发技术总结 Flex Flash XML? 其实就是Flex将Flash以资源的形式加载到Flex项目中,然后再获取该资源的内容对象,这样就可以操作该资源中对象的帧代码和文档类代码的公共方法了。 同时Flex也可以接收Flash

Flex与Flash的交互_1(初级简单示例)

    博客分类:
  • Felx开发技术总结
Flex Flash XML?
其实就是Flex将Flash以资源的形式加载到Flex项目中,然后再获取该资源的内容对象,这样就可以操作该资源中对象的帧代码和文档类代码的公共方法了。
同时Flex也可以接收Flash发出的事件,从而实现相互通信的数据交互。

1、首先使用flash cs3建一个as 3的flash文件,建二帧,在第一帧用文本工具写上Hello World,并在第一帧上写上如下代码:

HelloWorld!

As代码 ?

收藏代码

  1. stop();??
  2. function?gonext():void??
  3. {??
  4. gotoAndPlay(2);??
  5. }//定义一个gonext的函数,作用为跳到第二帧;??


2、在第二帧上用文本工具写上:

“我是大将军”的文本

再制作一个调用flex函数是按钮button,命名为ozbutton,

然后写下如下代码:
As代码 ?

收藏代码

  1. stop();??
  2. ozbutton.addEventListener(MouseEvent.CLICK,OzClick);??
  3. function?OzClick(evt:MouseEvent):void??
  4. {??
  5. dispatchEvent(new?Event("OKTWO"));??
  6. }//为ozbutton添加一个监听鼠标点击的事件,当鼠标点击时,发送一个OKTWO的广播事件??


3、这样flash的制做就完成了,命名为flash;


flash [olor=orange]下面说下在flex里如何调用[/color]


4、首先建一个名为flex_flash的flex工程,用一个image的组件来加载刚制做的flash文件;

Xml代码 ?

收藏代码

  1. <mx:Image?x="111"?y="88"?source="flash/flash.swf"?complete="FlashComplete(event)"?id="flashContent"/>??


5、当flash加载完成之后会触发complete事件,并调用FlashComplete(event)函数;
As代码 ?

收藏代码

  1. private?function?FlashComplete(event:Event):void??
  2. ??{??
  3. ???flashMc=flashContent.content?as?MovieClip;???
  4. ???flashMc.addEventListener("OKTWO",SayHello);???
  5. ????
  6. ??}??


6、flashMc是一个MovieClip类,并把flashContent.content赋值给它,这样flashMc就相当于你刚制做的flash,你可以使用它来调用里面的函数;完整的代码如下
As代码 ?

收藏代码

  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?initialize="init()">??
  3. <mx:Script>??
  4. <![CDATA[??
  5. ???import?mx.controls.Button;??
  6. ???import?mx.controls.Alert;??
  7. ???private?var?flashMc:MovieClip??
  8. ???private?function?FlashComplete(event:Event):void??
  9. ???{??
  10. ????flashMc=flashContent.content?as?MovieClip;???
  11. ????flashMc.addEventListener("OKTWO",SayHello);???
  12. ?????
  13. ???}??
  14. ????private?function?NextFrame():void??
  15. ???{??
  16. ????flashMc.gonext();??
  17. ?????
  18. ???}??
  19. ??
  20. ???private?function?SayHello(event:Event):void??
  21. ???{??
  22. ????Alert.show("HELLO?World");??
  23. ???}??
  24. ]]>??
  25. </mx:Script>??
  26. <mx:Image?x="111"?y="88"?source="flash/flash.swf"?complete="FlashComplete(event)"?id="flashContent"/>??
  27. <mx:Button?x="182"?y="222"?label="NextFrame"?click="NextFrame()"?id="b"/></mx:Application>



Flex与Flash的交互(深层对象交互示例)

(2011-07-10 15:47:12)

转载
标签:

it

分类:转载

1、主程序文件TestFlex_Flash.mxml源代码:?
Mxml代码?
<?xml version="1.0"encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute" xmlns:local="*">
???<mx:Script>
???<![CDATA[
???????import flash.profiler.showRedrawRegions;
???????import mx.controls.Alert;
???????import flash.utils.Timer;
???????import flash.events.TimerEvent;
???????public function testf():void{
??????????Alert.show("已经调用");
??????????trace("ljlo");
?????????????var time:Timer=new Timer(1000,1);
?????????????time.start();
?????time.addEventListener(TimerEvent.TIMER_COMPLETE,invokeFlash);

???????}

???????public function loadSwf():void{
??????????//传入此flex对象
???????????Object(swfgame.content).setApp(this);
//????????????Object(swfgame.content).toFlex();

???????}

???????public function invokeFlash(inovevent:TimerEvent):void{
????????????//调用flash组件实例类对象的方法(myC为在flash帧中定义)
???????????Object(swfgame.content).myC.innerFunction();
???????}

???????public function parentMethod():void{
???????????Alert.show("调用父方法......");;
???????}
???]]>
???</mx:Script>
???<mx:SWFLoader id="swfgame" source="test.swf" x="174"y="75" width="330" height="200"creationComplete="loadSwf()"/>
???<!--TestComponent标签表示将引入*(同一)目录下的TestComponent.mxml组件-->?
???<local:TestComponentid="component">
???</local:TestComponent>
</mx:Application>

2、TestComponent.mxml源代码
Mxml代码?
<?xml version="1.0"encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"width="400" height="300" xmlns:local="*">
???<mx:Script>
???<![CDATA[
???????import mx.controls.Alert;
???????public function testf():void{
??????????Alert.show("class组件已经调用了....");
??????????trace("ljlo");
???????}?
???]]>
???</mx:Script>???
<!--下面注释掉的代码就是加载Flash制作的swf的,加载完成后,Flex就可以用swfgame这个对象的content属性表示调用该Flash程序的代码了-->???
<!--??<mx:SWFLoader id="swfgame" source="test.swf" x="174"y="75" width="61"creationComplete="loadSwf()"/>-->
????<local:VisualView id="view"/>
</mx:Canvas>

3、非可视组件VisualView.as源代码
package
{
??? importmx.core.IMXMLObject;
??? importmx.controls.Alert;
??? public classVisualView implements IMXMLObject
??? {
protected var view : Object;
protected var id :String;?????
public function initialized( document : Object,id : String ) :void
{
this.view = document;
this.id = id;
}

public functionVisualView()
{
}

public functiontestView():void{
Alert.show("调用无视图方法。");
}

Public functioninvokeFlashMethod():void{
??Object(View.parentApplication.swfgame.content).
?? myC.innerFunction();
}
???}?
}


Flash端程序

1、帧里(或者文档类)代码如下

Java代码?
import flash.utils.Timer;
import flash.events.TimerEvent;

var flexApp:Object;
function setApp(ap:Object):void {
this.flexApp=ap;
//myC.passFlex(flexApp);
var time:Timer=new Timer(1000,1);
time.start();
time.addEventListener(TimerEvent.TIMER_COMPLETE,toFlex);
}
var myC:MyClass=new MyClass();
????
//下面这个方法测试调用Flex程序代码的效果,通过下面的四个调用也可以看出Flex代码中各组件的从属关系???
function toFlex(eve:TimerEvent){
flexApp.testf();???????????????????//flash直接调用flex加载该游戏作用域内方法???
flexApp.component.testf();??????//flash调用flex子组件方法
flexApp.component.view.testView();??//flash调用flex非可视组件组件中方法

flexApp.component.parentApplication.parentMethod();??//flash调用flex父组件方法
myC.passFlex(flexApp);
}

2、Flash自定义类MyClass类源代码

???作用是为表明Flex可以调用Flash中对外公开的类的公开方法(只要是公开的类,就可以一级一级调用下去)

Java代码? package { ????????? ????????public class MyClass { ??????????????????public var myObj:Object=null; ??????????????????public function MyClass() { ??????????????????} ??????????????????public function passFlex(obj:Object) { ???????????????????????????//obj.testf(); ???????????????????????????myObj=obj; ??????????????????} ??????????????????public function innerFunction(){ ???????????????????????????//myObj.component.testf(); ???????????????????????????trace("i am from the flash inner class") ??????????????????} ????????} }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读