Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос по FlashVars (http://www.flasher.ru/forum/showthread.php?t=175852)

forward 25.02.2012 19:53

Вопрос по FlashVars
 
Доброго времени суток!

Пишу вот прием flashvars и вывожу в текстовое поле:
Код AS3:

package 
{
  import flash.display.*;
  import flash.events.Event;
  //
  public class Main extends MovieClip
  {
    public function Main():void
    {
          var flashVars:Object = stage.loaderInfo.parameters;
          var uid:String = flashVars.user_id ? flashVars.user_id : "mytestvalue";
          p.pole_uid.text = uid;
    }
  }
}

Ругается пишет : TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main()

Если stage поменять на this то не ругается, но не работает в HTML, кстати вставляю вот так :

Код:

<object width="760" height="40" align="middle" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
 <param value="sameDomain" name="allowScriptAccess">
 <param value="chat_panel.swf" name="movie">
 <param value="opaque" name="wmode">
 <param value="high" name="quality">
 <param value="true" name="allowFullScreen">
 <param value="noscale" name="scale">
  <param value="user_id=50478766" name="flashvars">
  <embed width="760" height="40" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="sameDomain" quality="high" wmode="opaque" allowfullscreen="true" flashvars="user_id=50478766" src="chat_panel.swf" scale="noscale">
</object>


Inet_PC 25.02.2012 20:04

Код AS3:

var flashVars:Object = this.loaderInfo.parameters;

Ибо у стейдж нет флешварс. У стейдж есть флешварс и они совпадают с флешварсами главной флешки. Соответственной будет работать не всегда правильно, лучше с this. Получается флешка не получает флешварсы. Воспользуйтесь как нить готовым эмбедером. Например swfobject. И они вроде должны вот так быть переданы:
PHP код:

<param name="" value="" /> 

Но я не уверен. Используйте готовый компонент, а уж если сильно хочется самому, то в нем можно посмотреть как сделано.

MikroAcse 25.02.2012 20:06

Надо подождать, пока stage станет доступным:
Код AS3:

package 
{
  import flash.display.*;
  import flash.events.Event;
  //
  public class Main extends MovieClip
  {
    public function Main():void
    {
          if(stage){
                  init();
            } else {
                  addEventListener(Event.ADDED_TO_STAGE,this.init);
            }
    }
    public function init(e:Event):void {
            var flashVars:Object = stage.loaderInfo.parameters;
          var uid:String = flashVars.user_id ? flashVars.user_id : "mytestvalue";
          p.pole_uid.text = uid;
    }
  }
}


MikroAcse 25.02.2012 20:06

InetPC,
Цитата:

Если stage поменять на this то не ругается, но не работает в HTML

forward 26.02.2012 20:32

Цитата:

Сообщение от MikroAcse (Сообщение 1065450)
InetPC,

Да спасибо работает только вот в этом моменте нужно функции init() передать null ...

Код AS1/AS2:

 
 if(stage){
                  init();
            } else {


MikroAcse 26.02.2012 20:39

А ну да :)
Забыл совсем...


Часовой пояс GMT +4, время: 12:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.