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

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

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

Регистрация: Dec 2008
Адрес: Moscow
Сообщений: 58
Отправить сообщение для helgboy с помощью ICQ
The bomb! Опять про ошибку #1009

Вообщем мной давно была написана флешка на AS3, на ней размещены некоторые кнопки. Сейчас возникла необходимость ее подредактировать.
Парадокс в том что все работает..., но как только я удаляю кнопу и вместо нее рисую другую, с тем же instance name, сразу все перестает работать и пишет TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
Что за ерунда? Помогите!

Старый 28.09.2010, 00:09
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Парадокс в том что все работает...


Ну код надо смотреть. Скорее всего использовался getChildByName, может быть getChildAt с последующим приведением к неправильному типу и т.д.

Старый 28.09.2010, 00:42
helgboy вне форума Посмотреть профиль Отправить личное сообщение для helgboy Найти все сообщения от helgboy
  № 3  
Ответить с цитированием
helgboy

Регистрация: Dec 2008
Адрес: Moscow
Сообщений: 58
Отправить сообщение для helgboy с помощью ICQ
Да нет же, в коде все отлично, все работает, на сцене используються 4 кнопки , если удалить любую и вместо нее нарисовать новую, или импортировать в library и потом отконвертировать в button то все сразу ошибку выбивает при отслеживании действий с этой кнопокй. вот в этом месте

Код AS3:
leftbut.addEventListener(MouseEvent.MOUSE_DOWN, mouseleft);
		rightbut.addEventListener(MouseEvent.MOUSE_DOWN, mouseright);
		rightbutx10.addEventListener(MouseEvent.MOUSE_DOWN, mouserightx10);
		leftbutx10.addEventListener(MouseEvent.MOUSE_DOWN, mouseleftx10);
	}
Мной была удалена и нарисована кнопка rightbut.

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

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
показывай и исходник так же
__________________
Пока я жив, Вы горем обеспечены

Старый 28.09.2010, 02:24
helgboy вне форума Посмотреть профиль Отправить личное сообщение для helgboy Найти все сообщения от helgboy
  № 5  
Ответить с цитированием
helgboy

Регистрация: Dec 2008
Адрес: Moscow
Сообщений: 58
Отправить сообщение для helgboy с помощью ICQ
Исходник слишком большой чтоб его полностью здесь вылаживать (речь идет о целом сайте на флеше)
вообще вот это в fla файле
Код AS3:
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
import flash.display.Loader;
import flash.net.*;
import flash.events.*;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.*;
import flash.display.MovieClip;
import flash.geom.PerspectiveProjection;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.filters.BlurFilter;
/////////////////////////////////////////////////////////////////////
var img1:Sprite = new Sprite();
var img2:Sprite = new Sprite();
var img3:Sprite = new Sprite();
var img4:Sprite = new Sprite();
var img5:Sprite = new Sprite();
var pP:PerspectiveProjection = new PerspectiveProjection();
var pP1:PerspectiveProjection = new PerspectiveProjection();
var loader:Array =new Array();
var urlstring:Array = new Array();
var urlpage:Array = new Array();
var url:URLRequest = new URLRequest();
var p:Number=new Number  ;
var i:int;
var w:int=1;
var chislostranictxt:URLLoader = new URLLoader();
var urltxt:URLLoader = new URLLoader();
var msg:TextField = new TextField();
var integer:Number=0;
var chislostranic:Number=0;
var prl=0;
var prlstr:TextField = new TextField();
 
/////////////////////////////////////////////// загрузка текста и изображений/////
try {
	chislostranictxt.load(new URLRequest("file:///E:/flash/site/res/chislostranic.txt"));
	urltxt.load(new URLRequest("file:///E:/flash/site/res/weblink.txt"));
} catch (error:Error) {
	trace("Не могу загрузить текст");
}
preloadmessage();
configureListeners(chislostranictxt);
urltxtListeners(urltxt);
 
global function progressHandler(event:ProgressEvent):void {
	trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
global function configureListeners(dispatcher:IEventDispatcher):void {
	dispatcher.addEventListener(Event.COMPLETE, completeHandler);
	dispatcher.addEventListener(ProgressEvent.PROGRESS,progressHandler);
}
global function urltxtListeners(dispatcher:IEventDispatcher):void {
	dispatcher.addEventListener(Event.COMPLETE, urltxtcomplete);
	dispatcher.addEventListener(ProgressEvent.PROGRESS,progressHandler);
}
global function urltxtcomplete(event:Event):void {
	....
}
 
global function completeHandler(event:Event):void {
	var chislostranictxt:URLLoader=URLLoader(event.target);
	trace("completeHandler2323: " + chislostranictxt.data);
	var integer:uint=uint(Number(chislostranictxt.data));
	chislostranic=integer;
	for (i=1; i<=chislostranic; i++) {
		url=new URLRequest("file:///E:/flash/site/res/page-"+i+".jpeg");
		loader[i]=new Loader  ;
		loader[i].load(url);
		loader[i].contentLoaderInfo.addEventListener(Event.COMPLETE, preload);
	}
	stranica1();
}
global function preload(event:Event):void {
	prl=prl+1;
	prlstr.x=400;
	prlstr.y=750;
	prlstr.width=150;
	var format:TextFormat = new TextFormat();
	format.font="Courier New";
	format.color=0x0000FF;
	format.size=12;	
	prlstr.defaultTextFormat = format;
	prlstr.text="Загружено страниц: "+prl;
	addChild(prlstr);
	if (prl==chislostranic) 
	removeChild(prlstr);
	if (prl==10)
	removeChild(msg);
}
global function preloadmessage():void {
	var format1:TextFormat = new TextFormat();
	format1.font="Courier New";
	format1.color=0x0000FF;
	format1.size=20;	
	msg.defaultTextFormat = format1;
	msg.text="Пожалуйста, дождитесь окончания загрузки ролика...";
	msg.x=250;
	msg.y=200;
	msg.width=700;	
	addChild(msg);
	}
/////////////////////////////////////////////// загрузка текста и изображений/////
 
////////////////////////////////////////////// формирование страниц//////////////
 
global function stranica1():void {
	.....
}
global function stranica2():void {
	....
}
global function stranica3():void {
	.....
}
global function stranica4():void {
	......
}
global function stranica5():void {
	.....
на и вот кусочек AS файла.
Код AS3:
package main{
	import flash.display.*;
	import flash.events.*;
	import flash.display.Sprite;
	import flash.display.Graphics;
	import flash.display.MovieClip;
	import flash.ui.*;// для работы с клавой
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import flash.net.URLRequest;
	import flash.display.Loader;
	import flash.net.*;
	import flash.text.TextField;
	import flash.geom.Point;
 
	dynamic public class Cod extends MovieClip {;
	public function Cod():void {
		stage.addEventListener(KeyboardEvent.KEY_DOWN, keyboard);
		addEventListener(Event.ENTER_FRAME, reaction, false,0,true);
		leftbut.addEventListener(MouseEvent.MOUSE_DOWN, mouseleft);
		rightbut.addEventListener(MouseEvent.MOUSE_DOWN, mouseright);
		rightbutx10.addEventListener(MouseEvent.MOUSE_DOWN, mouserightx10);
		leftbutx10.addEventListener(MouseEvent.MOUSE_DOWN, mouseleftx10);
	}
	///////////////////////////////////////////////////////////////////////////////////////////////////////
	var r=181;
	var j=1;
	var page=1;
	var k=0;
 
	//////////////////////////////////////////////// обработчик мыши/////////
	function mouseleft(e:MouseEvent):void {
		leftlist();
	}
	function mouseright(e:MouseEvent):void {
		rightlist();
	}
	function mouserightx10(e:MouseEvent):void {
		if (page==1) {
			j=j-2;
		}
		if (page<=chislostranic-11) {
			page=page+7;
			j=j+7;
		}
		rightlist();
	}
	function mouseleftx10(e:MouseEvent):void {
		if (page>=13) {
			page=page-9;
			j=j-9;
		}
		leftlist();
	}

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Вот смотрю я на тех, кто пишет в кадрах и (или) используя ручные добавления на сцены с инстансНеймами, и понимаю, что все-таки, ребят, переходите полностью на классы и на добавление всего контента динамически. Вот правда - никаких проблем таких не будет.
__________________
тут я

Старый 28.09.2010, 11:37
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Из кода непонятно...
Может, у Вас внутри кнопки тоже были прописаны actions?
Попробуйте удалять не кнопку сразу, а постепенно, удаляя по элементу внутри её и смотрите когда выползет ошибка. На крайний случай удалите всё из кнопки и нарисуйте в той же кнопке.

Старый 28.09.2010, 12:18
helgboy вне форума Посмотреть профиль Отправить личное сообщение для helgboy Найти все сообщения от helgboy
  № 8  
Ответить с цитированием
helgboy

Регистрация: Dec 2008
Адрес: Moscow
Сообщений: 58
Отправить сообщение для helgboy с помощью ICQ
напишите пожалуйста пример как можно объявить кнопку динамически и чтоб она была рисунком находящимся в library.
Пишу что то подобное var rightbut:Button = new Button();
выдает ошибку
1046: Type was not found or was not a compile-time constant: Button.

Добавлено через 14 минут
Блин полтергейст какой то, сейчас взял просто удалил кнопку со сцены, запустил все работает только удаленная кнопка естественно отсутствует, потом вставил ее назад из library, компилирую, ошибок никаких не выдает, но никакой реакции на нажатие любых из кнопок, хотя кнопки реагируют когда подводишь мышку к ним.
Насчет кода написанного на самих кнопках - его нет, просто на кадре OVER кнопка чуть смещена относительно кадра UP


Последний раз редактировалось helgboy; 28.09.2010 в 12:33.
Старый 28.09.2010, 12:55
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
SimpleButton
и
Код AS3:
import flash.display.SimpleButton

Старый 28.09.2010, 13:14
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 10  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Что тут думать - если 1009, то ищите "свойство или метод со ссылкой на объект "null"" и размышляете, почему оно нулл. По крайней мере находится оно элементарно, но по-моему никто из пишущих про 1009 этого не делает. Если 1046: Type was not found, то оно не знает такого типа, импортите этот тип.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

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

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


 


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


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