2011-01-12 23 views
5

Chỉnh sửa: Tôi đã nhận ra vấn đề chính mà tôi đang gặp phải là tôi muốn một trường văn bản đã tồn tại trong một movieclip hoặc trên sân khấu để lấy chuỗi từ một flashvar. Đối với một số lý do nó sẽ không làm điều đó. Làm cách nào để tạo một trường văn bản có sẵn thay đổi để khớp với văn bản flashvar?Làm cách nào để truy cập flashvars trong AS3 và thêm chúng vào trường văn bản hiện có?

Html:

<div id="flashContent"> 
      <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="29px" id="egnewsTicker" align="middle"> 
       <param name="movie" value="egnewsTicker.swf" /> 
       <param name="flashvars" value="newslisttest=this is my test" /> 
       <param name="quality" value="high" /> 
       <param name="bgcolor" value="#ffffff" /> 
       <param name="play" value="true" /> 
       <param name="loop" value="true" /> 
       <param name="wmode" value="transparent" /> 
       <param name="scale" value="showall" /> 
       <param name="menu" value="false" /> 
       <param name="devicefont" value="false" /> 
       <param name="salign" value="lt" /> 
       <param name="allowScriptAccess" value="sameDomain" /> 
       <!--[if !IE]>--> 
       <object type="application/x-shockwave-flash" data="egnewsTicker.swf" width="100%" height="29px"> 
        <param name="movie" value="egnewsTicker.swf" /> 
        <param name="quality" value="high" /> 
        <param name="bgcolor" value="#ffffff" /> 
        <param name="play" value="true" /> 
        <param name="loop" value="true" /> 
        <param name="wmode" value="transparent" /> 
        <param name="scale" value="showall" /> 
        <param name="menu" value="false" /> 
        <param name="devicefont" value="false" /> 
        <param name="salign" value="lt" /> 
        <param name="allowScriptAccess" value="sameDomain" /> 
        <param name="flashvars" value="newslisttest=this is my test" /> 
       <!--<![endif]--> 
        <a href="http://www.adobe.com/go/getflash"> 
         <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 
        </a> 
       <!--[if !IE]>--> 
       </object> 
       <!--<![endif]--> 
      </object> 
     </div> 

Tôi biết điều này được coi là một nhiệm vụ đơn giản, và tôi đã tìm thấy một số điều web mà cho ví dụ, nhưng tôi chỉ đơn giản là không thể làm cho nó hoạt động khi tôi đang cố gắng để làm của tôi mã riêng. Tất cả tôi muốn làm là vượt qua một chuỗi flashvar và có thể truy cập nó bằng tên trong flash bằng cách sử dụng AS3, nhưng tôi dường như không thể thực hiện điều đó.

Tôi đang cố gắng:

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; 
newsItem.newsHeadline.text = String(paramObj[varName]); 

Tôi cũng đã thử:

newsItem.newsHeadline.text = this.loaderInfo.parameters.newslisttest; 

Không có gì tôi cố gắng hoạt động, nó luôn luôn chỉ nằm trống. Bí quyết truy cập flashvars trong flash as3 là gì? Tôi chỉ không nhận được nó và tôi không thể tìm thấy một lời giải thích tốt ở bất cứ đâu ...

+0

và trước khi ai đó gửi cho tôi ở đây: http://blog.six4rty.ch/tutorials/flash-flashvars-in-as3/, tôi đã ở đó. Nó hoạt động nếu tôi làm điều đó trong một tập tin trống chính xác như thế nào anh ta có nó, nhưng nếu tôi cố gắng kết hợp nó vào tập tin flash của riêng tôi, nó không bao giờ hoạt động. bao giờ ... – Ghost9

Trả lời

11

Hãy thử điều này: stage.loaderInfo.parameters.yourparam hoặc stage.loaderInfo.parameters["yourparam"]

Bạn có thể gửi mã html của bạn, vì vậy chúng ta có thể xem như thế nào bạn vượt qua FlashVars sang Flash.

+0

Tôi đã nhận ra vấn đề chính mà tôi phải đối mặt là tôi muốn một trường văn bản đã tồn tại trong một movieclip hoặc trên sân khấu để lấy chuỗi từ một flashvar. Đối với một số lý do nó sẽ không làm điều đó. Làm cách nào để tạo một trường văn bản có sẵn thay đổi để khớp với văn bản flashvar? – Ghost9

+0

Holy crap stage.loaderInfo.parameters ["yourparam"] hoạt động – Ghost9

+1

vấn đề là ". Tôi đã thử không", và ", như các ví dụ đã chỉ cho tôi, nhưng sử dụng" "là những gì đã làm việc. Jeez nói về việc kéo tóc tôi ra. Cảm ơn Rob! – Ghost9

1

Nếu bạn vẫn gặp sự cố này, hãy làm theo các dòng dưới đây. Tôi đã sử dụng các vars flash, chúng hoạt động tốt cho tôi.

kịch bản html của tôi là:

<html> 
<body> 
<div id="flashContent"> 
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"FlashVars="uid=123&name=santhu" width="100%" height="100%" id="index" align="middle"> 
    <param name="movie" value="index.swf" /> 
    <param name=FlashVars value="uid=123&name=santhu"> 
    <!--[if !IE]>--> 
    <object type="application/x-shockwave-flash" data="index.swf" 
      FlashVars="uid=123&name=santhu" width="100%" height="100%"> 
    <param name="movie" value="index.swf" /> 
    <param name=FlashVars value="uid=123&name=santhu"> 
    <!--<![endif]--> 
    <!--[if !IE]>--> 
    </object> 
    <!--<![endif]--> 
</object> 
</div> 
</body> 
</html> 

và mã AS của tôi để tải vars là

this.root.loaderInfo.addEventListener(Event.COMPLETE, SWFLoadComplete); 
private function SWFLoadComplete(e:Event) 
{ 
    obj=this.root.loaderInfo.parameters; 
    trace(obj.uid , obj.name); // outputs: 123 santhu 
} 
4

Tôi đã lãng phí tất cả các ngày dài cho điều đó ...

AS3 :

var uid:String; 
// your code 
this.loaderInfo.addEventListener(Event.COMPLETE, loaderComplete); 
// your code 
function loaderComplete(e:Event=null):void 
{ 
    var fv = stage.loaderInfo.parameters; 
    uid = fv['uid'] || "'uid' not found"; 
} 

HTML:

<object type='application/x-shockwave-flash' data='/flash/yourSWF.swf' width='320' height='240'> 
<param name='wmode' value='transparent' /> 
<param name='FlashVars' value='uid=yourData' /> 
<param name='movie' value='/flash/yourSWF.swf' /> 
</object> 
Các vấn đề liên quan