Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 7

0
votes
answers
33 views
+10

公式將當地座標轉換爲世界座標

-1

有人可以給我公式嗎? 我有一個vector3d表示一個頂點在本地座標中的位置,我有一個Matrix3d表示這個頂點是它幾何體的一部分的對象的旋轉和位置,我該如何將這個頂點的局部位置轉換爲世界座標?公式將當地座標轉換爲世界座標

+0

我認爲你需要代表頂點翻譯的** Matrix3D **,然後用https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/將它乘以容器的** Matrix3D ** geom/Matrix3D.html#append()我認爲哪一個是附屬的,哪一個是附屬的,這很重要,但是你只有2個選項,所以它不會傷害你只是嘗試。 – Organis

+0

如果該矩陣位於全局座標中,那麼爲了得到該頂點的全局座標,需要將該矩陣求逆,然後將結果與您的vector2d相乘。確保檢查'matrix3D :: invert()'結果,如果它是假的,那麼你就搞砸了。 – Vesper

+0

「我認爲你需要表示頂點翻譯的Matrix3D」 - 我該如何創建這個matrix3d?像這樣:m = new matrix3d; m..prependTranslation(V.X,V.Y,V.Z);或者像這樣m.position.x = v.x; m.position.y = V.Y; m.position.z = V.Z; ? – danielkotzer

沙发
0
0

現在它的工作,我有一個問題,保持原來的vertex3d,我玩的命令,這是工作,非常感謝,這裏是代碼,我不得不使用m2.invert();這裏是代碼:

var m3d:Matrix3D = new Matrix3D();  
obj.Transform.copyToMatrix3D(m3d); 
var m2:Matrix3D = new Matrix3D(); 
m2.append(m3d); 
m2.invert(); 
m2.prependTranslation(obj.BoundingBox[i].x,obj.BoundingBox[i].y,obj.BoundingBox[i].z); 
obj.BoundingBox[i] = new Vector3D(m2.position.x,m2.position.y,m2.position.z); 

其實,我首先做的還行:

var m3d:Matrix3D = new Matrix3D();  
obj.Transform.copyToMatrix3D(m3d); 
m3d.invert(); 
obj.BoundingBox[i] = m3d.transformVector(obj.BoundingBox[i]); 

我唯一缺少的就是反轉();我希望我知道它是什麼... 有些人告訴我,我必須追加(或預先)對象矩陣,然後世界矩陣,這是有道理的,但添加世界矩陣只會導致我的問題,而倒置();做得很好,但爲什麼?

Vesper,你是一個人建議它,謝謝,但爲什麼?

我知道爲什麼,有經驗的人給了我答案:相機顯示了一切鏡像,當你離開時,世界似乎正在??向右移動,所以你需要反轉。

0
votes
answers
35 views
+10

我無法控制從AS3級文件舞臺中的MovieClip

-1

我在我的fla文件中創建了一個符號(MovieClip)並將其添加到幀中。然後我給它的實例名稱在屬性面板:「myMC」我無法控制從AS3級文件舞臺中的MovieClip

然後試圖從我的類文件控制它在目錄:ROOT 測試 MyClass.as

package Test { 
    import flash.display.MovieClip; 

    public class MyClass extends MovieClip{ 
     public function MyClass() { 
      var myMC:MovieClip = getChildByName("myMC") as MovieClip; 
      myMC.gotoAndStop(2); 
     } 
    } 
} 

之後,進口類FLA想跑:

import Test.MyClass; 
var LaunchMyClass:MyClass = new MyClass(); 

,並得到這個錯誤,

TypeError: Error #1009: Cannot access a property or method of a null object reference. 

at Test::MyClass() 
at Test_fla::MainTimeline/frame1() 

請注意,我試圖續在舞臺中已經放置一個MovieClip,而不是從庫中調用它。

沙发
0
2

首先,總是張貼您的問題得到的ErrorMessages。使事情變得更容易。

但是,現在讓我們來看看你的腳本:

我在FLA文件中創建一個符號(影片剪輯),並把它添加到 框架。使用 addChild(myMC);

如果你把它在舞臺上,並給了影片剪輯的實例名稱沒有必要打電話的addChild然後,添加它作爲一個孩子。

as3使用大寫字母來啓動類名非常方便,所以不用myClass,而是將其稱爲MyClass。

您的軟件包缺少構造函數,函數的名稱必須與類的名稱和.as文件名相同。

getChildByName()方法需要一個字符串,所以你必須在報價

package { 
    import flash.display.MovieClip; 


    public class MyClass extends MovieClip { 

     // Constructor 
     public function MyClass() { 
      // constructor code 
      var myMC:MovieClip = getChildByName("myMC") as MovieClip; 
      myMC.gotoAndStop(2); 
     } 
     // End Constructor 
    } 

} 
+0

我想你說什麼來包裝myMc它拿出另一個問題。編輯該職位的詳細信息。 – theRaggedyMan

+0

好吧,我以爲你使用MyClass.as作爲你的fla的文檔類。你究竟想要達到什麼目的以及MyClass的目的是什麼? @theRaggedyMan – Patang

+0

我想用MyClass控制場景中的動畫片段。我有一個複雜的遊戲,有很多movieclip init。我曾經從fla文件控制它們,但代碼在時間上變得混亂,所以我想用類來分離我的代碼。 – theRaggedyMan

6
votes
answers
36 views
+10

獲取swf布爾參數

我有一個swf,我稱之為

/SWFUploader/upload.swf?single=true

然後在ActionScript 3中我讀入了值。但它不起作用。這是我的測試代碼(第一個塊來自 http://blogs.adobe。 com / pdehaan / 2006/07 / using_flashvars_with_actionscr.html ):

  var keyStr:String; var valueStr:String; var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; for(keyStr in paramObj){valueStr = String(paramObj [keyStr]); trace(keyStr +“=”+ valueStr); } var isSingle:Boolean = this.loaderInfo.parameters.single as Boolean; var isSingle1:Boolean = this.loaderInfo.parameters ['single' ]作為布爾值; var isSingle2:Boolean = LoaderInfo(this.root.loaderInfo).parameters ['single'] as Boolean; var isSingle3:Boolean = LoaderInfo(this.root.loaderInfo).parameters.single as Boolean; trace(isSingle +“,”+ isSingle1 +“,”+ isSingle2 +“,”+ isSingle3);   

令人沮喪的是,這是跟踪的兩行:

  single = true false,false,false,false   

我做錯了什麼?

沙发
+60
+50

在ActionScript中不為空且不為null將字符串轉換為Boolean true

  var singleStr:String = this.loaderInfo.parameters.single; var singleBool:Boolean = singleStr ==“true”;  
     
			
        

第二行並不是真正的演員陣容,但是它很有效。謝謝。 - dumbledad 12年1月26日11:52

6
votes
answers
47 views
+10

Flash到C#通訊

我正在嘗試在瀏覽器中嵌入的flash實例與在C#WinForms應用程序中運行的flash實例之間進行通信...我收到的編譯錯誤說:

1119通過靜態類型flash.net:LocalConnection

的引用訪問可能未定義的屬性printOut這是actionscript:

  var feedback =“”; var receiving_lc:LocalConnection = new LocalConnection(); receiving_lc.connect(“fromClient”)receiving_lc.printOut = function(textRecieved:String):void {feedback.text + = textRecieved +“”; ExternalInterface.call(“ReceiveData”,反饋); };  
    
        
沙发
+40
+50

似乎您可能正在使用ActionScript 3中的ActionScript 2示例。在ActionScript 3中,您無法直接為LocalConnection對象定義和分配自定義函數(這是在AS2中使用LocalConnection的方式)。因此編譯錯誤。

LocalConnection.send(...)方法用於調用定義為連接客戶端的對像上的公共函數。請參閱文檔中的示例:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/LocalConnection.html#includeExamplesSummary

7
votes
answers
49 views
+10

flex中的GIF動畫

我正在嘗試在我的flex應用程序中添加gif圖像。然而,它沒有顯示動畫。任何人都知道如何使gif圖像在flex中工作

  import mx.managers.PopUpManager; private function onCreationCompleted():void {mx.managers.PopUpManager.centerPopUp(this); }]]> < / FX:腳本> < s:圖像x =“127”y =“137”source =“@ Embed('assets / loading.gif')”width =“87”height =“85”/> < s:標籤x =“88”y =“73”text =“正在加載...請稍候”width =“164”height =“56”verticalAlign =“middle”textAlign =“center”/>   

提前問候

沙发
+70
+50

從外觀上看,Flex不支持動畫GIF。使用swf會容易得多。

有一些很好的加載此鏈接中提供的動畫使用 SWFLoader

但是如果你想在Flex中使用動畫GIF,請閱讀這篇博文。

http://iamjosh.wordpress.com/2009/02/03/animated-gifs-in-flex /

您必須創建該博客文章中顯示的類,並將as3gif作為包添加。

您可以

-10

我將gif轉換為swf並將其設置為動畫。

怎麼..你能鏈接代碼等嗎? - Muhammad Umar 12年12月16日3:59

6
votes
answers
47 views
+10

在Flex中的元素內部循環元素

我在Flex 4中有以下功能:

  protected function initEventHandlers():void {imageContainer.addEventListener(DragEvent.DRAG_ENTER,acceptDrag); imageContainer.addEventListener(DragEvent.DRAG_DROP,handleDrop); img_1.addEventListener(MouseEvent.MOUSE_DOWN,handleDrag); img_2.addEventListener(MouseEvent.MOUSE_DOWN,handleDrag); img_3.addEventListener(MouseEvent.MOUSE_DOWN,handleDrag); img_4.addEventListener(MouseEvent.MOUSE_DOWN,handleDrag); }   

我不喜歡這段代碼。這四個圖像在我的應用程序中聲明如下:

 < s:HGroup y =“10”width =“650”horizo??ntalAlign =“ addEventlistener(MouseEvent.MOUSE_DOWN,handleDrag);   

}

我的老師告訴我這是不可能的,但是對於10多張圖片,我無法想像為每張圖片分別做這件事。必須有更好的方法來做到這一點,不是嗎?

提前致謝!

沙发
+60
+50

你的老師錯了!

給HGroup一個id(例如imageGroup)。

然後這樣做:

  var numElements:int = imageGroup.numElements; for(var i:int = 0; i< numElements; i ++){var image:Image = imageGroup.getElementAt(i)as Image; if(image)image.addEventlistener(MouseEvent.MOUSE_DOWN,handleDrag); }  
     
			
        
6
votes
answers
42 views
+10

ActionScript:我可以直接從As3開始學習ActionScript嗎?

我需要學習ActionScript。我對ActionScript沒有基本知識。我可以直接開始學習ActionScript3,或者我必須從ActionScript1開始。請指導我一些教程。感謝.....

沙发
+10
+50

當然可以。AS3上有很多教程/書籍。請谷歌為他們。 AS3 Cookbook 從Adobe編程AS3 是AS3上的兩個優秀資源。

+20

ActionScript 1和ActionScript 2是相當不相關且過時的Flash Player語言。如果您的目標是Flash Player> = 9(我想是這樣),AS1和AS2的知識會讓您感到困惑。

因此,您可以從頭學習AS3,而無需了解AS1和AS2。這是目前最好的方式。

+20

你可以直接學習AS3。

這是一個很好的網站,我用於教程

http://www.republicofcode.com/tutorials/flash/

+10

從學習ActionScript 3.0開始實際上更好,因為它與ActionScript 2.0完全不同,在很多方面都不知道你不必忘掉所有已經改變的東西。

他們幾乎是不同的語言。

7
votes
answers
51 views
+10

在Flex / Actionscript中加載和播放嵌入的SWF文件

我正在嘗試在我的flex應用程序中創建/使用預加載器。預加載器是一個SWF文件,有100幀(每1%的加載程序進度為1)。基本上我試圖在我的應用程序中嵌入這個SWF文件,在屏幕上顯示它並在進度完成時更改顯示的幀編號。

我到目前為止的代碼是(擴展了Canvas):< / p>

  [Embed(“/../ assets / preLoader.swf”)] private var SWFClass:Class; private var _preLoader:MovieClip; private var _progress:Number; public function set progress(value:Number):void {_progress = value; if(progress&lt; 100){_ preLoader.gotoAndPlay(progress,null); } else {_preLoader.gotoAndStop(0,null); 公共函數get progress():[Bindable]:號碼{return _progress; }(在creationComplete事件上調用)私有函數init():void {_preLoader = MovieClip(new SWFClass()); this.addChild(_preLoader); _preLoader.play(); }   

我得到的錯誤是:

  TypeError:錯誤#1034:類型強制失敗:無法將小部件:: PreLoader_SWFClass @ 30b3be51轉換為mx。 core.IUIComponent.at mx.core :: Container / http://www.adobe.com/2006/flex/mx/internal :: addingChild()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreContainer.as:3259]   

請幫忙!

沙发
+10
+50

使用sprite代替Canvas作為基類。執行此操作的兩個原因:

  1. Canvas有很多依賴項(對於100k +靈活組件的調整)。您不希望在顯示預加載器之前等待所有這些加載

  2. Canvas是UIComponent容器。當您想要佈局UIComponents時使用它。在您的情況下,您不需要復雜的畫布佈局邏輯 - 您只需要顯示MovieClip。所以不要使用畫布。

    要回答原始問題,SWFLoader和Image是知道如何顯示位圖和MovieClip的UIComponents。做這樣的事情:

      var img:Image = new Image(); img.source = _preloader; this.addChild(IMG);  
         
    			
            

我想在某個時候用這個方法更新這個問題。這正是我最終做的事情。謝謝。 - 理查德沃爾頓09年3月21日20:35

+20

您需要在 MovieClip 上有一個包裝器,它實現 IUIComponent ,以便能夠傳遞給 addChild()來自 addChild() 文檔

注意:雖然方法的子參數指定為DisplayObject類型,但參數必須實現IUIComponent接口才能添加為容器的子級。所有Flex組件都實現了這個界面。

你需要這樣的東西:

  公共類MovieClipUIComponent擴展UIComponent {public function MovieClipUIComponent(mc:MovieClip){super(); mcHeight = mc.height; mcWidth = mc.width; //添加你自己的魔法addChild(mc); }}   

警告:未經測試的代碼,應該只給你一個想法!

嗨,謝謝你的回答。是否有任何解決方案記錄在案?:s似乎有點奇怪。乾杯。 - 理查德沃爾頓2009年3月2日13:01

實現一個包裝器是相當簡單的。請參閱我更新的答案中的提示。 - 專注於2009年3月2日13:10

+20

希望這項工作我試過這個。

  [Embed(source =“assets / yourSWF.swf”,mimeType =“application / octet-stream”)] public var SWF:Class;   
  _swfLoader = new Loader(); //沒有關於onComplete或onProgress方法只是為了調試//添加完整的事件監聽器_swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); //添加進度事件監聽器_swfLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress); //添加錯誤事件偵聽器。如果在加載文件時出現問題,則不希望出現運行時錯誤。_swfLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onError); //加載Flex。很重要。_swfLoader.addEventListener(“mx.managers。//使用新的URLRequest實例加載加載器,將路徑傳遞給//它的構造函數。_swfLoader.loadBytes(new SWF()); //我們必須添加加載器以便創建完成。的addChild(_swfLoader);   
  private function systemManagerHandler(e:Event):void {//防止默認停止默認行為,從而停止一些潛在的//運行時錯誤。e.preventDefault(); }   //使用新的URLRequest實例加載加載器,將路徑傳遞給//它的構造函數。_swfLoader.loadBytes(new SWF()); //我們必須添加加載器以便創建完成。的addChild(_swfLoader);   
  private function systemManagerHandler(e:Event):void {//防止默認停止默認行為,從而停止一些潛在的//運行時錯誤。e.preventDefault(); }   void {//防止默認停止默認行為,從而停止一些潛在的//運行時錯誤。e.preventDefault(); }   void {//防止默認停止默認行為,從而停止一些潛在的//運行時錯誤。e.preventDefault(); }  
     
			
        
+10

查看預加載器類和應用程序的 preloader 屬性

正如文檔所說,你絕對不應該為預加載器擴展Flex UIComponent(或Image或SWFLoader)類。

以下是一些如何進行的示例關於自定義預加載器:

http://www.pathf。com / blogs / 2008/08 / custom-flex-3-lightweight-preloader-with-source-code /

http://groups.adobe.com/posts/15d371c71d

http://www.webapper.net/index.cfm/2008/1/17/Flex-NotSo-Custom -Preloader nofollow noreferrer“> http://www.webapper.net/index.cfm/2008/1/17/Flex-NotSo-Custom-Preloader nofollow noreferrer“> http://www.webapper.net/index.cfm/2008/1/17/Flex-NotSo-Custom-Preloader

+10

我在此鏈接中找到了使用外部swf代碼的自定義預加載器
http ://askmeflash.com/article_m.php?p = article&amp; id = 7

7
votes
answers
26 views
+10

actionscript tdd框架

圍繞ActionScript 2.0 / 3.0的任何測試框架列表?

沙发
+10
+50

FlexUnit是“官方”單元測試框架。我認為它歸Adobe的研究人員所有。

http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries

以下是如何使用它的教程: < p> http://langexplr.blogspot。 COM / 2008/10 /創建-柔性單元測試與 - flexunit.html

FlexUnit可以與AS 2.0一起使用嗎? - kementeus 08年12月2日0:25

我不相信。 - Richard Szalay 09年6月5日13:28

+30

更新2010-05-18

由於這篇文章有點陳舊,我剛收到一個upvote,它可能值得提供一些更新的信息,所以人們不要追逐原來的fluint團隊現在生產官方(和開源)單元測試框架, FlexUnit 您也可以查看 asunit ,特別是如果您需要AS2支持。

flexcover 是首選代碼覆蓋率 框架,並要求您使用備用編譯器。

您有更多選擇模擬/隔離框架,因為大多數現在使用動態代理生成:

+20

嘗試 AsUnit 它目前支持ActionScript 2.0和3.0開發。而且,它是開源的。

+10

另請查看 fluint

鬆散地關於FlexUnit及其祖先JUnit的概念,fluint提供增強的異步支持,圖形測試運行器,與持續構建系統的集成以及用於目錄監視的可選Adobe AIR客戶端。

0

嘗試從libspark AS3Unit 他們還有一個異步beta測試工具包。

7
votes
answers
33 views
+10

Flash Designer中的AS3組件

在ActionScript 2項目中,我可以創建一個新的MovieClip,在庫上右鍵單擊它,然後選擇“組件定義”以添加可在MovieClip中引用的參數。可以在MovieClips的屬性中輕鬆更改此參數。

現在,我正在開發一個ActionScript 3項目,但無法找到獲取這些參數中傳遞的值的方法。 / p>

我定義了一個名為“textToDisplay”的參數,但是當我在第一幀的Actions中寫下以下內容時,我收到一個錯誤:

  trace(textToDisplay);   

這是錯誤:

  1120:訪問未定義的屬性textToDisplay。  

沙发
+10
+50

在as3中,你必須使用一個或多個 public var 聲明創建一個外部類文件(你也可以使用public get / set 功能)。Google如果您不確定如何操作。

在您的外部文件中,使用 var 之前的 [Inspectable] 元數據標籤,就像這樣:

  package myPackage {import flash.display.MovieClip; public class MyComponent擴展MovieClip {[Inspectable] public var myFancyComponentParameter:String; [Inspectable] public var myOtherFancyComponentParameter:int; }   

然後你可以打開組件定義對話框,將Class字段設置為外部類的名稱(包括包名稱),Flash將根據 [Inspectable] 標記自動為組件創建參數。或者您可以手動創建它們。

設置完成後,您可以在時間軸代碼中訪問組件變量:

  trace(“這是我的變量:” + myFancyComponentParameter);   

[Inspectable] 標籤(包括數據類型)的詳細信息/3/html/help.html?content=metadata_3.html"rel =“nofollow noreferrer”> metadata livedocs

在“鏈接”對話框中設置類名也是個好主意太,如果你希望你的外部類做除了保持組件值以外的任何事情。

我還建議把代碼放在你的外部類中,而不是在時間軸中。這種方式更具擴展性。如果這樣做,請記住在觸發 INIT 事件之後才會設置組件參數。以下是如何監聽:

  //為簡潔公共類而省略的package和import語句MyComponent擴展了MovieClip {[Inspectable] public var myFancyComponentParameter:String; public function MyComponent(){// myFancyComponentParameter此處未設置trace(myFancyComponentParameter); //打印null addEventListener(Event.INIT,onInit); public function onInit(e:Event){//現在我們可以使用組件參數了!跡(myFancyComponentParameter); //打印參數值}}  
     
			
        

由loaderInfo對象調度的Event.INIT - 小狗於2011年4月5日18:45發送

+40

考慮到找到有關自定義組件設置的信息有多難,我想我會根據自己的經驗清理過程的某些方面。

INIT EVENT:

在大多數情況下,上面的aaaidan示例是正確的,但有一個例外。

  addEventListener(Event.INIT,onInit);   

應該是:

  loaderInfo.addEventListener(Event.INIT,onInit);   

DisplayObject的loaderInfo屬性引用了一個LoaderInfo,組件從中獲取其參數設置。INIT事件在獲取數據時被調用(或者你可以使用COMPLETE事件,它應該在INIT之後直接觸發)

INSPECTABLE METADATA:

當您使用元數據[Inspectable]標籤設置要訪問的屬性時,您還可以使用以下方法定義默認值:

  [Inspectable(defaultValue =“whatevervalue”)]   

根據我的經驗,參數似乎在處理除String之外的其他任何東西(可能是Numbers)時遇到問題,所以我建議使用帶有字符串值的set函數並使用它們來獲取另一個您可能想要的價值觀。例如,如果要加載特定命名類的新實例

  [Inspectable(defaultValue =“flash.display.Sprite”)]公共函數集className(value:String):void {var ClassReference:Class = getDefinitionByName(value)as Class; _class = new ClassReference(); }  < 要解決此問題,在onInit函數中需要獲取寬度和高度,將它們輸入setSize,然後將scaleX和scaleY值重置為1: 
  public function onInit(e :Event):void {setSize(width,height); scaleX = 1; scaleY = 1; //添加參數加載後需要運行的其他函數}   

(如果有人發現這樣做的方法不那麼混亂,請告知)

希望這個幫助某人獲得他們的自定義組件並運行。

omg,感謝關於將INIT添加到loaderInfo的提示...我幾乎撕掉了我所有的頭髮 - dizy 09年5月13日在17:04

Even.ADDED_TO_STAGE首先發生在我的舞台實例上,所以我最終聽了。 - 小狗2011年11月21日20:15

+20

最後讓它工作(使用基本的MovieClip到目前為止沒有太多擴展)。我有兩個要添加的位:

  1. 需要為ActionScript導出符號(即具有鏈接定義)。僅在組件定義中設置類不起作用。如果沒有導出設置,將解釋 [Inspectable] 標記,但完全忽略其餘代碼。甚至是類的構造函數中的東西。
  2. [Inspectable] 標記中的默認值在編譯時似乎不起作用,或者更確切地說它將導致 null 我只在組件參數框中使用了一個字符串,但是跟踪了 null 即使在之後 Event.INIT (我在點擊時跟踪)。它似乎不是“值未被轉移”的情況,因為手動輸入默認值仍將導致 null [Inspectable] 中設置默認值有效地定義了一個無法使用的值。

    PS使用CS5。

0

我沒有使用過這個特定的功能,但是您可能需要為該MovieClip定義一個自定義類(只是子類MovieClip)並添加該額外變量。Actionscript 3已經擺脫了動作腳本2的動態特性,這可能有點令人困惑,但最終它更加強大。

0

我沒有在MovieClip類定義中看到INIT事件,似乎沒有調用它。

0

我遇到了同樣的問題 - MovieClip沒有INIT事件 - 但是否則這個解決方案工作正常。我能看到解決這個問題的唯一方法是使用Event.ENTER_FRAME並在第一次調用處理程序時再次刪除偵聽器。我的組件參數可以從下一幀開始訪問,但我發現在實例化影片剪輯時沒有正式事件令人驚訝。

0

有一個ADDED_TO_STAGE事件比steve-mann建議的ENTER_FRAME事件更好。

0

在CS4 10.0.2版本中,您可以再次右鍵單擊並手動添加組件參數。

需要注意的兩件事:

  1. 在引用自定義值之前,您仍需要等待loaderInfo Event.INIT(即:loaderInfo.addEventListener(Event.INIT) ,initComponent)
  2. 您需要在第1幀(var paramName)上定義參數,以便能夠在沒有編譯器錯誤的情況下引用它。

    Hope這對你有幫助......我知道它對我很有幫助!

    ~Greg

你是對的。所需的入口點作為類名提供給編譯器,並且“app”以其構造函數開頭。謝謝。 - Drew Noakes 08年10月23日20:38