Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2010, 04:10
JekelSkaz вне форума Посмотреть профиль Отправить личное сообщение для JekelSkaz Найти все сообщения от JekelSkaz
  № 1  
Ответить с цитированием
JekelSkaz

Регистрация: Nov 2009
Сообщений: 80
По умолчанию вызов функции с передачей ей значения поля input

есть инпут поле "nameipt" при нажатии на кнопку надо вызвать функцию newPlayer(и сюда запихнуть значение выше приведеного инпут поля).
сейчас пишет еррор 1048: Method cannot be used as a constructor.
вот кусок кода:
Код AS3:
public function createPlayer(e:MouseEvent):void{
 if(nameipt.text!="" && nameipt.text!=null){
  errortxt.text = "";
  var player = new newPlayer(nameipt.text);
 }else{
  errortxt.text = "Enter name!";
 }
}
 
public function newPlayer(namevar){
 this.namePlayer = namevar;
 this.calloriesPlayer = 1000;
}
Добавлено через 14 минут
весь код, как сделать правильно?
сейчас пишет еррор 1048: Method cannot be used as a constructor.
Код AS3:
package main{ 
     import flash.display.*;
	 import flash.events.*;
     public class test1 extends MovieClip{ 
	 public var namePlayer;
	 public var player;
	 public var calloriesPlayer;
           public function test1(){
			   playbtn.addEventListener(MouseEvent.CLICK, clickok);
			   exitbtn.addEventListener(MouseEvent.CLICK, exitok);
			   createbtn.addEventListener(MouseEvent.CLICK, createPlayer);
           }
		   public function clickok(e:MouseEvent):void{
			   createbtn.enabled = true;
			   infotxt.enabled = true;
			   playbtn.visible = false;
			   exitbtn.visible = true;
			   nameipt.enabled = true;
		   }
		   public function exitok(e:MouseEvent):void{
			   createbtn.enabled = false;
			   infotxt.enabled = false;
			   playbtn.visible = true;
			   exitbtn.visible = false;
			   nameipt.enabled = false;
		   }
		   public function createPlayer(e:MouseEvent):void{
			   if(nameipt.text!="" && nameipt.text!=null){
				   errortxt.text = "";
				   var player = new newPlayer("player");
			   }else{
				   errortxt.text = "Enter name!";
			   }
		   }
		   public function newPlayer(namevar){
			   this.namePlayer = namevar;
			   this.calloriesPlayer = 1000;
		   }
     } 
}

Старый 02.04.2010, 04:36
Artic вне форума Посмотреть профиль Найти все сообщения от Artic
  № 2  
Ответить с цитированием
Artic
Banned

Регистрация: Jun 2009
Сообщений: 298
вы вобще че творите ?
var player = new newPlayer(nameipt.text); вы собираетесь создать экземпляр класса из метода ( об этом вам и сообщает компилятор )
создайте класс newPlayer и создавайте его экземпляр передавая значения в конструктор

например так

Код AS3:
package 
{
 
	public class newPlayer 
	{
                private var namePlayer:String;
                private var calloriesPlayer:Number;
                public function newPlayer(same:String):void 
		{
                           this.namePlayer = same;
			   this.calloriesPlayer = 1000;
                }
         }
}


Последний раз редактировалось Artic; 02.04.2010 в 04:40. Причина: qn
Старый 02.04.2010, 12:50
JekelSkaz вне форума Посмотреть профиль Отправить личное сообщение для JekelSkaz Найти все сообщения от JekelSkaz
  № 3  
Ответить с цитированием
JekelSkaz

Регистрация: Nov 2009
Сообщений: 80
1180: Call to a possibly undefined method newPlayer.
не работает!(((

test1.as
Код AS3:
package main{ 
     import flash.display.*;
	 import flash.events.*;
 
     public class test1 extends MovieClip{ 
 
	 public var player;
 
           public function test1(){
			   playbtn.addEventListener(MouseEvent.CLICK, clickok);
			   exitbtn.addEventListener(MouseEvent.CLICK, exitok);
			   createbtn.addEventListener(MouseEvent.CLICK, createPlayer);
           }
		   public function clickok(e:MouseEvent):void{
			   createbtn.enabled = true;
			   infotxt.enabled = true;
			   playbtn.visible = false;
			   exitbtn.visible = true;
			   nameipt.enabled = true;
		   }
		   public function exitok(e:MouseEvent):void{
			   createbtn.enabled = false;
			   infotxt.enabled = false;
			   playbtn.visible = true;
			   exitbtn.visible = false;
			   nameipt.enabled = false;
		   }
		   public function createPlayer(e:MouseEvent):void{
			   if(nameipt.text!="" && nameipt.text!=null){
				   errortxt.text = "";
				   var player = new newPlayer("player");
			   }else{
				   errortxt.text = "Enter name!";
			   }
		   }
     }
}
test2.as
Код AS3:
package main{ 
	internal class newPlayer{
		public var namePlayer;
		public var calloriesPlayer;
 
		public function newPlayer(same){
			this.namePlayer = same;
			this.calloriesPlayer = 1000;
    	}
    }
}

Старый 02.04.2010, 13:16
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 4  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
JekelSkaz, файл класса newPlayer должен быть назван newPlayer.as, а не test2.as. И зачем вы два раза инициализируете player? И типы пишите.

Сначала что нибудь почитали бы по as3.

Старый 02.04.2010, 13:32
JekelSkaz вне форума Посмотреть профиль Отправить личное сообщение для JekelSkaz Найти все сообщения от JekelSkaz
  № 5  
Ответить с цитированием
JekelSkaz

Регистрация: Nov 2009
Сообщений: 80
да разобрался уже) спасибо)
вопрос, если в двух разных аs файлах одинаковый пакет, ну допустим package main{
и в первом аs файле есть переменная с приватом public, можно ли ее использовать во втором as файле? У меня все так как написано но ее не находит(

Старый 02.04.2010, 14:27
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Эта переменная видна у вас только на уровне класса. Ну и обращаться к ней нужно соответствующе - КлассГдеПеременная.переменная


Последний раз редактировалось КорДум; 02.04.2010 в 19:03.
Старый 02.04.2010, 20:23
Artic вне форума Посмотреть профиль Найти все сообщения от Artic
  № 7  
Ответить с цитированием
Artic
Banned

Регистрация: Jun 2009
Сообщений: 298
либо через static тогда
ClassName.publicStaticVar

Старый 02.04.2010, 21:13
Vier вне форума Посмотреть профиль Отправить личное сообщение для Vier Посетить домашнюю страницу Vier Найти все сообщения от Vier
  № 8  
Ответить с цитированием
Vier

Регистрация: Sep 2004
Сообщений: 90
Цитата:
Сообщение от Artic Посмотреть сообщение
либо через static тогда
ClassName.publicStaticVar
Сейчас он статиком сделает, что-нибудь вроде: namePlayer. И начнутся новые вопросы )

Старый 02.04.2010, 21:30
Artic вне форума Посмотреть профиль Найти все сообщения от Artic
  № 9  
Ответить с цитированием
Artic
Banned

Регистрация: Jun 2009
Сообщений: 298
да я чет не подумав ляпнул ))

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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