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

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

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

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
По умолчанию В class не могу вызвать метод.

В classе не могу вызвать метод, который находится в этом-же classе,
но в другом методе.
метод(mMini) в методе(mClose).
Почему?
Код AS3:
package {
	//Класс используется для создания окон.
	import flash.display.*;
	import flash.events.*;
 
	public class Windows extends MovieClip {
		//Обьявления переменных.
 
		var cClTrOrFal:ClickTrueOrFalse = new ClickTrueOrFalse  ;
		private var _mcNew0:MovieClip = new MovieClip  ;
		private var _mcNew2:MovieClip = new MovieClip  ;
		private var _mcNew1:mcNew = new mcNew  ;
		private var _mcMini:mcMini = new mcMini  ;
		private var _mcClose:mcClose = new mcClose  ;
 
		private var _btrue:Boolean = true;
		private var _gx = 150;
		private var _gy = 50;
		private var _bMini:Boolean;
		private var _bClose:Boolean;
		//Конструктор.
		public function Windows():void {
			mCordinat(_gx,_gy);
			addChild(mcNew0);
			mcNew0.addChild(_mcNew1);
			mcNew2.x = 0;
			mcNew2.y = _mcNew1.height;
			mcNew0.addChild(mcNew2);
			_mcNew1.addEventListener(MouseEvent.MOUSE_DOWN,mTrue);
			_mcNew1.addEventListener(MouseEvent.MOUSE_UP,mFalse);
			_mcNew1["_mcMini"].addEventListener(MouseEvent.MOUSE_UP,mMini);
			_mcNew1["_mcClose"].addEventListener(MouseEvent.MOUSE_UP,mClose);
			addEventListener(MouseEvent.MOUSE_MOVE,mCursorFollow);
 
		}
		protected function get mcNew0():MovieClip {
			return _mcNew0;
		}
		protected function get mcNew2():MovieClip {
			return _mcNew2;
		}
		private function mCordinat(fx:Number,fy:Number):void {
			_mcNew0.x = fx;
			_mcNew0.y = fy;
		}
		private function mTrue(event:Boolean):void {
			if (! _mcNew1["_mcMini"].hitTestPoint(mouseX,mouseY)) {
				mcNew0.startDrag();
			}
		}
		private function mFalse(event:Boolean):void {
			mcNew0.stopDrag();
		}
		private function mCursorFollow(event:MouseEvent):void {
			event.updateAfterEvent();
		}
		//Не могу, вызвать метод mMini в методе mClose.
		private function mMini(event:MouseEvent):void {
			_bMini = cClTrOrFal.fTrueOrFalse(_mcNew1["_mcMini"],_bMini);
			if (_bMini) {
				mcNew0.removeChild(mcNew2);
			} else {
				mcNew0.addChild(mcNew2);
			}
		}
		private function mClose(event:MouseEvent):void {
			_bClose = cClTrOrFal.fTrueOrFalse(_mcNew1["_mcClose"],_bClose);
			if (_bClose) {
				trace("xsdcsf");
				//Здесь вызвать метод mMini.
				mMini(null);
			} else {
 
			}
		}
	}
}
Если, нужно выкладываю исходник.

Исправил форматирование.
Вложения
Тип файла: rar VektorNewFlash3.rar (20.7 Кб, 37 просмотров)
__________________
Книги и желание лучшие учителя.


Последний раз редактировалось Vektor; 27.04.2009 в 18:33.
Старый 27.04.2009, 18:26
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 2  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
код отформатирован просто жутко
при вызове методов используют () и передают туда параметры, ваш метод:
Код AS3:
private function mMini(event:MouseEvent):void {
значит и вызывать вы его должны:
Код AS3:
_mcNew1["_mcMini"].mMini(null);
к тому же вы пытаетесь обратится к приватной функции, да еще из клипа, у которого и функции то такой, судя по всему, нет


Последний раз редактировалось litebox; 27.04.2009 в 18:29.
Старый 27.04.2009, 18:36
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 3  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Пробовал так.
mMini(null);
Нет, ошибки но нечего не происходит.
Пробовал так.
mMini();
1136: Incorrect number of arguments. Expected 1.

Всё, я понял где ошибка.

litebox:Спасибо, за помощь.
__________________
Книги и желание лучшие учителя.


Последний раз редактировалось Vektor; 27.04.2009 в 18:39.
Старый 27.04.2009, 18:39
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 4  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
1136: Incorrect number of arguments. Expected 1 - верный знак того, что функция вызывается и говорит, что ожидалось получить 1 аргумент. Значит вызывайте первый вариант mMini(null); и разбирайтесь в логике того, что происходит в самой функции

Старый 27.04.2009, 18:42
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 5  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Единственный (!) способ которым можно обратиться к приватной функции это
Код:
this.nameOfPrivateFunction();
У вас трудно даже понять что вы хотели:
Код:
_mcNew1["_mcMini"].mMini;
Но если даже в классе mcNew существует публичное свойство _mcMini,
которое реализует интерфейс с методом mMini, то эта функция не имеет абсолютно ничего общего (кроме названия) с приватной функцией которая описана в цитируемом классе.

Рекомендую не использовать подчеркивания и обзывать переменные и методы так,
чтобы это было целое английское слово и словосочетание.

Старый 28.04.2009, 00:05
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
private function mMini(event:MouseEvent = null):void {
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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