簡體   English   中英

Flash編程ActionScript3,從另一個類將swf雙重導入到主舞台

[英]Flash Programming ActionScript3, double import swf to the main Stage from another class

讓我解釋一下我的情況:我們有一個名為Main.fla的文件,該文件鏈接到MAIN類(包含在MAIN.as文件中)。 我也有一個帶有User類的輔助User.as文件。

我設法從User.as類中將經典的swf按鈕導入舞台,但是單擊按鈕時添加彈出窗口時遇到麻煩。 以下是代碼:

主要

import flash.display.*;
import flash.net.*;
import flash.events.*;

import User;                          //Importing our User class

public class MAIN extends MovieClip
{


    public function MAIN() 
    {
            var k = new User();   
            k.logocons(this);      //This function is made on User class and 
                                   //it takes a stage:Object as definition
    }
}

用戶

import flash.display.*;
import flash.net.*;
import flash.events.*;

public class User extends MovieClip                                             
{

    var myLoader:Loader = new Loader();                                         


    public function User()
    {
      var url:URLRequest = new URLRequest("C:/Project/Button.swf");
      myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
      myLoader.load(url);
    }

    function swfLoaded(event:Event):void 
    {
        myLoader.x = 50;                                       
        myLoader.y = 50;                                        
    }

    public function logocons(stage:Object)                                  
    {                                                                           
        stage.stop();
        stage.addChild(myLoader);
    }
}

到目前為止,這正常工作當我測試文件時,Button可以正常工作

我現在想要的是單擊按鈕以在我的MAIN.Stage上顯示一個彈出窗口,該窗口也位於名為PopUp.swf的同一文件夾中。

我嘗試了很多事情,但找不到其他類可以訪問MAIN.stage的方法。

提前致謝

用戶

import flash.display.*;
import flash.net.*;
import flash.events.*;
import fl.motion.MotionEvent;

public class User extends MovieClip                                             
{

    var myLoader:Loader = new Loader();                                         
    private var _mainStage:Stage;//MAIN.stage

    public function User()
    {
      var url:URLRequest = new URLRequest("C:/Project/Button.swf");
      myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
      myLoader.load(url);
    }

    function swfLoaded(event:Event):void 
    {
        myLoader.x = 50;                                       
        myLoader.y = 50;                                        
    }

    public function logocons(stage:Object)                                  
    {
        _mainSage = (stage as MovieClip).stage;// now you can use _mainStage  anywhere  on User class.                                                               
        stage.stop();
        stage.addChild(myLoader);
    }

    private function onButtonClick(e:MouseEvent){
         //ex.  _mainSage.addChild(popWindows);  
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM