Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-10-2008, 23:31   #1 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
events

hiho,

wieder mall die event

Bekomme folgende Fehlermeldung:
Zitat:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at de.dwienand.astrouhr::Animation/onRotatePointers()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at de.dwienand.astrouhr.hands::HandYear/onMoveMouse()
aber wo ist denn nun mein 0-Objekt, in welcher Funktion in der onMouseMove oder on RotatePointers?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 19-10-2008, 23:33   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
zeig doch mal her den code?!
cheers, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 19-10-2008, 23:41   #3 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404

PHP-Code:
package de.dwienand.astrouhr.hands
{
    
    
import flash.display.Sprite;
    
import flash.events.MouseEvent;
    
import flash.events.Event;
    
import de.dwienand.astrouhr.Animation;
    
import de.dwienand.astrouhr.Astro;
    
    
import flash.events.EventDispatcher;

    public class 
HandYear extends Sprite
    
{
        private var 
xM:Number;
        private var 
yM:Number;
        private var 
_year:Number=0;
        private var 
offSet 1.8;
        private var 
ani:Animation = new Animation();
        private var 
astro:Astro = new Astro();
        
    public function 
HandYear() {
            
            
addChild(ani)
            
this.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHand)
            
stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHand)        
            
this.addEventListener("rotateHand"onRotateHand)
        }
    
        public function 
set year(value:Number):void{
         
_year value;
        } 
        public function 
get year():Number{
         return 
_year;
        }
        
        public function 
onRotateHand(event:Event):void {
            
this.rotation = (_year 3.6) + offSet;
        }
        
        private function 
onMouseDownHand(event:MouseEvent):void{
            
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMoveMouse)
        }
        private function 
onMouseUpHand(event:MouseEvent):void{
            
stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMoveMouse)
        }

        private function 
onMoveMouse(event:MouseEvent):void{
                
            
xM stage.mouseXyM =stage.mouseY;
            
xM xM this.xyM yM this.y;
            
            var 
Math.atan2(yM,xM)*(180/Math.PI);
            var 
aa a+90
            aa 
= (aa >0) ? aa:aa+360;
            
            var 
mo aa-(aa 3.6);
            
this.rotation mo offSet;
            
this._year uint(mo 3.6);
            
            
astro.currentRotations(astro.instant);
            
astro.load();
            
astro.calcDiff();
            
//irgendwo hier??-----V
            
ani.rotations astro.rotations;
            
ani.dispatchEvent( new Event("rotatePointers"));
            
//irgendwo hier??-----A
            
astro.save();
        }
    }
    



ok auch noch Animation Klasse:


PHP-Code:
package de.dwienand.astrouhr 
{

    
    
import flash.display.DisplayObject;    
    
import flash.events.Event;
    
import flash.events.EventDispatcher;
    
import flash.events.IEventDispatcher;
    
import flash.display.MovieClip;

    
    
import flash.display.MovieClip;
    
import caurina.transitions.*;
    
    
    public class 
Animation extends MovieClip
    
{
        private var 
_rotations:Array = [];
        private var 
_planets:Array = ["pointerMercury""pointerVenus",
            
"pointerMars""pointerJupiter""pointerSaturn""pointerSun",
            
"pointerMoon"];
        
        public function 
Animation() 
        {

            
this.addEventListener("rotatePointers"onRotatePointers)
            
this.addEventListener(Event.ADDED_TO_STAGEonAddedToStage);
        
        }

        
        private function 
onAddedToStage(event:Event) {
            
            
this.addEventListener("rotatePointers"onRotatePointers)
        }    
        
        public function 
setPointers(rotations:Array):void {
            for (var 
i:uint 0<_planets.length i++) {
                
                
parent.getChildByName(_planets[i]).rotation rotations[i];
                
            }
        }
        
        public function 
onRotatePointers(event:Event):void 
            
trace("Animation :: onRotatePointers");
                
            for (var 
i:uint 0<_planets.length i++) {
                
                var 
diff parent.getChildByName(_planets[i]).rotation rotations[i]
                
diff = (diff <= -180) ? diff 360diff;
                
Tweener.addTweenparent.getChildByName(_planets[i]), 
                {
rotation:difftime:transition:"easeInOutCubic"delay:} )
            }
                         
            
        }
        
        public function 
get rotations():Array{
        
trace("Animation :: get rotStarts");
            return 
_rotations;
        }
        
        public function 
set rotations(value:Array):void{
        
trace("Animation :: set rotStarts");
            
_rotations value;
        }
        
    }
    



..problem gelöst, hatte was mit dem Package zutun , hatte mich eh gewundert, warum "Animation" und "Astro" nicht grün wurden beim FlashDevelop.

Aber btw falls es jmnd weiss, wie kann ich denn auf Klassen ein Package tiefer sozusagen zugreifen?
__________________
Say no to Internet Explorer 6!

Geändert von Circushund (20-10-2008 um 00:41 Uhr)
Circushund ist offline   Mit Zitat antworten
Alt 20-10-2008, 07:40   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Die musst du importieren...
Omega Psi ist offline   Mit Zitat antworten
Alt 20-10-2008, 19:28   #5 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
Hallo Florian,
ja danek für die Antwort, habs ja schon importieren können.

Übrigens hatte ich doch noch dei Fehlermeldung, auch nach erfolgreichem import.
Irgendwie versteh ich das wohl mit den ganzen Hierrachien usw noch nicht, ich hab dehalb einfach so mal:

Code:
parent.addChild(ani)
im Construktor der HandYear-Klasse gesetz, die mit einem Symbol(bzw MC) in meiner Bibilothek verbunden ist.

Aber frag mich, warum das "parent" sein muss?? Ich hab zwar in meiner DokumentnenKlasse, eine Instanz der Animations-Klasse (ist die "ani") zur DisplayList via addChild geaddet, aber warum kann ich keine Instanz dieser Klasse einfach via addChild(ani) zu meiner HandYear-Klasse adden?
Also warum geht nicht diese einfache Form?

Ich krig immer mehr das Gefühl, als habe die Dokument Klass immernoch die höchste Priorithät?!
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele