Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   переменные из класса (http://www.flasher.ru/forum/showthread.php?t=128097)

NARKOZ 30.07.2009 12:33

переменные из класса
 
У меня AS 3 файл отсюда: http://www.heaveninteractive.com/weblog/20...ith-php-part-1/

Как я могу указать эти данные:
Код:

  var username = evt.target.data.username;
  var email = evt.target.data.email;

в файле .fla :

Код:

function onReady(event:UEvent):void {
  ugap.setCenter(new umail(username,email), 14);
  }

просто указать не получается, ошибка

1120: Access of undefined property email.


Скажите как использовать переменные из класса объявленные в отдельном actionscript файле.

Аллиас 30.07.2009 15:33

Цитата:

Сообщение от NARKOZ (Сообщение 839250)
Скажите как использовать переменные из класса объявленные в отдельном actionscript файле.

Нужно импортировать этот класс, затем присвоить экземпляр этого класса переменной, и тогда к тем переменным экземпляра, обращение к которым предусмотрено в классе, можно будет обратиться как к свойствам созданной переменной. Например:

Код AS3:

//импортируем какой-нибудь класс пользовательский класс
//должен находится там же, где .FLA
import MyClass;
//создаем экземпляр класса и присваиваем его переменной my_class
var my_class:MyClass = new MyClass(//сюда параметры если предусмотрены);
//выведет переменную prop класса MyClass
trace(my_class.prop);

В вашем случае судя по всему, переменные username и email передаются в конструкторе экземпляра, то-есть вы должны указывать в создаваемом экземпляре не переменные класса, а готовые значения с которыми класс будет оперировать:

Код AS3:

function onReady(event:UEvent):void {
  ugap.setCenter(new umail("Vasya", "vasya@gmail.com"), 14);
 }


NARKOZ 30.07.2009 16:30

Получил ошибки вида:
1119: Access of possibly undefined property phonenumber through a reference with static type Main.

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

Добавлено через 3 минуты
код:
Код AS3:

import Main;
//создаем экземпляр класса и присваиваем его переменной exz
var exz:Main = new Main();//сюда параметры если предусмотрены);
//выведет переменную phone класса Main
var phonenumber:Number = exz.phone;

все в actionscript 3.

Аллиас 30.07.2009 16:47

Чтобы к переменной экземпляра можно было обратится, она должна быть объявлена на уровне определения класса с атрибутом public.
Код AS3:

package{
  public class Main{
    //переменные экземпляра объявлять только тут:
    public var phonenumber:Number = _ЗНАЧЕНИЕ;
    //теперь у экземпляра есть свойство phonenumber, которое содержит _ЗНАЧЕНИЕ
    public function Main(){
    //конструктор класса, здесь (и еще много где) доступные экземплярам переменные объявлять нельзя
    var localVar:String = "А я локальная, когда выполнится конструктор меня съедят :(";
    }
  }
}

А вообще в таких "размытых" случаях надо бы прилагать исходник...

NARKOZ 31.07.2009 04:46

sos
 
Все сделал, при тестировании все работает, но после экспорта облом


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

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